Подключаем 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. Если хотите почитать более подробный материал по этой теме - вам сюда!



Arduino и LCD экран
