Подключаемое железо, интерфейсы


Суть и вообще предназначение Ардуино состоит в быстрой и удобной разработке электронных устройств. Это универсальный контроллер, на базе которого можно сделать законченный девайс (от англ. Device – устройство, прибор) абсолютно произвольного назначения, от полезного (часы-будильник, реле времени с кучей настроек и дисплеем, автоматизацию теплицы, умный дом…) до бесполезного, но забавного или интересного (самонаводящийся вентилятор, машинка на радиоуправлении с пушкой, робот с большим количеством функций и так далее). Для достижения этих целей к Ардуино подключаются различные внешние устройства, с которыми она может взаимодействовать.

Начнем с мира цифрового, в котором устройства общаются друг с другом при помощи цифровых сигналов, так называемых логических, то есть имеющих два простейших состояния: правда и ложь, да и нет, 1 и 0. В большинстве цифровых устройств эти два состояния передаются напряжением 0 и 5 Вольт, но бывает и 0 и 3.3 Вольта. Таким образом микроконтроллер по сути может измерить цифровой сигнал (что подаётся на ногу, 0 или 5 Вольт), или выдать со своей ноги 0 и 5 Вольт соответственно. Закодированный цифровой сигнал выглядит примерно вот так: скачки 0 и 5 (или 3.3) Вольт с разной продолжительностью.


Совокупность правил и длин участков 5 и 0 Вольт можно назвать протоколом связи, или интерфейсом, шиной.

Интерфейсы


Ардуино имеет “хардварную”, т.е. на низком уровне, прям в процессоре, поддержку следующих интерфейсов:

UART – то, через что мы общаемся с компьютером через монитор порта. Очень распространенный интерфейс, много всякого железа с ним работает, те же Bluetooth/GSM/GPS модули именно “общаются” по UART текстовыми командами. Есть минус – одновременно к одному юарту может быть подключено только одно устройство. Подробнее почитать можно здесь.

I2C – очень популярный интерфейс, используется в 90% ардуино-модулей и датчиков. Прелесть в том, что он весьма простой, весьма шустрый и поддерживает одновременное подключение 256 разных устройств всего по двум проводам. Шина адресная, то есть у каждого устройства есть свой адрес, собственно поэтому такие широкие возможности. Подробнее – здесь

SPI – тоже очень популярный и очень быстрый интерфейс, по нему к ардуино можно напрямую подключить SD карту и работать с ней, также очень много мощных дисплеев подключаются по SPI. Ну и как вы помните, по этому интерфейсу Ардуино можно прошить при помощи ISP-программатора. Подробнее об ISP – здесь.

Помимо этих трёх популярных интерфейсов существуют и другие (CAN, 1-wire и прочее), но так как у нас есть сила микроконтроллера, мы можем эмулировать практически любой протокол и интерфейс связи, так называемый software <название интерфейса> (softwareSerial, softwareI2C…). И тут на помощь приходит комьюнити ардуино, которое уже написало библиотеки для всего что можно, и можно без проблем общаться практически с любой железкой, поддерживающей какой-либо популярный протокол связи. По той же CAN шине можно подключиться к мозгам своего автомобиля и делать с ним всякое. Куча микросхем различного назначения без особых проблем и телодвижений подключаются к ардуино и позволяют собой управлять. Всяческие усилители, драйверы, сдвиговые регистры, ЦАПы, АЦПы, мультиплексоры, цифровые резисторы и сотни других интересных штук.

Аналоговый сигнал


Второй тип связи – аналоговый, работает только “на приём”. Микроконтроллер может измерять напряжение, которое подаётся ему на АЦП (аналогово-цифровой преобразователь), диапазон измерения ограничен вплоть до опорного напряжения или напряжения питания микроконтроллера, то есть максимум, что может измерить микроконтроллер без дополнительного железа – от 0 до 5 вольт, или от 0 до 3.3 вольт для 3.3 вольтовых моделей. К этому мы ещё вернёмся.

Благодаря наличию АЦП (чтение аналогового сигнала) ардуино может считывать показания любых аналоговых датчиков: термисторы, термопары, фоторезисторы, потенциометры, напряжение шунта и прочее прочее из мира аналоговой электроники. По сути можно подключить всё что угодно без особых навыков, было бы желание и готовая библиотека. Ну и умение читать.

Резюмируя


Теперь по сути дела: датчики, их куча кучная, измерять можно ну просто всё, что вообще измеряется. Электроника: напряжение, ток, сопротивление, работа с переменным током, поля. Параметры микроклимата: температура, влажность, давление, содержание газов, скорость ветра, освещенность, что угодно. Интересных модулей тоже очень много: Bluetooth, сотовая связь, GPS, дисплеи различных типов и размеров, датчики присутствия, как ИК, так и микроволновые, модули для беспроводной связи ардуинок и многое другое.

Можно управлять абсолютно любой железкой, которая выполняет свою функцию просто при подаче питания: лампочка, светодиодная лента, электронагреватель, мотор или любой электропривод, электромагнит, соленоид-толкатель, и это все с любым напряжением питания. Но тут нужно кое что понять: Ардуино (точнее микроконтроллер) – логическое устройство, то есть по-хорошему она должна только отдавать команды другим устройствам, или принимать их от них. Это я к тому, что напрямую от ардуино не работают ни лампочки, ни моторчики, ни нагреватели, ни-хуче-го. Максимум – светодиод. С пониманием этого идём дальше. Чтобы ардуино включила или выключила (подала питание) на другое устройство, нужно устройство – посредник, например реле или транзистор. Ардуино управляет реле, а реле в свою очередь включает любую нужную нагрузку с любым напряжением питания и все такое, подробнее об этом поговорим отдельно.

Как суть всего выше написанного – возможности Ардуино по подключению и управлению различными железками практически безграничны, можно воплотить любую идею, даже самую безумную. Датчики что то измеряют, исполнительные устройства что то контролируют, в это же время ведётся отсылка данных куда-нибудь, что-то отображается на дисплее и контролируется при помощи кнопок. Романтика!

У меня в каталоге ссылок на Ардуино-компоненты можно найти практически все существующие датчики, модули и прочие железки для Ардуино, и практически у каждого есть ссылка на статью с примером и библиотекой. Пользуйтесь!

Важные страницы


  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макро, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
Подключаемое железо, интерфейсы
5 (100%) 1 vote[s]
Последнее обновление Апрель 27, 2019
2019-04-27T08:56:22+03:00