Для подключения символьного LCD дисплея, обычно нужно задействовать от 6 до 11 пинов контроллера. Просто, но расточительно... хорошо, когда используется Atmega16 или Atmega8, у которых вполне хватает ног для выполнения таких задач, а если каждый вывод на счету?
В данном случае на выручку спешит девайс наших хитрых братьев из страны восходящего солнца, переходник I2C для LCD дисплея с контроллером HD44780. Разрядность дисплея не важна, это могут быть 1, 2 или 4 строчные модели символьных дисплеев.
Помимо возможности сократить количество выводов для подключения, а для этого потребуется всего два вывода, не считая питания, переходник исключает возможность "преждевременной кончины" дисплея из-за случайно перепутанных выводов питания (у меня такое случалось дважды).
Переходник припаивается к дисплею жестко, через разъем к штатным выводам дисплея.
На плате переходника находится переменный резистор для регулировки контрастности.
Перемычки с торца платы позволяют отключить или включить подсветку.
При установке между платой и переходником, во избежание механического контакта переходника с чипом дисплея, желательно наклеить тонкий скотч на вспененной основе.
На переходнике:
- A0, A1, A2 перемычки для установки адреса с 0x20 по 0x27 в HEX
- Джампер отключает/включает подсветку
- Резистор регулирует контрастность
В данном случае модуль настроен на адрес 0x27
Для инициализации используется стандартная библиотека ардуино <Wire.h> и библиотека <LiquidCrystal_I2C.h> которая находится здесь https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
подключается переходник к Arduino так:
GND - GND
VCC - +5
SDA - A4
SCL - A5
//////////////////////////////////////////////////////////////////////
// Тестовый скетч "Переходник I2C для LCD с контроллером HD44780"
//////////////////////////////////////////////////////////////////////
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // адрес 0x27, 16 символов, 2 ряда
void setup() {
lcd.init(); // инициализация lcd
lcd.backlight(); //подсветка
lcd.print(" i2c test"); //вывод текста
lcd.setCursor(0, 1); //курсор на 2 строку с начала
lcd.print(" Hello world!"); //вывод текста
}
void loop() {
}
//////////////////////////////////////////////////////////////////////
Как видно - ничего сложного, а сколько пользы! и о шлейфе проводов к дисплею можно забыть!
Удачи вам, интересного творчества друзья!
tarip
информационная поддержка: Baev_A