Library:LiquidCrystal

Материал из wiki.my-comp.net

Библиотека LiquidCrystal позволяет вам управлять ЖК-дисплями, совместимыми с драйвером Hitachi HD44780. Есть много их, обычно 16-пиновых, разновидностей.

Эта схема выводит «hello, world!» на ЖК-дисплей и показывает время в секундах, после сброса.

7169715a.png

Нам понадобится[править]

  • Arduino Board
  • LCD-дисплей (совместимый с драйвером Hitachi HD44780)
  • Макетная плата
  • Конденсатор 100 мкФ
  • Соединительные провода


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

Используя один из выходом PWM с конденсатором, мы будем управлять контрастностью с программы, где "жестко" будет прописано значение. Вывод 9 Arduino, который используется как PWM, соединен c пином управления контрастностью Vo LCD. Конденсатор 100 мкФ, соединен между выходом PWM и общим.

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

Arduino Sketch[править]

/*
  Схема подключения:
 * LCD RS пин к цифр. выходу 12
 * LCD Enable пин к цифр. выходу 11
 * LCD R/W к Общему
 * LCD VO пин (пин 3) к PWM-выходу 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);   // устанавливаем PWM выход  
  lcd.begin(16, 2);     // устанавливаем кол-во столбцов и строк
  lcd.print("hello, habr!");  // вывод сообщения на LCD
}
 
void loop() {
  // устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0)
  lcd.setCursor(0, 1);
  lcd.print(millis()/1000); // вывод числа секунд после сброса
}