Подключение LCD дисплея hd44780 к Arduino

Всем привет! Сегодня мы будем подключать LCD дисплей к нашей ардуинке.

44780_blue

Ну начнем как полагается с железа! Вот стандартная распиновка дисплея на контроллере HD44780 16Х2 знакомест.

LCD_pinout

А вот стандартное подключение к Arduino

44780+ar

Все просто, нужен сам дисплей, Arduino и подстроечный резистор на 10Ком для регулировки контраста.

Для проверки дисплея можно подключить только вот эти контакты:

  • 1 контакт дисплея – Vss,  –> земля  GND
  • 2 контакт дисплея –  Vdd, –> питание  +5 В
  • 3 контакт дисплея –  Vo, –> управление контрастностью напряжением ⇨ выход потенциометра
  • 15 контакт дисплея – A, –> питание для подсветки  +5 В
  • 16 контакт дисплея –  K, –> земля для подсветки  GND

При таком подключении должен загорется первый ряд, вот так:

hd44780_initЕсли подсветка загорелась, а прямоугольников не видно –  покрутите подстроечник, возможно выставлен маленький контраст.

Полное подключение выглядит так:LCD+arduino

  • 1 контакт дисплея – Vss, –> земля  GND
  • 2 контакт дисплея – Vdd, –>  питание  +5 В
  • 3 контакт дисплея – Vo, –> управление контрастностью напряжением выход потенциометра
  • 4 контакт дисплея – RS, –> выбор регистра пин 12 Arduino
  • 5 контакт дисплея – R/W, –> чтение/запись  земля (режим записи)
  • 6 контакт дисплея – E, –>  Enable  пин 11 Arduino
  • 7-10 контакт дисплея – DB0-DB3, –> младшие биты 8-битного интерфейса; не подключены
  • 11-14 контакт дисплея – DB4-DB7, –> старшие биты интерфейса  пины 5-2 Arduino
  • 15 контакт дисплея – A, –> питание для подсветки  +5 В
  • 16 контакт дисплея – K, –> земля для подсветки  GND

Ну а теперь софтовая часть! Запускаем Arduino IDE

Файл –> Образцы –> LiquidCrystal –> HelloWorld:

IDE+lcdИ видим код:

// подключаем библтотеку для работы с LCD:
#include <LiquidCrystal.h>

// команда инициализации пинов дисплея
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // запускаем дисплей, 2 строки по 16 символов
  lcd.begin(16, 2);
  // выводим на дисплей хеллоу ворд
  lcd.print("hello, world!");
}

void loop() {
  // ставим курсор на вторую строку на нулевой столбец
 // нумерация строк с 0 (верхняя строка 0 нижняя 1)
  lcd.setCursor(0, 1);
  // выводим на дисплей число секунд, прошедших с момента старта Arduino
  lcd.print(millis() / 1000);
}

Компилируем, загружаем и получаем результат:

lcd_helloДавайте теперь рассмотрим стандартные процедуры библитеки LCD Arduino:

  • home() и clear()
    Первый метод возвращает курсор в начало экрана; clear() делает то же самое, заодно стирая всё, что было на дисплее до этого.
  • write(ch)
    Выводит одиночный символ ch на дисплей.
    Пример:

    lcd.write('z');
    lcd.write(0); // вывести символ с кодом 0; см. метод createChar()

     

  • cursor() и noCursor()
    Позволяют показать курсор на дисплее (символ подчёркивания) и скрыть его.
  • blink() и noBlink()
    Включить и выключить мигание курсора, если включено его отображение.
  • display() и noDisplay()
    Включить и выключить дисплей.
  • scrollDisplayLeft() и scrollDisplayRight()
    Прокрутить экран на один символ влево или вправо.
  • autoscroll() и noAutoscroll()
    Включить и выключить режим автопрокрутки. В этом режиме при выводе каждого следующего символа содержимое экрана будет смещено на один символ влево (или вправо, если включен режим вывода справа налево), а выводимый символ займёт место первого сдвинутого. Проще говоря, в этом режиме все последующие символы выводятся в одно и то же место, вытесняя текущее содержимое экрана.
  • leftToRight() и rightToLeft()
    Устанавливают направление вывода текста: слева направо и справа налево, соответственно.
  • createChar(ch, bitmap)
    Самая крутая функция: позволяет создать свой символ с кодом ch (от 0 до 7), пользуясь массивом битовых масок bitmap для задания тёмных и светлых точек.
    Пример:

    .....
    //создаем символ молнии
    byte symbol[8] = 
    {
      B00010,
      B00100,
      B01000,
      B11111,
      B00010,
      B00100,
      B01000,
      B00000,
    };
    .....
    void setup()
    {
    ...
      // Регистрируем собственные символы с кодом 0
      lcd.createChar(0, symbol);
    ...
    }
    ....
    void loop{
    ...
    // выводим на экран собственный символ
     lcd.write(0);
    ...
    }
    

    Сегодня мы научильсь использовать LCD дисплей с Arduino!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *