Всем привет! Сегодня мы будем подключать LCD дисплей к нашей ардуинке.
Ну начнем как полагается с железа! Вот стандартная распиновка дисплея на контроллере HD44780 16Х2 знакомест.
А вот стандартное подключение к Arduino
Все просто, нужен сам дисплей, Arduino и подстроечный резистор на 10Ком для регулировки контраста.
Для проверки дисплея можно подключить только вот эти контакты:
- 1 контакт дисплея — Vss, —> земля GND
- 2 контакт дисплея — Vdd, —> питание +5 В
- 3 контакт дисплея — Vo, —> управление контрастностью напряжением ⇨ выход потенциометра
- 15 контакт дисплея — A, —> питание для подсветки +5 В
- 16 контакт дисплея — K, —> земля для подсветки GND
При таком подключении должен загорется первый ряд, вот так:
Если подсветка загорелась, а прямоугольников не видно — покрутите подстроечник, возможно выставлен маленький контраст.
Полное подключение выглядит так:
- 1 контакт дисплея — Vss, —> земля GND
- 2 контакт дисплея — Vdd, —> питание +5 В
- 3 контакт дисплея — Vo, —> управление контрастностью напряжением выход потенциометра
- 4 контакт дисплея — RS, —> выбор регистра пин 12 Arduino
- 5 контакт дисплея — R/W, —> чтение/запись земля (режим записи)
- 6 контакт дисплея — E, —> Enable пин 11 Arduino
- 7-10 контакт дисплея — DB0-DB3, —> младшие биты 8-битного интерфейса; не подключены
- 11-14 контакт дисплея — DB4-DB7, —> старшие биты интерфейса пины 5-2 Arduino
- 15 контакт дисплея — A, —> питание для подсветки +5 В
- 16 контакт дисплея — K, —> земля для подсветки GND
Ну а теперь софтовая часть! Запускаем Arduino IDE
Файл —> Образцы —> LiquidCrystal —> HelloWorld:
// подключаем библтотеку для работы с LCD: #include <LiquidCrystal.h> // команда инициализации пинов дисплея LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // запускаем дисплей, 2 строки по 16 символов lcd.begin(16, 2); // выводим на дисплей хеллоу ворд lcd.print("hello, world!"); } void loop() { // ставим курсор на вторую строку на нулевой столбец // нумерация строк с 0 (верхняя строка 0 нижняя 1) lcd.setCursor(0, 1); // выводим на дисплей число секунд, прошедших с момента старта Arduino lcd.print(millis() / 1000); }
Компилируем, загружаем и получаем результат:
Давайте теперь рассмотрим стандартные процедуры библитеки LCD Arduino:
- home() и clear()
Первый метод возвращает курсор в начало экрана; clear() делает то же самое, заодно стирая всё, что было на дисплее до этого. - write(ch)
Выводит одиночный символ ch на дисплей.
Пример:lcd.write('z'); lcd.write(0); // вывести символ с кодом 0; см. метод createChar()
- cursor() и noCursor()
Позволяют показать курсор на дисплее (символ подчёркивания) и скрыть его. - blink() и noBlink()
Включить и выключить мигание курсора, если включено его отображение. - display() и noDisplay()
Включить и выключить дисплей. - scrollDisplayLeft() и scrollDisplayRight()
Прокрутить экран на один символ влево или вправо. - autoscroll() и noAutoscroll()
Включить и выключить режим автопрокрутки. В этом режиме при выводе каждого следующего символа содержимое экрана будет смещено на один символ влево (или вправо, если включен режим вывода справа налево), а выводимый символ займёт место первого сдвинутого. Проще говоря, в этом режиме все последующие символы выводятся в одно и то же место, вытесняя текущее содержимое экрана. - leftToRight() и rightToLeft()
Устанавливают направление вывода текста: слева направо и справа налево, соответственно. - createChar(ch, bitmap)
Самая крутая функция: позволяет создать свой символ с кодом ch (от 0 до 7), пользуясь массивом битовых масок bitmap для задания тёмных и светлых точек.
Пример:..... //создаем символ молнии byte symbol[8] = { B00010, B00100, B01000, B11111, B00010, B00100, B01000, B00000, }; ..... void setup() { ... // Регистрируем собственные символы с кодом 0 lcd.createChar(0, symbol); ... } .... void loop{ ... // выводим на экран собственный символ lcd.write(0); ... }
Сегодня мы научильсь использовать LCD дисплей с Arduino!