Arduino.ru
Из-за наличия транзисторного ключа, причём бывают как npn, так и pnp, а также питание датчика 6-36 вольт, необходима рапиновка датчика хотя бы.
- Войдите на сайт для отправки комментариев
Пнд, 16/02/2015 — 09:50
Зарегистрирован: 05.09.2011
берите с ключем NPN. GND датчика соеденить с GND ардуины, выход датчика через резистор согласно документации датчика на плюс его питания и через диод (катод к датчику, анод к ардуине) на вход ардуины. На входе ардуины активировать подтяжку. Диод нужен, чтобы отвязать от ардуины высокое (от 6в и выше) для ардуины плюсовое напряжение питания датчика, через диод вход ардуины будет замыкаться на землю при срабатвании датчика, а его не срабатывании диод будет блокировать попадание плюсового напряжения с датчика на ардуину
- Войдите на сайт для отправки комментариев
Подключение магнитного датчика угла наклона AS5600 к Arduino

В этой статье расскажу о магнитном датчике угла наклона AS5600, датчик хоть и маленький, но уместил в себе четыре датчика холла, с помощью которых, датчик AS5600 измеряет магнитное поле и преобразует его в напряжение. На практике, данный датчик можно использовать для измерения вращения двигателя.
Технические параметры
► Интерфейс: I2C;
► Определяемый угол поворота: от 18⁰ до 360⁰;
► Диапазон рабочих температур: от -40⁰C до 125⁰С;
► Напряжение питания на пине VDD5V; до 6.1 В;
► Напряжение питания на пине VDD3V3: до 4 В;
► Габариты: 23 × 23 × 2 мм;
► Вес: 2 грамма
Описание модуля AS5600
В центре модуля установлена единственная микросхема AS5600, которая собрана в 8-контактом корпусе SOIC8, габариты которого 4.9 х 3.9 мм с высотой 1.75 мм. Вокруг датчика установлена минимальная электронная обвязка, конденсаторы и подтягивающие резисторы для шины I2C. По умолчанию датчика AS5600 используется адрес 0x36, менять его нельзя. Так же, в модуле встроен стабилизатора напряжения, что позволяет подключать его к источнику питания 5В и 3.3В (разные контакты). Конструктивно AS5600 состоит из четырех датчиков холла, сигнал с которых усиливается, затем проходят через 12-битый аналогово-цифровой преобразователь (АЦП), а уже потом сигнал с АЦП измеряется и высчитывается угол поворота.

Используемый магнит для датчика должен состоять из полярности N/S в горизонтальной плоскости, а не в вертикальной. Воздушный зазор между датчиком AS5600 и магнитом составляет от 0,5 мм до 3 мм и зависит от силы магнита.

Как говорилось ранее, датчик поддерживает 12-битное разрешение и за полный оборот магнита в 360 градусов, получаем 4096 шагов, то есть точность датчика ~ 0,087 градуса.

Конфигурация контактов MAX30102
► VDD5V — питание модуля 5В (требуется дополнительный конденсатор 1 мкФ);
► VDD3V3 — питание модуля 3В;
► OUT — Аналоговый вывод PWM;
► GND — минус от источника.
► PGO — цифровой вход
► SDA — цифровой вход/выход (последовательная передачи данных I2C)
► SCL — последовательное тактирование шины данных I2C (serial clock);
► DIR — вывод указания полярность направления, если GND – значения увеличиваются по часовой стрелке, VDD – против.
При работе от напряжения 3.3В пины VDD5V и VDD3V3 должны быть соединены.
Подключение датчика AS5600 к Arduino
В примере покажу как подключить датчик AS5600 к Arduino UNO. В моем комплекте с модулем, есть небольшой магнит для демонстрации работы. Показания будем передавать в последовательный порт.
Необходимые компоненты.
► Arduino UNO R3 x 1 шт.
► Магнитный датчик угла наклона AS5600 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт
Подключение:
Из приведенной ниже принципиальной схемы можно увидеть, что мы используем пять проводов. Выводы SDA и SCL с датчика AS5600, подключаем к выводам A4 и A5 Arduino UNO. Контакты VCC и GND датчика подключаем к 5 В и GND Arduino UNO.

Установка библиотек:
Для работы, будем использовать библиотеку «AS5600», от RobTillaart. скачать ее можно с github или в конце статьи.
Программа:
Теперь запускаем среду разработку Arduino IDE и загружаем скетч в контроллер.
Подключение цифровых датчиков к Arduino
Для платформы Arduino существует огромное количество датчиков. Эта статья будет посвящена цифровым датчикам. Они так называются потому, что на выходе каждого из них сигнал дискретен, то есть имеет два уровня – логические ноль (напряжение земли/общего провода, нулевое) и единица(обычно 3,3 либо 5 вольт). Пятивольтовые Arduino–платы могут работать с уровнями 3,3 В, а вот для трёхвольтовых плат с пятивольтовыми датчиками требуется согласование уровней.
Обычно эти датчики имеют следующие выводы:
– G (GND).Минус напряжения питания.
– V (VTG или +5V, VCC).Плюс напряжение питания.
– S (DO (Digital Output), SIG, OUT).Цифровой выход.
Подключение к Arduino
G подключается к земле (вывод GND). V подключается к выводу +5V либо 3V3 (читайте описание датчика). S подключается к заданному программно цифровому выводу (он может быть любым), аналоговые выводы тоже можно использовать как цифровые, считывание состояния этого вывода в Arduino IDE осуществляется при помощи функции digitalRead().

Пример кода программы для считывания показания датчиков. Показания датчика будут выводиться в последовательный порт компьютера. Просмотреть их можно будет при помощи монитора порта в Arduino IDE.
Сборка схемы из модулей


Микроконтроллер – очень универсальная штука, его можно научить взаимодействовать практически с любым другим электронным устройством: аналоговые датчики, цифровые датчики, всякие разные микросхемы, дисплеи, драйверы, контроллеры… Чтобы схема работала, входящие в неё компоненты нужно правильно соединить между собой. В этом уроке мы рассмотрим подключение электронных модулей.
Электронный модуль
Модуль – это специальная удобная плата на базе какой-то микросхемы или электронного компонента. Модуль может быть датчиком, драйвером, интерфейсом, памятью, дисплеем и так далее. Зачем использовать модуль, почему не взять конкретный компонент? Если вы хотите делать электронное устройство на печатной плате – конечно же лучше собирать его из голых компонентов, а не из модулей, потому что в большинстве случаев это выйдет дешевле, а также изготовление такой платы можно заказать вместе со сборкой на производстве (например на JLCPCB). Но мы с вами собираемся сначала научиться программировать, поэтому модули имеют неоспоримые преимущества:
- Основная концепция Ардуино – электронный конструктор, быстрое и простое создание прототипов электронных устройств без помощи паяльника.
- Микросхема очень маленькая, подключать её к чему-то – не очень приятная затея. У модуля выведена рейка для подключения проводов и работы на макетной плате.
- Чтобы подключить голую микросхему – понадобится изучить документацию. У модуля все нужные для подключения пины выведены и подписаны.
- Для корректной работы большинства микросхем требуются дополнительные компоненты (драйверы, контроллеры, резисторы, стабилизаторы, конденсаторы, индуктивности, кварцевые генераторы), посчитанные, выбранные и установленные согласно документации. На плате модуля всё это уже есть.
- У некоторых модулей на плате предусмотрена настройка: крутилки, джамперы, переключатели, перемычки для спайки паяльником.
Макетная плата
Макетная плата, она же макетка или брэдборд (breadboard) – самый удобный способ создания электронных макетов. Отверстия расположены со стандартным шагом 2.54мм, внутри каждого – пружинная клемма. Это позволяет вставлять в плату любые Arduino-модули, а также микросхемы в DIP корпусах.
Для соединения отверстий в пределах макетки используются провода штырёк-штырёк, рекомендую вариант с цилиндрическими штекерами (я пользуюсь одним комплектом на протяжении уже 5-ти лет). Также существуют провода с квадратными штекерами, они есть в вариантах гнездо-гнездо, гнездо-штырёк и штырёк-штырёк. Эти провода менее качественные, но вариант гнездо-штырёк позволяет подключить модуль к макетке, не втыкая модуль в макетку:

Что происходит на этом фото и как работает брэдборд? Очень просто! Контакты в нём соединены следующим образом:

“Простые” модули
Цифровые
Простые цифровые модули имеют два пина питания и пин с логическим выходом, он может быть подписан как OUT, S, D или DO. Плата таких модулей имеет синий цвет и содержит типовую схему – крутилка (синий корпус) и операционный усилитель (чёрная микросхема рядом с крутилкой). Такой модуль выдаёт только два состояния: датчик “сработал” и “не сработал”, на цифровом выходе появляется соответственно VCC (напряжение питания) или 0 Вольт, т.е. высокий и низкий цифровой сигнал. Крутилка на плате позволяет настроить порог срабатывания. Такие датчики подключаются к питанию и любому цифровому пину (GPIO). Опрашиваются стандартными средствами Arduino.
Примеры на картинке ниже: датчик звука, температуры, освещённости, приближения, магнитного поля.
Аналоговые
У аналоговых модулей помимо питания есть аналоговый выход, может быть маркирован как OUT, S, A или AO. Такие модули выдают аналоговый сигнал, пропорциональный показанию датчика. Подключаются к питанию и любому аналоговому пину (ADC) и опрашиваются стандартными средствами Arduino.
Примеры на картинке ниже: датчик звука, уровня жидкости, индуктивный датчик влажности почвы, обычный датчик влажности почвы, потенциометр (просто крутилка).
Смешанные
Некоторые модули имеют цифровой и аналоговый выходы одновременно, пины у них обычно подписаны как DO – цифровой выход и AO – аналоговый. Крутилка на плате настраивает порог срабатывания у цифрового выхода, а аналоговый просто выдаёт “сырой” сигнал с датчика. Опрашиваются как цифровые и аналоговые датчики соответственно.
Общая схема для всех перечисленных выше типов модулей:

Примеры на картинке ниже: датчик вибрации, звука, магнитного поля, влажности почвы и освещённости.
KY-модули
Существует также целое семейство модулей с названием KY-цифра, это самые дешёвые модули на чёрных платах. Среди них есть и цифровые, и аналоговые, и интерфейсные датчики, а также индикация (светодиоды, пищалки) и реле. Проблема в том, что пины почти у всех плат подписаны одинаково:
- – (минус) – минус, GND
- Средний пин без подписи – плюс, VCC
- S – сигнал

Сигналом здесь может быть как исходящий из датчика цифровой или аналоговый сигнал, так и цифровой сигнал управления, который нужно подать на модуль с микроконтроллера. Обязательно читайте описание к модулю такого типа, если не знаете, что делает компонент на его плате!

Интерфейсные модули
Некоторые модули имеют один или несколько логических выходов и передают данные по цифровому интерфейсу связи. Сигнальные пины таких датчиков могут быть подписаны как SCK, SDA, SCL, MISO, MOSI, SS и прочими аббревиатурами, отличными от OUT, как в “простых” модулях. Подключаются такие модули к пинам интерфейсов (подробнее в этом уроке) на плате и опрашиваются при помощи сторонних библиотек. Для работы с такими модулями нужно найти в интернете статью с описанием и примерами. Подробное описание к некоторым популярным модулям можно найти в базе примеров к набору GyverKIT, а также у меня в каталоге ссылок на Ардуино-компоненты. Примеры таких модулей:
Давайте вкратце рассмотрим самые распространённые интерфейсы и особенности подключения модулей с ними. Напомню распиновку плат Arduino Nano и Wemos Mini:

UART
- Названия пинов:
- TX
- RX
- Подключение осуществляется “наоборот”: RX -> TX, TX -> RX
I2C (Wire)
- Названия пинов (в скобках указаны варианты надписей на плате модуля):
- SDA (D)
- SCL (C, SCK)
- Подключение осуществляется в пины с таким же названием, смотрите распиновку своей платы

SPI
- Названия пинов (в скобках указаны варианты надписей на плате модуля):
- MOSI (SDI, DI, DIN, SI)
- MISO (SDO, DO, DON, SO)
- SCLK (SCK, CLK, SPC)
- CS (SS, RCK) – на любой GPIO
- Подключение осуществляется в пины с таким же названием (за исключением CS)

Полезные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])