Подключаем LCD экран к Arduino Uno
В данной статье мы рассмотрим как можно подключить к Arduino Uno LCD дисплей. В примере будет рассмотрено подключение экрана с двумя строчками и шестнадцатью столбцами.
Итак, вот что нам понадобится для работы: Arduino Uno (если у вас его нет, почитайте, как его купить), LCD экран с ножками для подключения к монтажной плате (в нашем случае LCM1602C), вязанка проводов, потенциометр или просто резистор на 47 кОм. Для работы с экраном необходимо соединить его контакты с Arduino по следующей схеме:
Начинаем подключать через монтажную плату проводки (смотрите на картинку). Экран у нас плотно посажен на свои ножки или вообще к ним припаян. Итак втыкаем ножки экрана в монтажную плату.
- Над первой ножкой втыкаем провод от GND, расположенном на Arduino.
- Вторую ножку экрана соединяем с 5 вольтами
- Над третьим втыкаем провод от потенциометра (будет регулировать контрастность экрана). Сам потенциометр имеет 3 ножки. На одну подаём 5 вольт на другую землю (черный и красный провод на картинке), со средней ножки мы как раз и будем "забирать" нужное для конкретной контрастности напряжение.
- Четвертый соединим с 12 разъёмом на Arduino (зеленый провод)
- Пятый с GND (черный провод)
- Шестой с 10 разъёмом на Arduino (зеленый провод)
- 7,8,9,10 оставляем пустыми
- 11 с 5 разъёмом на Arduino (зеленый провод)
- 12 с 4 разъёмом на Arduino (зеленый провод)
- 13 с 3 разъёмом на Arduino (зеленый провод)
- 14 с 2 разъёмом на Arduino (зеленый провод)
- 15 через резистор с 5 вольтами (нужен для подсветки)
- 16 с GND (нужен для подсветки)
- 1 - Gnd (земля)
- 2 - Vin (питание +5В)
- 3 - VO (настройка контрастности)
- 4 - RS (данные/команды)
- 5 - RW (чтение/запись)
- 6 - E (Enable)
- 7-14 - DB0-DB7 (линии данных)
- 15 - LED+ (анод подсветки)
- 16 - LED- (катод подсветки)
Если всё подключено правильно, то заливаем следующий скетч:
#include <LiquidCrystal.h> //Создаем объект для работы с дисплеем. //При создании указываем номера портов //в порядке RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(12, 10, 5, 4, 3, 2); void setup() { //Выставлем число столбцов и строк lcd.begin(16, 2); //Выводим текст lcd.print("hello, world!"); } void loop() { //Выставляем курсор во 2-ю строку, //1й столбец (счет идет с 0, поэтому //строка номер 1, стобец номер 0) lcd.setCursor(0, 1); //Выводим число секунд со старта lcd.print(millis()/1000); };
Если после этого экран мигает, но текст на нём не появляется, ещё аз проверьте, что всё подключено по схеме. Если и это не помогает убедитесь в хорошем контакте всех соединений. Подсветка должна гореть в любом случае, когда у экрана правильно подключены 16 и 15 разъём.
Добавляем свой символ на LCD экран
Сразу оговорюсь, символов на данный экран можно добавить не более 8 штук. Под каждый символ отведено 5 пикселей ширины и 8 пикселей высоты. При создании символа нам нужно указать, какие символы "зажигать" а какие нет. В примере мы создадим символ - лицо со шляпой (моей фантазии хватило только на это). Итак, слева пустая клетка 5 на 8, справа то, что мы хотим увидеть на экране.
Мы зарегистрируем наш символ для вызова по команде /1. То есть в списке из восьми своих символов мы "посадим" наш на вторую позицию (нумерация от 0 до 7). (Обращаю внимание, что lcd.print("\0"); не выведет нулевой символ!) Для задания данного символа нужно написать следующий код:
#include <LiquidCrystal.h> /* Описываем наш символ в виде массива битовых масок. * Каждый символ - это восемь масок по пять бит. * тут 8 - высота клетки экрана */ byte man_with_hat[8] = { B01110, B11111, B00000, B01010, B00100, B10001, B01110, B00000, }; /* Объявляем объект нашего дисплея */ LiquidCrystal lcd(12, 10, 5, 4, 3, 2); void setup() { /* Регистрируем собственный символы с кодом 1 */ lcd.createChar(1, man_with_hat); /* Начинаем работу с дисплееем */ lcd.begin(16, 2); lcd.print("\1"); } void loop() { }
Данная возможность позволит вам немного решить проблему с русским алфавитом (кириллицей), если ваш LCD экран его не поддерживает. Вот русский алфавит: АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ - тут выделены те буквы, которые не имеют схожих по начертанию букв с буквами на английском языке. Жаль, таких букв больше 8.
p.s. Если хотите почитать более подробный материал по этой теме - вам сюда!