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

Arduino:Примеры/LiquidCrystalSetCursor

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

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

Контакты:

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


ЖК-экран – смена положения курсора [1]

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

Этот пример демонстрирует, как при помощи функции setCursor() менять позицию курсора. Вам нужно лишь вызвать эту функцию, а аргументами в ней указать столбец и ряд, в которые нужно установить курсор. Вот несколько примеров для дисплея 2х16:

  1. lcd.setCursor(0, 0); // левый верхний край
  2. lcd.setCursor(15, 0); // правый верхний край
  3. lcd.setCursor(0, 1); // левый нижний край
  4. lcd.setCursor(15, 1); // правый нижний край

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

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

Схема

LCD schem LiquidCrystalSetCursor.png

Код

  1. /*
  2. Библиотека LiquidCrystal – смена положения курсора
  3.  
  4. Демонстрирует использование ЖК-дисплея 16х2. Библиотека LiquidCrystal
  5. работает со всеми ЖК-дисплеями, которые совместимы с драйвером Hitachi HD44780. Моделей, отвечающих этим критериям, довольно много,
  6. а управлять ими можно, как правило, при помощи 16-контактного интерфейса.
  7.  
  8. Этот скетч печатает буквы латинского алфавита
  9. на всех позициях ЖК-экрана при помощи функции setCursor():
  10.  
  11. Цепь (ЖК-экран):
  12. * Контакт RS подключаем к 12-ому цифровому контакту
  13. * Контакт Enable – к 11-ому цифровому контакту
  14. * Контакт D4 – к 5-ому цифровому контакту
  15. * D5 – к 4-ому цифровому контакту
  16. * D6 – к 3-ему цифровому контакту
  17. * D7 – ко 2-ому цифровому контакту
  18. * Контакт R/W – к «земле»
  19.  
  20. Цепь (10000-омовый потенциометр):
  21. * концы – к +5V и «земле»
  22. * движок – к Vo (т.е. к 3-ему контакту)
  23.  
  24. Первоначально библиотека добавлена 18 апреля 2008 Дэвидом А. Меллисом (David A. Mellis),
  25. а модифицирована 5 июля 2009 Лимор Фрид (Limor Fried, http://www.ladyada.net).
  26.  
  27. Пример добавлен 9 июля 2009 Томом Иго (Tom Igoe),
  28. модифицирован 22 ноября 2010 им же.
  29.  
  30. Этот код не защищен авторским правом.
  31.  
  32. http://arduino.cc/en/Tutorial/LiquidCrystalSetCursor
  33. */
  34.  
  35. // Подключаем код библиотеки:
  36. #include <LiquidCrystal.h>
  37.  
  38. // Это константы, т.е. значения, которые во время работы скетча меняться не будут.
  39. // Однако, меняя эти цифры, вы можете изменить размер ЖК-экрана:
  40. const int numRows = 2;
  41. const int numCols = 16;
  42.  
  43. // Инициализируем библиотеку, создавая экземпляр класса lcd
  44. // и указывая номера используемых контактов Arduino:
  45. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  46.  
  47. void setup() {
  48.   // Задаем количество столбцов и рядов ЖК-экрана:
  49.   lcd.begin(numCols,numRows);
  50. }
  51.  
  52. void loop() {
  53.   // «Прочесываем» по всем латинским ASCII-символам: от «a» до «z»:
  54.   for (int thisLetter = 'a'; thisLetter <= 'z'; thisLetter++) {
  55.     // «Прочесываем» по столбцам:
  56.     for (int thisCol = 0; thisCol < numRows; thisCol++) {
  57.       // «Прочесываем» по рядам:
  58.       for (int thisRow = 0; thisRow < numCols; thisRow++) {
  59.         // Устанавливаем позицию курсора:
  60.         lcd.setCursor(thisRow,thisCol);
  61.         // Печатаем букву:
  62.         lcd.write(thisLetter);
  63.         delay(200);
  64.       }
  65.     }
  66.   }
  67. }

См.также

  1. lcd.begin()
  2. lcd.print()
  3. lcd.setCursor()
  4. for()
  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. Scroll: scroll text left and right.
  11. Serial input: accepts serial input, displays it.
  12. Autoscroll: shift text right and left.

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

  1. Arduino - LiquidCrystal - setCursor()