by admin • • 0 Comments
AliExpress, Arduino и шилды, Инструменты, Радиотовары и DIY
1602 I2C LCD интдикатор (дисплей) от YwRobot
LCD индикаторы 1602 (16 знаков 2 строки), на базе контроллера HD44780, являются одними из самых простых и дешевых, поэтому они широко используются в электронных самоделках. Они яркие и контрастные, бывают разных цветов, с прямым и инверсным выводом. Из недостатков — отсутствие в прошивке в самых массовых и дешевых моделях русского языка, ну и подключение требует ни много ни мало — 8 проводников. Описывать сами индикаторы я не буду, обзоров на них в интернет тысячи.
Я расскажу о подключении такого дисплея по шине I2C при помощи всего 2 проводников (плюс питание).
Зачем я это делаю? В интернет десятки если не сотни инструкций по подключению дисплеев I2C. Да, это так. Но вот в чем проблема, платы I2C бывают разные и инструкции написанные для одних плат совсем не работают с другими.
Я купил LCD 1602 с уже припаянными к ним платами I2C от YwRobot.
Вроде все просто: 4 проводника по порядку 1- земля, 2- питание 5V, 3- SDA, 4- SCL. Переменный резистор регулировки контрастности и перемычка, выключающая подсветку.
Для работы дисплея в среде Arduino нужны библиотеки Wire.h и LiquidCrystal_I2C.h. Я перепробовал несколько разных инструкций по подключению и версий библиотеки LiquidCrystal_I2C.h. Дисплей не оживал.
Потом я начал искать по ключевому слову YwRobot и наткнулся на интересное и подробное описание подключения 1602 дисплеев с разными платами I2C. Меня, конкретно интересовала плата от YwRobot, так как они самые дешевые и распространенные на AliExpress. Так вот, для этой платки старые библиотеки LiquidCrystal_I2C.h не годятся. Там же есть ссылки на новые библиотеки и примеры скетчей.
Cсылка на репозиторий со свежими версиями библиотек LiquidCrystal_I2C.h: ССЫЛКА
Пример скетча:
#include <Wire.h> #include <LiquidCrystal_I2C.h> // Using version 1.2.1 // The LCD constructor - address shown is 0x27 - may or may not be correct for yours // Also based on YWRobot LCM1602 IIC V1 LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { lcd.begin(16,2); // sixteen characters across - 2 lines lcd.backlight(); // first character - 1st line lcd.setCursor(0,0); lcd.print("Hello World!"); // 8th character - 2nd line lcd.setCursor(8,1); lcd.print("-------"); } void loop() { }
У меня сразу все заработало.
Отрегулировал контраст и все прекрасно заработало.
Дисплеи отличные, учитывая их вполне доступную цену. Соотношение цена-качество — лучше не бывает. Весьма рекомендую.
Ну и напоследок, где я применил данный дисплей?
Аппарат точечной сварки с регулировкой количества сварочных импульсов, их мощности, контролем температуры и термостабилизацией, режим сварки стробом, сварка скруток и т.п., не буду раскрывать всех секретов.
Дисплей на фото заклеен скотчем чтобы не поцарапать пока кручу-паяю. В перспективе наклейка на него оранжевого светофильтра, хочу чтобы выглядело примерно так, как OLED:
Ссылку на индикатор и плату не даю так как покупал я их довольно давно, больше года назад и ссылки уже врядли будут рабочими. Найти их не составит труда по ключевым словам «1602» и «I2C».