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

Arduino:Примеры/LiquidCrystalScroll

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

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

Контакты:

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


ЖК-экран – движение текста [1]

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

Этот пример показывает, как использовать функции scrollDisplayLeft() и scrollDisplayRight() для того, чтобы менять направление двигающегося текста. Если точнее, этот скетч сначала выводит на дисплей надпись «Hello, World!», затем уводит текст за левый край экрана, потом за правый край и в конце концов возвращает его «домой».

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

  • Плата 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 LiquidCrystalScroll.png

Схема

LCD schem LiquidCrystalScroll.png

Код

  1. /*
  2. Библиотека LiquidCrystal – движение текста
  3.  
  4. Демонстрирует использование ЖК-дисплея 16х2. Библиотека LiquidCrystal
  5. работает со всеми ЖК-дисплеями, которые совместимы с драйвером Hitachi HD44780. Моделей, отвечающих этим критериям, довольно много,
  6. а управлять ими можно, как правило, при помощи 16-контактного интерфейса.
  7.  
  8. Этот скетч выводит на дисплей надпись «Hello, World!»,
  9. а затем при помощи функций scrollDisplayLeft() и scrollDisplayRight()
  10. двигает текст то влево, то вправо.
  11.  
  12. Цепь (ЖК-экран):
  13. * Контакт RS подключаем к 12-ому цифровому контакту
  14. * Контакт Enable – к 11-ому цифровому контакту
  15. * Контакт D4 – к 5-ому цифровому контакту
  16. * D5 – к 4-ому цифровому контакту
  17. * D6 – к 3-ему цифровому контакту
  18. * D7 – ко 2-ому цифровому контакту
  19. * Контакт R/W – к «земле»
  20.  
  21. Цепь (10000-омовый потенциометр):
  22. * концы – к +5V и «земле»
  23. * движок – к Vo (т.е. к 3-ему контакту)
  24.  
  25. Первоначально библиотека добавлена 18 апреля 2008 Дэвидом А. Меллисом (David A. Mellis),
  26. а модифицирована 5 июля 2009 Лимор Фрид (Limor Fried, http://www.ladyada.net).
  27.  
  28. Пример добавлен 9 июля 2009 Томом Иго (Tom Igoe),
  29. модифицирован 22 ноября 2010 им же.
  30.  
  31. Этот код не защищен авторским правом.
  32.  
  33. http://arduino.cc/en/Tutorial/LiquidCrystalScroll
  34. */
  35.  
  36. // Подключаем код библиотеки:
  37. #include <LiquidCrystal.h>
  38.  
  39. // Инициализируем библиотеку, указывая номера используемых контактов Arduino:
  40. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  41.  
  42. void setup() {
  43.   // Задаем количество столбцов и рядов ЖК-экрана:
  44.   lcd.begin(16, 2);
  45.   // Показываем на дисплее сообщение:
  46.   lcd.print("hello, world!");  //  "Привет, мир!"
  47.   delay(1000);
  48. }
  49.  
  50. void loop() {
  51.   // Двигаем текст на 13 позиций (это длина строки) влево,
  52.   // тем самым полностью пряча его за левый край экрана:
  53.   for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
  54.     // Начинаем движение:
  55.     lcd.scrollDisplayLeft();
  56.     // Немножко ждем:
  57.     delay(150);
  58.   }
  59.  
  60.   // Двигаем текст на 29 позиций вправо
  61.   // (это длина строки плюс длина дисплея),
  62.   // тем самым полностью пряча его за правый край экрана:  
  63.   for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
  64.     // Начинаем движение:
  65.     lcd.scrollDisplayRight();
  66.     // Немножко ждем:
  67.     delay(150);
  68.   }
  69.  
  70.   // Двигаем текст на 16 позиций влево
  71.   // (это длина дисплея плюс длина строки),
  72.   // тем самым возвращая его в центр:    
  73.   for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
  74.     // Начинаем движение:
  75.     lcd.scrollDisplayLeft();
  76.     // Немножко ждем:
  77.     delay(150);
  78.   }
  79.  
  80.   // В конце главного цикла делаем секундную задержку:
  81.   delay(1000);
  82.  
  83. }

См.также

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

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

  1. Arduino - LiquidCrystal - scrollDisplayLeft() and scrollDisplayRight()