Обзор дисплеев для ардуино
В этом уроке вы познакомитесь с интерфейсом Arduino OLED. В первой части настроим OLED-дисплей так, что он будет показывать нам данные датчика температуры и влажности, а во второй части отобразим логотипы iPhone, Samsung и LG.
Код
Объяснение про код
Для OLED мы использовали библиотеку U8glib. Посмотрим, как работает библиотека.
Данные отображаются на OLED в виде петель изображения. First Page () показывает начало цикла показа изображений. Кроме того, нам нужно создать цикл «делать пока». Все, что мы хотим показать на дисплее, должно быть записано в цикле «do while». Цикл «do while» будет продолжаться до тех пор, пока nextpage () не вернется к «1».
Команда u8g.setFont (u8g_font_helvB10) установит заданный шрифт. Эта библиотека имеет разные размеры шрифтов и дизайн, которые вы можете найти по ссылке ниже.
Команда u8g.drawStr (30, 10, «Welcome») выведет «welcome» в позиции X, Y. Значение «30» для горизонтального положения (X), а значение «10» для вертикального положения (Y). Другие команды рисования работают также.
Команда u8g.setPrintPos (75, 15), используемая в коде, установит указатель в положение X (75), Y (15). Затем вы можете распечатать выходные данные датчика с помощью команды u8g.print ().
Как показывать растровые изображения на OLED
Теперь давайте отобразим растровые изображения на OLED. Нам надо показать логотипы iPhone, Samsung и LG на OLED. Принципиальная схема для этого примера показана ниже.
Максимальный размер изображения, отображаемого на OLED, не должно превышать 128X64 пикселей, а само изображение должно быть черно-белым, потому что наш OLED является монохромным, что означает, дисплей имеет только один цвет. Если у вас многоцветный OLED, конечно же вы можете отображать цветные картинки.
В качестве примера приведены черно-белые логотипы, измененные в размере. Paint имеет опцию изменения размера в главном меню, как выделено желтым цветом на изображении ниже. Если опция не работает, вы также можете перетащить изображения область рисования из маленьких прямоугольников, как показано на рисунке ниже.
После загрузки и установки откройте LCD Assistant и загрузите изображение в него через меню «File». Настройки программного обеспечения LCD Assistant должны быть такими, как на рисунке ниже.
Теперь откройте меню файлов и нажмите «Сохранить вывод». Сохраните имя файла с «.c» в конце, как «logo.c». Затем откройте сохраненный файл в текстовом редакторе и скопируйте код оттуда.
Это будет код для создания растрового изображения на OLED. Затем вставьте его в код Arduino, как в приведенном коде .
Этот код может показаться слишком большим, но именно он будет отображать логотип IPhone, логотип Samsung и логотип LG один за другим на OLED-дисплее. Синтаксис команды bitmap, которую мы использовали в коде, выглядит следующим образом.
Что такое дисплеи Nextion и как с ними работать?
Для реализации любых проектов, будь то умный дом, производственная автоматика, устройство для вывода загрузки систем компьютера или простые часы вам понадобится устройство вывода. Простой вариант – семисегментные светодиодные индикаторы. Но такая реализация будет неудобной для использования.
Мы уже публиковали статью о дисплеях для ардуино и других микроконтроллеров, но и у них есть недостаток – они подходят для текстовых данных или минимальной графики. Чтобы система была современной и удобной – нужно использовать полноценные ЖК-дисплеи. В этой статье мы расскажем о дисплеях Nextion, что это такое, как и для чего их можно использовать.
Содержание статьи
Что такое Nextion
Производитель Nextion Itead.cc позиционирует сенсорные дисплей Nextion как HMI – Human-machine interface, что по-русски звучит как «Человеко-машинный интерфейс». Так называют любое устройство с помощью которого происходит взаимодействия человека и машин: мониторинг параметров, управление исполнительными механизмами, ввод данных и прочее.
На практике это не просто дисплей, а устройство с 32х разрядным ARM-микроконтроллером на борту, который «умеет» не только отображать данные, но и всё то, что должен «уметь» микроконтроллер. Наличие мощного микроконтроллера предполагает использование какого-либо порта для подключения к нему – на платах серии Enchanced есть GPIO с 8 пинами, при этом половина из них (с 4 по 7) поддерживают ШИМ.
Для создания ПО для Nextion есть API (хотя ITEAD называет его IDE, в первом приближении особой разницы нет). Если сказать простым языком, то получится каламбур, но это действительно так: для этих дисплеев есть программа для создания программ, без знания программирования.
Устройства могут работать в паре с популярными платформами для разработки Ардуино, Raspberry Pi, Raspberry Pi A +, B +, а также Raspberry Pi 2/3, поддержка Rpi Zero не заявлена, но, скорее всего организовать взаимодействие возможно посредством последовательного интерфейса.
Они разработаны и производятся компанией ITEAD, она известна по другому продукту – Wi-Fi реле SonOff для умного дома, которая пользуется спросом и успехом как у обывателей, так и в среде энтузиастов.
ITEAD studio располагается в г. Шеньчжень в Китае. По информации с официального сайта идеология у компании состоит в том, что нужно дать людям средства для разработки и конструирования, для того «чтобы сделать инновации легче».
В следующем видео автор наглядно объяснил в чем преимущество Nextion перед шилдами с дисплеями для Ардуино:
Какими бывают модели и их технические характеристики
Модельный ряд дисплеев Nextion разделён на две группы:
Basic – базовые и простые модели;
Enhanced – продвинутые модели с некоторыми дополнениями.
В таблице ниже рассмотрены актуальные модели BASIC.
В таблице ниже рассмотрены актуальные модели ENHANCED.
Как можно увидеть, на всех моделях установлен дисплей с 65к цветов, на борту есть ядро с архитектурой ARM 7, с FLASH, RAM-памятью.
Основные отличия Basic от Enhanced состоят в том, что у последних есть на борту:
RTC – Real-Time clock (микросхема часов реального времени);
EEPROM – энергонезависимая память;
В линейке есть 1 дисплей с емкостным сенсором;
Больший объём FLASH, и RAM памяти;
Есть 8 выводов GPIO;
Микроконтроллер с большей рабочей частотой.
Отличия отражены в официальном англоязычном видео:
Устройство
Рассматривать устройство каждой модели бессмысленно, для этого есть «даташиты», но для наглядности, разберем начинку Nextion на примере Enhanced-модели NX4832K035.
Разберем элементы платы:
GD32F103 – сердце платы, микроконтроллер ARM CORTEX-M3 является аналогом с аналогичной маркировкой SMT32, а именно ST32F103.
PCF8563 – микросхема часов реального времени от компании NXP. В правом верхнем углу вы видите слот для батарейки CR1220, от которых они питаются при отсутствии внешнего источника.
AT24C08BN – это микросхема электрически стираемой энергонезависимой памяти EEPROM объёмом в 1024 кб. Последние две позиции «общаются» с микроконтроллером по I2C.
LR6209 – линейный регулятор с низким падением (LDO), его параметры: 3.3В и 250мА, в других моделях дисплеев могут применяться импульсные преобразователи.
W25Q256FV – флеш-память объёмом в 32 Мб от компании Winbond.
XPT2046 – контроллер тач-скрина.
Слот под SD-карту нужен для прошивки (загружаете в корень карты файлы с расширением *.TFT). Карта должна быть отформатирована в fat32, быть обёмом не больше 32 Г б. На карте должен быть только 1 файл с прошивкой.
GPIO-разъём под шлейф с шагом 1мм, гребенки 2,54мм.
К разъёму GPIO с помощью шлейфа подключается плата расширения (поставляется в комплекте, но при заказе уточняйте, на случай изменения комплекта поставки). На плате расширения есть кнопки, пьезо-излучатель (т.н. buzzer) и светодиод.
Для связи с окружающей средой BASIC модели используют последовательный порт, а у моделей с GPIO – возможна связь непосредственно через него. Что даёт возможность использовать устройство самостоятельно, без дополнительных модулей. Ниже приведен рисунок с обозначением элементов дисплея без GPIO, собственно всё аналогично.
Схемы, подключение, связь
Для подключения питания к дисплею Nextion есть специальный переходник на micro USB.
С его помощью можно подать питание на модуль, например, для запуска демонстрационного режима или подключения от отдельного источника питания, независимого от устройства, подключенного по последовательному порту.
На плате дисплея есть четырёх контактный разъём, а со штекера для подключения к немы выходят 4 провода:
Синий — TX (Выход последовательного интерфейса);
Черный — GND он же «—» питания.
Последовательный порт подключается к компьютеру, микроконтроллерам и прочему, как обычно – rx к tx, а tx к rx. Ниже приведен пример схемы подключения дисплея к Raspberry Pi через последовательный порт.
Подключение к Ардуино ничем не отличается.
Для связи с компьютером или прошивки дисплея вы можете использовать USB-UART переходник, например, такой, как изображен ниже. Отметим, что вы можете использовать и платы ARDUINO не по прямому назначению, а в качестве USB-UART преобразователя, для подключения различных устройств к компьютеру и их прошивке.
Nextion editor
После установки и включения вы увидите следующее:
Чтобы начать работать нужно нажать кнопку «new», указать куда сохранять новый документ и выбрать модель дисплея.
На рисунке цифрами обозначены:
1. Область инструментов (текст, цифры, кнопки, поля для ввода слайдеры и прочее).
2. Область где отображаются загруженные вами шрифты и картинки.
3. Окно вывода результатов компиляции.
4. Окно вывода кода элементов и событий (изображено на рисунке ниже на примере слайдера).
5. Отображение атрибутов элементов.
6. Список страниц (страница – это группа элементов, отображающихся на дисплее.)
7. Область отображения экрана.
8. Запуск компиляции кода.
9. Загрузка в дисплей по UART
Чтобы найти файл для прошивки с помощью micro SD-карты нужно нажать File-open build folder, откроется папка с ними. Обратите внимание на адрес. Файл.TFT будет называться аналогично файлу проекта HMI.
В программе есть возможность моделирования для проверки работы проекта, с поддержкой подключения внешнего контроллера с которым он будет работать. То есть для проектирования и сопряжения с внешними контроллерами вам даже не нужно покупать дисплей – вы можете попробовать бесплатно подойдет ли это устройство для ваших задач.
Примеры использования
Рассмотрим небольшую подборку проектов в которых пригодится этот дисплей! Отличным примером использования будет автоматика для умного дома с датчиками температуры, влажности, протечек и исполнительными реле. Здесь дисплей Nextion работает совместно с Arduino.
Простые часы с будильником:
Проект метеостанции, которая работает по Wi-fi с использованием ESP32:
Мобильный телефон из дисплея и Arduino:
Обучение работе с дисплеями NEXTION от простого к сложному
Всем тонкостям работы с дисплеями Nextion посвящен новый курс Максима Селиванова - "Программирование дисплеев NEXTION".
Всего в курсе 76 уроков общей продолжительностью 25 часов. В курсе рассматривается очень широкий круг вопросов: подключение дисплея, прошивка, создание проектов, настройка режимов работы, графическое оформление проектов и управление внешними устройствами напрямую с дисплея или при помощи вспомогательного микроконтроллера.
Особый упор в курсе сделан на изучении режимов работы, команд для записи скриптов и создании графического оформления проектов. Преимуществом курса является очень подробный разбор всех возможностей дисплеев Nextion. Курс особенно будет интересен поклонникам Ардуино.
Заключение
Как вы могли убедиться, дисплеи Nextion — это не просто устройство вывода, а полноценное функциональное устройство. При сопряжении с любым микроконтроллером с помощью последовательного порта можно реализовать проекты как любительского, так и вполне промышленного применения.
Какие бывают дисплеи для Ардуино и как их подключить
Микроконтроллеры позволяют сделать любые системы автоматизации и мониторинга. Но для взаимодействия техники и человека нужны как устройства ввода – различные кнопки, рычаги, потенциометры, так и устройства вывода – световые индикаторы (лампочки), различные звуковые сигнализаторы (пищалки) и наконец дисплеи. В этой статье мы рассмотрим символьные дисплеи для Arduino, как их подключить и заставить работать.
Содержание статьи
Виды дисплеев
Дисплеи можно разделить на:
Сегментные (такие, как на цифровых часах);
Сегментные используются для индикации простых величин, например: температура, время, количество оборотов. Такие используются в калькуляторах и на бюджетной бытовой технике и по сей день. Информация выводится путем засвечивания определенных символов.
Они могут быть как жидкокристаллическими, так и светодиодными. Алфавитно-цифровые дисплеи можно встретить на старой бытовой технике, игрушках, промышленной технике и прочем. Их еще называют знакосинтезирующими, текстовыми, символьными. Состоят из набора крупных пикселей. Могут быть выполнены по LCD, TFT и OLED-технологии.
К графическим дисплеям можно отнести даже монитор или экран смартфона, особых пояснений я думаю не требуется. В статье речь пойдет конкретно о совместной работе знакосинтезирующих или символьных дисплеях и Ардуино.
Знакосинтезирующие дисплеи
Дисплеи этого вида могут одновременно отображать определенное количество символов, ограниченное геометрическими размерами. Маркируются они по такому образцу:
Где первые две цифры – количество символов в строке, а вторая пара – количество строк. Таким образом дисплей с названием 1602 может отображать одновременно 2 строки по 16 символов.
По типу ввода данных различают дисплеи:
С параллельным вводом данных;
С вводом данных по протоколу I2C.
Параллельный ввод данных предполагает передачу 8 или 4-битных слов по 10 или 6 выводам соответственно (рис. ниже – схема подключения для управления 4 битами). Кроме данных на дисплей подаётся питание. Учитывайте это при проектировании, в противном случае вам может не хватить пинов платы Ардуино.
Передача данных на дисплей с помощью I2С займет 4 пина вашей Arduino, 2 из которых питание, а 2 – данные. Но подробнее рассмотрим этот вопрос немного ниже.
Среди отечественных производителей можно выделить фирму МЭЛТ. Среди продукции, которой есть целый ряд различных дисплеев. Например, ниже изображен дисплей с маркировкой 20S4, по аналогии с предыдущей рассмотренной, это говорит нам о том, что он отображает 4 строки по 20 знаков.
Он построен на контроллере КБ1013ВГ6, от ОАО «АНГСТРЕМ», который аналогичен HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG. На которых построены подавляющее большинство китайских дисплеев. Кстати он, как и дисплеи на перечисленных чипах поддерживает стандартную библиотеку параллельного управления Arduino IDE, но о ней позже.
Знакосинтезирующие дисплеи бывают с подсветкой и без неё, также могут отличаться цветом изображаемых символов. Яркость подсветки и контрастность изображения обычно регулируется. Ниже приведет пример схемы из даташита, на упомянутый выше МЭЛТ.
Переменный резистор R и служит для регулировки яркости.
Подключение
Подключение будем рассматривать на дисплее типа 1602. В первую очередь обратите внимание на подписи выводов. Встречается два варианта, нумерации. На двух рисунках ниже всё нормально – от 1 до 16 вывода.
Отметим, что под VSS понимается земля. В остальном назначения выводов идентичны. Но часто можно встретить и нестандартную нумерацию:
Что вы видите? Контакты подписаны только 1, 14 и 15. Причем в неправильной последовательности. В остальном – 15 и 16 контакт всё также остались анодом и катодом подсветки, а 1 и 2 – общий контакт и плюс питания. Будьте бдительны и обращайте внимание при подключении на этот факт!
1 – (Vss) земля или «—» питания.
2 – (Vcc) «+» питания. Чаще всего это 5 вольт.
3 – регулировка контрастности символов. Осуществляется через потенциометр, установленный между «+» питания и этим контактом. Чем выше напряжение – тем меньше яркость и энергопотребление.
4 – (RS) Адресный сигнал. По наличию сигнала от ардуино на этом входе контроллер дисплея понимает, на линии данных сигнал команды (перемещение курсора, например) или кода символа для отображения.
5 – (E) разрешения доступа к данным. Когда здесь логическая «1» - дисплей выполняет команду или выводит символ.
6-14 – через эти пины обеспечивается параллельный ввод данных.
15 – (BLA) анод подсветки. Чтобы она зажглась на всю яркость – сюда подают +5В.
16 – (BLC) катод подсветки. Подключают к земле.
Один из примеров подключения к Ардуино в 4 битовом режиме мы рассмотрели выше. Теперь взгляните на схему подключения в 8 битовом режиме управления. Кстати вы могли заметить переменный резистор. Он и нужен для регулировки яркости подсветки, как было сказано ранее.
Таким образом у вас оказываются занятыми половина входов платы Arduino UNO. Конечно если вы будете использовать MEGA – это будет не столь существенной проблемой, но всё же это не рационально, особенно если вы собираетесь подключать группу датчиков и клавиш управления.
Чтобы высвободить входы используйте конвертер I2C для LCD экрана (именно так он называется, и вы сможете найти его в магазинах под таким названием).
Если будете покупать этот модуль отдельно от дисплея не забудьте о расположении и нумерации выводов, которую мы рассмотрели ранее.
Гребёнка, изображенная снизу просто припаивается к дисплею, а четыре контакта на торце платы – подключаются к пинам Arduino, также есть третья группа из двух контактов (на фото сзади) – это включение подсветки, модели поставляются с установленной перемычкой.
Схема такого модуля выглядит следующим образом:
А вот так он выглядит припаянным непосредственно к контактам дисплея. Большинство моделей продаются уже распаянными.
Однако для его использования вам нужно будет найти в сети библиотеку LiquidCrystal_I2C её нет в стандартном наборе актуального на момент написания статьи Arduino IDE.
Напомним цоколевку плат Arduino UNO, по нумерации контактов она в принципе совпадает и с Nano и некоторыми другими (для увеличения нажмите на рисунок).
Для работы по I2C нужно сформировать 2 информационных сигнала – SDA и SCL, обратите внимание в нижний правый угол рисунка. Эти выводы в ардуино совмещены с A4 и A5 аналоговыми входами.
Переназначить их вы на другие выводы не можете.
Тогда монтажная схема подключения будет иметь вид:
Согласитесь, проводов намного меньше! От ардуино к дисплею идут всего 4 провода. А сигнальных пина использовано всего два!
Но просто подключить у вас ничего не получится вы должны знать адрес устройства, для этого есть еще одна группа контактов, где адрес задаётся с помощью перемычек. Это указывается в инициализирующей команде соответствующей библиотеки, об этом далее.
Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств
Программа
Естественно нам нужен какой-то скетч, который может показывать изображение на символьном дисплее. Если вы хотите «напрямую» работать с дисплеем – придется изучить даташиты и таблицы символов на каждое конкретное изделие. Но Ардуино была создана для простого и быстрого прототипирования электронных устройств. Поэтому мы пойдем другим путём и воспользуемся благами цивилизации. Мы уже упомянули, что в стандартном наборе библиотек в Arduino IDE есть готовое решение для работы с LCD-дисплеями. Найти его можно здесь:
Кстати после нажатия строка с объявлением о подключении библиотеки появляется автоматически.
Также в Arduino IDE есть несколько примеров для работы с дисплеем. Они отражают базовые операции и функции.
Рассмотрим простейший «Хэлоу ворд». Пример полностью совпадает с тем, что есть в стандартном наборе IDE, я лишь перевёл текст комментариев на русский язык. Обратите внимание – это пример работы в 4-битном режиме.
Работа с I2C практически аналогична:
Обратите внимание, что в этом примере кода первой командой указан несколько размер дисплея, количество строк и символов, но и его I2C адрес. А именно – 0x27, что соответствует отсутствующим перемычкам. Вообще это нужно для того, чтобы подключить на два сигнальных провода несколько дисплеев (8 штук).
Официальную документацию к библиотеке liquidcrystal с примерами и пояснениями вы сможете найти на официальном сайте Arduino:
Полезные ссылки
Подборка видеоуроков по теме
Чтобы вам не было сложно освоить навык работы с дисплеем мы сделали подборку видеоуроков по этой теме.
Заключение
Оказывается, подружить плату Arduino и дисплей совсем не сложно. Вам доступна возможность как параллельной передачи данных, так и последовательной с помощью шины I2C, что выбрать – решать вам, как по удобству, так и по требованиям к быстродействию системы в целом. Пишите в комментариях какие вопросы нужно рассмотреть подробнее и что конкретно вы бы хотели видеть по теме микроконтроллеров!
Еще больше информации про Ардуино и особенности его использования в различных схемах смотрите в электронной книге - Ардуино для чайников. Иллюстрированное практическое руководство.
Совсем недавно вышел новый курс Максима Селиванова "Программирование дисплеев Nextion". Это "arduino" в мире дисплеев с сенсорным экраном. Но, информации по нему очень мало.
Что такое дисплеи Nextion? Если кратко, то эти дисплеи представляют собой программируемые дисплеи с тачскрином и UART для создания самых разных интерфейсов на экране. Для программирования используется очень удобная и простая среда разработки, которая позволяет создавать даже очень сложные интерфейсы для различной электроники буквально за пару вечеров! А все команды передаются через интерфейс UART на микроконтроллер или компьютер.
Здесь есть все что бы начать работать с дисплеями Nextion на новом уровне: Программирование дисплеев NEXTION
Максим Селиванов - автор видеокурсов "Программирование микроконтроллеров для начинающих", "Программирование микроконтроллеров на языке С", "Создание устройств на микроконтроллерах". Подробее о нем и его видеокурсах смотрите здесь - Обучение программированию и созданию устройств на микроконтроллерах
Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте сеть умных гаджетов!
Записывайтесь в онлайн-университет от GeekBrains:
Изучить C, механизмы отладки и программирования микроконтроллеров;
Получить опыт работы с реальными проектами, в команде и самостоятельно;
Получить удостоверение и сертификат, подтверждающие полученные знания.
Starter box для первых экспериментов в подарок!
После прохождения курса в вашем портфолио будет: метостанция с функцией часов и встроенной игрой, распределенная сеть устройств, устройства регулирования температуры (ПИД-регулятор), устройство контроля влажности воздуха, система умного полива растений, устройство контроля протечки воды.
Вы получите диплом о профессиональной переподготовке и электронный сертификат, которые можно добавить в портфолио и показать работодателю.
19 шилдов для Arduino на все случаи жизни
Шилд – это плата дополнения. Я предлагаю разделить шилды на полноразмерные и отдельные модули. Полноразмерные своими очертаниями повторяют форму платы Arduino, будь то UNO, Nano или MEGA. Отдельные модули – это платы произвольной формы, созданные для выполнения определенного набора функций. И те и другие могут быть как универсальными, так и для выполнения узконаправленных задач.
В магазинах можно встретить великое множество шилдов, а при определенной квалификации вы сами можете развести печатную плату, по форме и расположению выводов повторяющую ардуину и собрать свой уникальный. На картинке изображена плата Arduino UNO с набором шилдов.
Содержание статьи
Универсальная плата для удобного макетирования
Начнем с шилда, который не несёт в себе никаких особенных функций, а создан для удобства монтажа ваших проектов. Итак первый в нашем обзоре облегчит монтаж проектов с платой Arduino Nano, правда толку от малых размеров «НАНО» в таком случае ноль.
На плате расположен разъём для подключения штекера от блока пиитания, стабилизатор напряжения, а также клеммные колодки. Они подписаны и соответствуют выводам «Нанки». Кроме того присутствует кнопка «сброс» и светодиод «Питание».
Второй шилд предназначен для платы Uno. На нем расположена беспаечная макетная плата для сборки проекта и выводы, дублирующие те, что на самой ардуине – удобное решение.
Любой аналоговый датчик нуждается в питании и минусовом контакте, когда их много – перемчек становится столько, что разобраться в схеме будет очень трудно. Поэтому конструкторы придумали шилды для таких решений. В них выведены все входы и выходы, а питающие контакты продублированы и размещены рядом.
Вот пример такой платы для Ардуино версии Мега.
Проводная и беспроводная связь
С помощью этих плат можно организовать управление микроконтроллером по сети через кабель Ethernet, например, или беспроводов – через GSM-связь, вставив сим-карту.
Эта плата называется w5100 – содержит Ethernet модуль и модуль SD-кардридера. Это значит, что можно хранить данные, например лог измерений датчиков на карту памяти и управлять системой через web-интерфейс. Чтобы связать с ним ардуино пользуйтесь библиотеками:
Обратите внимание внешне он повторяет концепцию Arduino UNO R3, кроме того, он подойдет и на Mega.
Если W5100 вам кажется слишком крупным – то ENC28J60 займет меньше места. К сожалению в нем уже отсутствует SD-модуль.
Минусом является то, что он не может быть монтирован на плату, а выполнен в виде отдельного модуля.
W5500 – еще один вариант Ethernet-шилда. По своей сути – это доработанная версия W5100, оптимизированная в плане скорости и энергоэффективности.
Обратите внимание, на полноразмерных шилдах все пины дублируются клеммной колодкой. К сожалению, шилды используют порты. Конкретно этот задействует MOSI, MISO, SCK, и пин 10, для сигнала CS (выбор адресата для связи).
Если вам нужна беспроводная связь – ваш выбор это Wi-fi шилды, если есть интернет и роутер, а если этого нет – GSM-модули или GPRS Шилды.
На фото официальный шилд. На нём установлен слот под Micro SD-карту памяти, а связывается с микроконтроллером он по SPI-протоколам, через Mini-USB можно обновлять его программное обеспечение. Поддерживает 802.11b/g.
GPRS-шилд от «Амперки» вы видите выше. Вы можете заменить антенну на более мощную. Ближе к зрителю виден слот для SIM-карты, чуть дальше слот под батарейку CR1225. Батарейка на плате нужна для хота часов реального времени, а это немаловажное дополнение к возможностям GPRS-шилда. Вы можете отправлять СМС на него и с него.
С помощью этой платы можно вести контроль и давать команды своему умному дому (или любому другому проекту вашей реализации) находясь на любом удалении. Важно, чтобы вы находились в зоне приема сотовой связи.
Микроконтроллер на javascript от "Амперки":
Как хранить данные на Arduino?
В проектах не вся информация помещается в память микроконтроллера. Иногда требуется хранить некоторые объемы информации. Первое, что приходит на ум, уже сказано – это запись информации с датчиков, чтобы в дальнейшем изучать как изменяется окружающая среда с течение часов, дней, лет. Отличным примером является – домашняя метеостанция. Это полезно не только ученым-исследователям, но и любителям для общего образования и развития.
Это скорее не шилд, а модуль. Он миниатюрен и легок для повторению, кстати, вот его схема.
Есть и полноразмерный шилд хранения данных. Работает с SD-картами памяти, на борту есть модуль часов реального времени, которые питаются от батарейки CR1220 напряжением в 3 В, что является неплохим бонусом.
Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств
Управляем мощной нагрузкой с микроконтроллера
Первое что может прийти в голову – это реле. С их помощью можно коммутировать как цепи постоянного тока, так и с бытовой электросетью 220 Вольт они справятся на ура.
Конкретно тот модуль что изображен ниже может коммутировать 1 кВт 220 В нагрузки (или 5А) по каждому из каналов, для повышения мощности можно либо запараллелить несколько каналов, либо включать этим реле магнитный пускатель. В таком случае реле со шилда будут играть роль промежуточных усилителей.
Конечно вы можете коммутировать реле так, как я описал в статье «Подключение внешних устройств к Ардуино», через транзистор и подобрать нужно реле по току, но использовать готовую плату будет надежнее, удобнее и выглядит лучше.
У реле есть один недостаток – ограниченное количество срабатываний – это следствие выгорания контактов. Это бывает из-за возникновения дуги, при размыкании мощной нагрузки (особенно индуктивного характера – это двигателя и т.п.). Сделать такой шилд можно по следующей схеме:
А вот как это выглядит в сборе:
Поэму для включения нагрузки переменного тока можно использовать тиристоры и симисторы. Одна проблема – прямо к ардуине подключать их нельзя, при пробое pn- перехода управляющего электрода, 220 В могут оказаться на плате микроконтроллера и сжечь его. Выход из этой ситуации – использования оптосимистора.
Так как это задача часто становится перед изобретателями, было разработано готовое решение – симисторный shield, его полное название - ICStation 8 Channel EL Escudo Dos Shield for Arduino. Он изначально предназначался для управления свечением «гибкого неона».
У него есть 8 каналов, к которым подключается сеть переменного тока и нагрузка.
Шилды для двигателей
Управление электродвигателем не всегда легкий процесс. В некоторых ситуациях вам может не хватить пинов для реализации поставленной задачи, или алгоритм управления достаточно сложный. С такими платами вы гораздо быстрее одолеете проект своего робота.
Мотор-ШИЛД для ардуино может управлять электродвигателями постоянного тока (4 штуки) или двумя шаговыми моторчиками.
Он построен на базе двух L293. Эта микросхема представляет собой сборку из двух H мостов, это позволяет управлять с возможностью реверса двумя ДПТ, либо 1 шаговым биполярным двигателем. Схемы подключения соответсвенно:
А в левом верхнем углу платы есть две колодки под сервоприводы (плюс, минус и управляющий сигнал). Красным кругом обведено место куда устанавливается перемычка джампер. Если она стоит – то эта плата питается от базовой платы ардуино, а если нет - от внешнего источника на 5 В.
С помощью этого модуля от отечественного производителя можно управлять двумя двигателями постоянного тока, в нём тоже есть джампер объединяющий линии питания микроконтроллера или разъединающий их – для питания от отдельного источника.
Можно управлять двигателями, которые рассчитаны на диапазон напряжение от 5 до 24 Вольт. Вместо 2-х DC-моторов можно использовать 1 однофазный шаговый или запараллелить каналы и подключить 1 мощный DC мотор с током до 4А, а это не мало – 48 Вт при напряжении питания в 24 В.
Для подключения сервопривода нужно три провода – плюс, минус и сигнал, но что делать, если у вас много серв? Ваша плата превратится в месиво из перемычек. Чтобы это избежать есть Мультисерво шилд.
Здесь тоже есть возможность разделения цепей питания, как это было в предыдущем варианте. Итого можно подключить 18 сервоприводов (на плате нумерация от 0 до 17).
Везде есть своя специфика, шилды для необычных задач…
В атмеге328, сердце нашей платы, есть АЦП. Главная проблема в том, что на плате ардуино уно мы видим всего лишь 6 аналоговых входов. Что делать если у нас больше аналоговых датчиков?
Можно собрать две ардуино в единую сеть. Одну использовать в качестве основной, а вторую вспомогательную для изменений и с первой отправлять на сервер сигналы измерений или выводить их на экран… Но это сложно: нужно тратить память на дополнительные строки программного кода для реализации такой системы.
А что если умножить каждый вход на 16? Итого у нас может быть до 16*6=96 аналоговых входов. Это реально с помощью мультиплексора. Он просто переключает по очереди 16 аналоговых каналов на один аналоговый выход, который вы подключаете к такому же входу любого мироконтроллера.
Распознавание голоса
Средствами микроконтроллера Атмега о-о-очень трудно релизовать функцию распознавания голоса, но ардуинщики могут не отчаиваться, есть специальное решение – EasyVR Shield 3.0.
Это готовое, но дорогое решение, на момент написания статьи он стоит почти 100 долларов в России. Сначала шилд запишет вашу команду, затем сравнит её с тем что записано в памяти, определив номер – выполнит её.
Вы можете устроить «диалог с компьютером», он может воспроизводить то, что в нём записано. Без дополнительных усилителей рекомендуется «общаться» с этой платой с расстояния не более 60 см.
Выводим изображение
LCD Keypad shield – это настоящая панель управления. На нём расположен дисплей LCD1602 (16 символов в две строки), и набор кнопок. Из-за них задействовано довольно много портов, например A0 и с D4 по D7 под клавиатуру, а порт D10 – ШИМ-регулятор яркости подсветки. D8 и D9 – сброс и включение.
На самом деле существует много дисплеев совместимых с ардуино. Вернее тех, о которых написано больше всего информации и вы легко их запустите в своей системе. Довольно популярен в кругах самодельщиков дисплей от NOKIA 5110, на выбор есть и OLED и TFT экраны, работающие по I2C. Но они не в «шилдовом» исполнении.
Дисплеи для Ардуино:
Автономное питание
Довольно необычный шилд в этой подборке, который выполняет обычную задачу. Power shield – это литий-ионный аккумулятор со всеми необходимыми защитами и разъёмом для зарядки. Вроде бы ничего особенного, но это обеспечит завершенный вид вашему проекту, а цепи питания не придется размещать рядом с основными платами.
Лучшие магазины Ардуино на Алиэкспресс
Где купить Аrduino Shield и другие электронные компоненты?
Проверенные продавцы Ардуино:
Заключение
Использование шилдов для всех задач проекта позволит избежать излишнего числа перемычек и соединений, а это снизит количество ошибок и лишних перемычек. После сборки вы получите многоэтажный бутерброд из плат заводского изготовления. Такой подход иногда называют «модульная конструкция». Между прочим, это облегчит обслуживание, ремонт и наладку оборудования.
Энтузиасты практикуют проектирование, разводку и сборку уникальных модулей. Это одна из причин высокой популярности Ардуино не просто как платформы для самоделок, макетов и прототипов, но и как платформы для готовых решений.
Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте сеть умных гаджетов!
Записывайтесь в онлайн-университет от GeekBrains:
Изучить C, механизмы отладки и программирования микроконтроллеров;
Получить опыт работы с реальными проектами, в команде и самостоятельно;
Получить удостоверение и сертификат, подтверждающие полученные знания.
Starter box для первых экспериментов в подарок!
После прохождения курса в вашем портфолио будет: метостанция с функцией часов и встроенной игрой, распределенная сеть устройств, устройства регулирования температуры (ПИД-регулятор), устройство контроля влажности воздуха, система умного полива растений, устройство контроля протечки воды.
Вы получите диплом о профессиональной переподготовке и электронный сертификат, которые можно добавить в портфолио и показать работодателю.
Согласитесь, что даже самодельный электронный прибор выглядит законченно и функционально, если он имеет устройство ввода и/или вывода информации. Таким устройством может в простейшем случае служить даже светодиод, но куда более интересно наблюдать за небольшим экранчиком, куда выводятся результаты работы прибора. А если еще и имеется возможность влиять на его работу с помощью интерактивных элементов такого экрана, например, касанием к нему, то это уже высший пилотаж DIY электроники!
Многие самодельные электронные устройства разрабатываются сегодня на основе различных клонов Ардуино, что вполне оправдано по причине простоты процесса разработки, широкого функционала самих контроллеров, огромного количества библиотек, реализующих возможности различных устройств ввода-вывода, предназначенных для работы в составе этой широко распространенной программно-аппаратной платформы.
Именно для таких разработок предназначены миниатюрные мониторы (дисплеи), предлагаемые компанией Мастер Кит, и являющиеся темой этого материала. Такие дисплеи небольшого размера (2-7 дюймов по диагонали) будут полезны электронщикам, конструирующим самодельные аудиовидеоплееры, различные устройства базе Arduino или Raspberry и т.п. На дисплее могут отображаться цифровая и текстовая информация, изображения и видео, а малый размер дисплеев и низкое энергопотребление позволяет встраивать их даже в портативные электронные устройства.
Наибольшее распространение для DIY разработок получили различные типы устройств отображения на жидких кристаллах (ЖК), или LCD (liquid crystal display), а также TFT LCD – разновидность жидкокристаллических дисплеев с активной матрицей. Каждый пиксель таких дисплеев управляется 1-4 тонкопленочными транзисторами (по англ. – Thin Film Transistor, сокращенно – TFT), которые помогают легко включать/выключать светодиоды матрицы, создавая более четкое, качественное изображение. TFT-дисплей имеет две стеклянные подложки, внутри которых находится слой жидких кристаллов. В передней стеклянной подложке находится цветной фильтр. Задняя подложка содержит тонкие транзисторы, выстроенные в колонны и ряды. Позади всего этого хозяйства находится подсветка.
Интересно знать, что каждый пиксель представляет собой небольшой конденсатор со слоем жидкого кристалла, зажатого между прозрачными проводящими слоями из оксида индия-олова. Когда дисплей включается, молекулы в жидкокристаллическом слое изгибаются под определенным углом и пропускают свет. Это создает пиксель, который мы видим. В зависимости от угла изгиба молекул жидких кристаллов, возникает тот или иной цвет. Все пиксели вместе образуют картинку.
В стандартном TFT-мониторе присутствует около миллиона пикселей, каждый из которых контролирует свой транзистор. Состоят они из тонких пленок из аморфного кремния, нанесенных на стекло по технологии PECVD (этот метод обычно используется для создания микропроцессоров). Каждый элемент работает за счет небольшого заряда, поэтому перерисовка изображения происходит очень быстро, картинка обновляется много раз в секунду.
Рассмотрим некоторые конкретные образцы миниатюрных мониторов, предлагаемых компанией Мастер Кит.
2.2-дюймовый TFT-монитор может использоваться в любых встраиваемых системах, в которых требуется высококачественное цветное изображение. Модулем можно легко управлять такими микроконтроллерами как 8051, PIC, AVR, ARDUINO, и ARM. На модуле установлен слот для SD-карты.
Идеи для применения:
- индикация и управление в умном доме;
OLED в работе
Когда напряжение подается на дисплей, ток протекает от катода к аноду через органические слои OLED. Катод отдает электроны в излучающий слой органических молекул, между тем анод удаляет электроны из проводящего слоя органических молекул.
На границе между проводящим и излучающим слоями создаются электронные дыры. Эти дыры заполнены электронами, и OLED излучает свет. Цвет дисплея зависит от используемых органических молекул.
OLED+Arduino
- CS 10
- DC 9
- RES 8
- D1 или SDA 11
- D0 или SCK 13
- VCC 3.3V
- GND GND
OLED-дисплеи, что это такое?
OLED – что же это за аббревиатура? Она в переводе с английского означает, органический светоизлучающий диод. OLED-дисплеи очень маленькие и имеют высокое разрешение. Эти дисплеи не имеют подсветки, они излучают свой собственный свет. Вот почему эти дисплеи очень экономны и практичны для использования в разных электронных устройствах.
Почти в любом магазине, где продают бытовую электронику, можно увидеть хотя бы один телевизор с OLED-дисплеем. Именно из-за такой особой технологии изготовления такое устройство будет очень дорого. Но почему? Каковы особенности такого дисплея?
Технология OLED используется в основном для производства ЖК-панелей. В портативной электронике обычно используются AMOLED-дисплеи, которые, впрочем, в общих чертах очень похожи. Зато OLED-дисплей типичен для умных часов и фитнес-браслетов. В нашем проекте будем использовать OLED-дисплей. Приобрести данный дисплей можно на алиэкспресс. Вот вам ссылка на дисплей по недорогой цене.
DHT22+Arduino
Если вы хотите узнать больше о взаимодействии DHT22 с Arduino, много информации имеется в интернете.
Технические характеристики
Диагональ, дюйм 2,2
Разрешение 320х240
Напряжение питания, В 3,3
Габаритные размеры LCD, мм 67,2 x 41 x 5
Углы обзора верх/низ/лево/право 45/65/65/65
Количество цветов 260К
Контрастность 400:1
Монитор совместим с контроллерами Freaduino, у которых есть возможность переключения на режим работы 3,3В. Так как монитор работает с уровнями сигналов 3,3 В, несовместимыми с Arduino, необходимо использовать преобразователь уровней. Для подключения модуля к Arduino Uno (подобным) используйте расширение-преобразователь уровней SHD09. Для подключения модуля к Arduino Mega2560 (или подобным) используйте расширение-преобразователь уровней SHD10. Жидкокристаллический модуль поддерживает UTFT библиотеку Хеннинга Карлзена, которую можно скачать здесь .
- TFT01-3.2 - 3.2" TFT дисплей (320 * 240) с сенсорной панелью (touch screen) для Arduino.
В дисплее использован контроллер Li9341.
3.2-дюймовый TFT монитор, может использоваться в любых встраиваемых системах, в которых требуется высококачественное цветное изображение и сенсорное управление. Модулем можно легко управлять такими микроконтроллерами как 8051, PIC, AVR, ARDUINO, и ARM. На модуле установлены регуляторы на 5 и 3.3 вольта, контроллер сенсорной панели, схема PWM и слот для SD-карты.
Мониторы совместимы с контроллерами Arduino Uno, Arduino Duemilanove w/ATmega328, Arduino Leonardo, Arduino Mega2560, Arduino Mega, Arduino Due.
Так как монитор работает с уровнями сигналов 3,3 В, несовместимыми с Arduino, необходимо использовать преобразователь уровней.
Принципиальная электрическая схема
OLED работает с напряжением 3,3 V, поэтому не рекомендуем подключать его к 5 V Arduino. Данная схема сможет работать, но срок службы OLED-уменьшится.
Выполните все соединения для OLED и DHT22 с Arduino следующим образом
OLED и Arduino
OLED-дисплей, который мы собираемся использовать, имеет 128x64 белых OLED-пикселей. Это 0,96 '' (25 мм X 14 мм). OLED-дисплеи других размеров также доступны. OLED, используемый в этом руководстве, является монохромным (имеет только один цвет), но вы также можете приобрести OLED-дисплей, который имеет несколько цветов.
Этот дисплей использует SPI для связи с Arduino. Связь SPI быстрее, чем связь I2C, поэтому именно этот вид связи сделает наш дисплей быстрее.
Читайте также: