среда, 8 апреля 2015 г.

Подключение LCD 1602B к Arduino

Дисплей на основе контроллера HD44780 самый распространенный в кругу разработчиков-любителей микроконтроллеров. Ардуино не исключение, подключить данный дисплей не составляет особого труда. Для этого нам понадобятся 8 проводов. Подключаем по следующей схеме:

Дисплей имеет 16 контактов. ИХ назначение можно посмотреть на картинке ниже.

Этот дисплей, как и прочие на контроллере HD44780, поддерживает два варианта параллельного интерфейса:
8-битный, выводы DB0-DB7, за один такт передаётся 1 байт (8 бит)
4-битный, выводы DB4-DB7, за один такт передаётся половина байта (4 бита)
Смысла использовать 8-битный вариант нет, потому что это требует больше ног, а выигрыша в скорости всё равно нет: частота обновления дисплея не больше 10 раз в секунду, так что мы всё равно не сможем увидеть часто обновляемые данные. Поэтому выводы DB0-DB3 оставляем неподключенными.
Ну что же, всё подключено — пора писать код. Начнём с классического «Hello, World», который доступен в Arduino IDE через пункт меню File ⇨ Examples ⇨ LiquidCrystal ⇨ HelloWorld:
/* Подключаем библиотеку для работы с LCD */
#include <LiquidCrystal.h>

/* Создаём объект LCD-дисплея, используя конструктор класса LiquidCrystal
* с 6ю аргументами. Библиотека по количеству аргументов сама определит,
* что нужно использовать 4-битный интерфейс.
* Указываем, к каким пинам Arduino подключены выводы дисплея:
*   RS, E, DB4, DB5, DB6, DB7
*/
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

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

void loop()
{
 /* Устанавливаем курсор в 1 столбец 2й строки. Нумерация идёт с нуля,
  * первым аргументом идёт номер столбца.
  */
 lcd.setCursor(0, 1);
 /* Выводим на дисплей число секунд, прошедших с момента старта Arduino */
 lcd.print(millis() / 1000);
}
Ничего сложного, как видите: основного кода набралось всего 4 строки.
Обратите внимание на инициализацию дисплея:

lcd.begin(16, 2);
Здесь мы задали размер экрана: 2 строки по 16 символов. Прелесть в том, что можно, ничего не меняя в схеме, подцепить другой дисплей — например, размером 16х4 символа, или сэкономить и взять 8х2. Достаточно изменить строку инициализации соответственно размеру подключенного дисплея.

Библиотека является стандартной поставляется с софтом Ардуино.

1 комментарий:

  1. The 13 Best Casinos in Las Vegas - MapyRO
    The 13 best casinos 광주광역 출장샵 in 원주 출장마사지 Las Vegas · Bellagio Hotel & Casino 경산 출장안마 · Luxor 파주 출장마사지 Hotel & Casino · Wynn Hotel and Casino · Caesars Palace Hotel and Casino. 양산 출장샵

    ОтветитьУдалить