Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/LiquidCrystal HelloWorld

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


ЖК-экран – «Привет, мир!»[1]

Библиотека LiquidCrystal позволяет управлять жидко-кристаллическими экранами, совместимыми с драйвером Hitachi HD44780. Моделей, отвечающих этим характеристикам, довольно много, и управлять ими можно, как правило, при помощи 16-контактного интерфейса.

Этот пример выводит на ЖК-экран фразу «Hello, world!» (т.е. «Привет, мир!»), а также показывает количество секунд с того момента, когда Arduino была перезагружена в последний раз.

Lcd photo.png

Результат работы скетча на ЖК-экране размером 2х16

ЖК-экраны обладают параллельным интерфейсом, а это значит, что микроконтроллеру для управления дисплеем нужно манипулировать не одним, а несколькими контактами. Интерфейс ЖК-экрана состоит из следующих контактов:

Контакт RS (т.е. Register Select или «выбор регистра»), который отвечает за то, в какой вид памяти ЖК-экрана мы будем записывать данные. То есть вы можете выбрать между регистром данных, который отвечает за то, что происходит на экране, и регистром команд, который отвечает за то, где контроллер ЖК-экрана будет искать инструкции о том, что ему делать дальше.

Контакт R/W (т.е. Read/Write или «считывание/запись»), который позволяет выбрать между режимом считывания и режимом записи.

Контакт E (т.е. Enable или «включение»), который активирует запись в регистр.

Восемь контактов для передачи данных (с D0 по D7). Состояния этих контактов (HIGH или LOW) – это биты, которые вы будете записывать в регистр (при записи), либо значения, которые вы будете считывать (при считывании).

Также в параллельном интерфейсе ЖК-дисплее имеются контакты для управления контрастностью экрана (Vo), питания и заземления (+5V и Gnd), а также LED-подсветки (Bklt+ и BKlt-). Последний используется для включения и выключения светодиодной подсветки у ЖК-дисплея.

Процесс управления дисплеем состоит в следующем: данные, которые формируют необходимое вам изображение, помещаются в регистры данных, а команды – в регистры команд. Библиотека LiquidCrystal упрощает этот процесс, благодаря чему знать низкоуровневые команды вам уже не обязательно.

Hitachi-совместимые ЖК-экраны могут управляться в двух режимах – 4-битном и 8-битном. 4-битный режим требует семь I/O контактов, ведущих к Arduino, а 8-битный – одиннадцать. Если вы хотите отобразить на экране текст, то для этого достаточно 4-битного режима, и в этом примере мы как раз покажем, как это сделать.

Необходимое оборудование

  • Плата Arduino;
  • ЖК-экран (совместимый с драйвером Hitachi HD44780);
  • Штырьковые соединители, припаянные к контактам ЖК-экрана;
  • Потенциометр на 10 кОм;
  • Макетная плата Breadboard;
  • Провода-перемычки;

Цепь

Перед тем, как подключать ЖК-экран к Arduino, нам надо припаять линейку штырьковых соединителей к коннектору с 14 (или 16) контактами, как изображено на фото выше. Затем, при подключении ЖК-экрана к Arduino, нужно соединить следующие контакты:

  • RS с 12-ым цифровым контактом
  • Enable с 11-ым цифровым контактом
  • D4 с 5-ым цифровым контактом
  • D5 с 4-ым цифровым контактом
  • D6 с 3-им цифровым контактом
  • D7 со 2-ым цифровым контактом

Также подсоединяем 10 кОмовый потенциометр: концы – к +5V и Gnd, а движок – к контакту Vo ЖК-экрана.

LCD bb.png

Код

  1. /*
  2. Библиотека LiquidCrystal – «Привет, мир!»
  3.  
  4. Демонстрирует использование ЖК-дисплея 16х2. Библиотека LiquidCrystal
  5. работает со всеми ЖК-дисплеями, которые совместимы с драйвером Hitachi HD44780. Моделей, отвечающих этим критериям, довольно много,
  6. а управлять ими можно, как правило, при помощи 16-контактного интерфейса.
  7.  
  8. Этот скетч выводит на ЖК-экран надпись «Hello, world!» и время.
  9.  
  10. Цепь (ЖК-экран):
  11. * Контакт RS подключаем к 12-ому цифровому контакту
  12. * Контакт Enable – к 11-ому цифровому контакту
  13. * Контакт D4 – к 5-ому цифровому контакту
  14. * D5 – к 4-ому цифровому контакту
  15. * D6 – к 3-ему цифровому контакту
  16. * D7 – ко 2-ому цифровому контакту
  17. * Контакт R/W – к «земле»
  18.  
  19. Цепь (10000-омовый потенциометр):
  20. * концы – к +5V и «земле»
  21. * движок – к Vo (т.е. к 3-ему контакту)
  22.  
  23. Первоначально библиотека добавлена 18 апреля 2008 Дэвидом А. Меллисом (David A. Mellis),
  24. а модифицирована 5 июля 2009 Лимор Фрид (Limor Fried, http://www.ladyada.net).
  25.  
  26. Пример добавлен 9 июля 2009 Томом Иго (Tom Igoe),
  27. модифицирован 22 ноября 2010 им же.
  28.  
  29. Этот код не защищен авторским правом.
  30.  
  31. http://www.arduino.cc/en/Tutorial/LiquidCrystal
  32.  */
  33.  
  34. // Подключаем библиотеку:
  35. #include <LiquidCrystal.h>
  36.  
  37. // Инициализируем библиотеку, указывая номера контактов интерфейса:
  38. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  39.  
  40. void setup() {
  41.   // Задаем число колонок и рядов ЖК-экрана:
  42.   lcd.begin(16, 2);
  43.   // Выводим на дисплей сообщение «Hello, world!» (т.е. «Привет, мир!»):
  44.   lcd.print("hello, world!");
  45. }
  46.  
  47. void loop() {
  48.   // Задаем положение курсора – столбец 0, ряд 1
  49.   // (примечание: ряд 1 – это на самом деле ряд номер 2, поскольку отсчет идет от «0»):
  50.   lcd.setCursor(0, 1);
  51.   // Отображаем на ЖК-дисплее количество секунд, прошедших с последней перезагрузки:
  52.   lcd.print(millis()/1000);
  53. }

См.также

  1. lcd.begin()
  2. lcd.print()
  3. lcd.setCursor()
  4. Liquid Crystal Library
  5. Blink: control of the block-style cursor.
  6. Cursor: control of the underscore-style cursor.
  7. Display: quickly blank the display without losing what's on it.
  8. TextDirection: control which way text flows from the cursor.
  9. Scroll: scroll text left and right.
  10. Serial input: accepts serial input, displays it.
  11. SetCursor: set the cursor position.
  12. Autoscroll: shift text right and left.

Внешние ссылки

  1. Arduino - LiquidCrystal - "Hello World!"