Arduino UNO урок 10 — LCD

В этом уроке по Arduino UNO мы рассмотрим подключение LCD. Среда Arduino IDE уже идет с примером (скетчем) по подключению LCD-дисплея Hitachi HD44780. Мы будем использовать аналогичный LCD: Pololu 16×2 LCD 773 или 772.

Чтобы не повторяться с оригинальным примером из IDE, где для управления контрастностью дисплея использовался потенциометр, мы внесем некоторые изменения в проект. Используя один из выходом ШИМ с конденсатором (и т.о. сделаем простейший ЦАП), мы будем управлять контрастностью с программы, где «жестко» будет прописано значение. Вывод 9 Arduino, который используется как ШИМ, соединен к ногой управления контрастностью Vo LCD. Конденсатор 100 мкФ, соединен между выходом ШИМ и общим.

Контрастность LCD зависит от величины напряжения, которое подается на вход управления. Чем больше напряжение, тем меньше контрастность и наоборот. Напряжение должно быть около 0.5-1 В, но еще зависит от окружающей температуры. В нашем скетче значение ШИМ установлено на 50 (примерно 20% заполнение), что обеспечивает уровень выходного напряжения около 1 В. Соответственно вы можете увеличивать или уменьшать данное значение для получения необходимого уровня контрастности.

Ниже вы можете видеть пинаут LCD-Arduino

LCD Pin Символ Назначение Arduino Pin
1 Vss Общий (0 V) Общий (0 V)
2 Vdd Питание (4.5 – 5.5 V) +5V
3 Vo Управ. контрастностью 9
4 RS H/L register select signal 12
5 R/W H/L read/write signal Общий (0 V)
6 E H/L enable signal 11
11 DB4 H/L data bus for 4-bit mode 5
12 DB5 H/L data bus for 4—bit mode 4
13 DB6 H/L data bus for 4-bit mode 3
14 DB7 H/L data bus for 4-bit mode 2

На картинке ниже, макет присоединения

Подсоединение LCD к Arduino

Ниже представлен скетч для Arduino. Значение контрастности на ШИМ-выходе устанавливается при инициализации программы, однако вы можете доработать проект, сделав внешнее управление контрастностью. К примеру сделав 2 кнопки + и -, соответственно внеся необходимые изменения в программу.

 /*   Демонстрация работы с 16x2 LCD дисплеем.  Библиотека LiquidCrystal  работает со всеми LCD совместимыми с Hitachi HD44780.    Данный скетч отображает на LCD "Hobbytronics".  Скетч основан на оригинальном скетче Arduino   http://www.arduino.cc/en/Tutorial/LiquidCrystal  с модификациями, позволяющими вручную устанавливать  контрастность дисплея     Схема подключения:  * LCD RS пин к цифр. выходу 12  * LCD Enable пин к цифр. выходу 11  * LCD R/W к Общему  * LCD VO пин (пин 3) к ШИМ-выходу 9  * LCD D4 пин к цифр. выходу 5  * LCD D5 пин к цифр. выходу 4  * LCD D6 пин к цифр. выходу 3  * LCD D7 пин к цифр. выходу 2   */  #include 	// подключаем библиотеку  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);	// инициализация библиотеки с перечнем задействованных выводов  void setup() {   pinMode(9, OUTPUT);     analogWrite(9, 50);	// устанавливаем ШИМ выход      lcd.begin(16, 2);		// устанавливаем кол-во столбцов и строк   lcd.print("  HobbyTronics");	// печать сообщения на LCD }  void loop() {   // устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0)   lcd.setCursor(0, 1);   lcd.print(millis()/1000);	// печать числа секунд после сброса } 

Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)