Контрастность LCD зависит от величины напряжения, которое подается на вход управления. Чем больше напряжение, тем меньше контрастность и наоборот. Напряжение должно быть около 0.5-1 В, но еще зависит от окружающей температуры. В нашем скетче значение ШИМ установлено на 50 (примерно 20% заполнение), что обеспечивает уровень выходного напряжения около 1 В. Соответственно вы можете увеличивать или уменьшать данное значение для получения необходимого уровня контрастности.
Вот собственно схема подключения: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
Не забываем на 15 контакт дисплея подать +5В для подсветки и на 16 GDN.
Порты микроконтроллера вы можете запросто изменить в программе.
На картинке ниже, макет присоединения:
Ниже представлен скетч для Arduino. Значение контрастности на ШИМ-выходе устанавливается при инициализации программы, однако вы можете доработать проект, сделав внешнее управление контрастностью. К примеру сделав 2 кнопки + и — или регулировать контрастность переменным резистором, соответственно внеся необходимые изменения в программу.
ArduinoIDE есть библиотека LiquidCrystal, но она не поддерживает русские буквы, тем, кто хочет использовать модифицированную библиотеку LiquidCrystalRus необходимо скачать её по ссылке и скопировать в папку libraries.
/*
LiquidCrystal Library
Демонстрация работы с 16×2 LCD дисплеем. Библиотека LiquidCrystal
работает со всеми LCD совместимыми с Hitachi HD44780.
Данный скетч отображает на LCD надпись «ARDUINO.NET.UA»
Скетч основан на оригинальном скетче 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.h>
// инициализация библиотеки с перечнем задействованных выводов
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup () {
// устанавливаем ШИМ выход:
pinMode (9, OUTPUT);
analogWrite (9, 50);
// устанавливаем кол-во столбцов и строк:
lcd.begin (16, 2);
// печать сообщения на LCD.
lcd.print ( «ARDUINO.NET.UA»);
}
void loop () {
// устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0):
lcd.setCursor (0, 1);
// печать числа секунд после сброса:
lcd.print (millis ()/1000);
}
Запускаем наш микроконтроллер и наслаждаемся работой!