Arduino UNO урок 10 - LCD
В этом уроке по Arduino UNO мы рассмотрим подключение LCD. Среда Arduino IDE уже идет с примером (скетчем) по подключению LCD-дисплея Hitachi HD44780. Мы будем использовать аналогичный LCD: Pololu 16x2 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 |
На картинке ниже, макет присоединения
Ниже представлен скетч для 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); // печать числа секунд после сброса }
Оригинал статьи на английском языке (перевод Колтыков А.В.)