Arduino:Примеры/LiquidCrystalSetCursor

Материал из Онлайн справочника
Версия от 09:07, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


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

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

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

lcd.setCursor(0, 0); // левый верхний край
lcd.setCursor(15, 0); // правый верхний край
lcd.setCursor(0, 1); // левый нижний край
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 ЖК-экрана.

Схема

Код

/*
Библиотека LiquidCrystal – смена положения курсора
 
Демонстрирует использование ЖК-дисплея 16х2. Библиотека LiquidCrystal
работает со всеми ЖК-дисплеями, которые совместимы с драйвером Hitachi HD44780. Моделей, отвечающих этим критериям, довольно много,
а управлять ими можно, как правило, при помощи 16-контактного интерфейса.
 
Этот скетч печатает буквы латинского алфавита
на всех позициях ЖК-экрана при помощи функции setCursor():
 
Цепь (ЖК-экран):
* Контакт RS подключаем к 12-ому цифровому контакту
* Контакт Enable – к 11-ому цифровому контакту 
* Контакт D4 – к 5-ому цифровому контакту
* D5 – к 4-ому цифровому контакту
* D6 – к 3-ему цифровому контакту
* D7 – ко 2-ому цифровому контакту
* Контакт R/W – к «земле»

Цепь (10000-омовый потенциометр):
* концы – к +5V и «земле»
* движок – к Vo (т.е. к 3-ему контакту)

Первоначально библиотека добавлена 18 апреля 2008 Дэвидом А. Меллисом (David A. Mellis),
а модифицирована 5 июля 2009 Лимор Фрид (Limor Fried, http://www.ladyada.net).

Пример добавлен 9 июля 2009 Томом Иго (Tom Igoe),
модифицирован 22 ноября 2010 им же.
 
Этот код не защищен авторским правом.
 
http://arduino.cc/en/Tutorial/LiquidCrystalSetCursor
*/

// Подключаем код библиотеки:
#include <LiquidCrystal.h>

// Это константы, т.е. значения, которые во время работы скетча меняться не будут.
// Однако, меняя эти цифры, вы можете изменить размер ЖК-экрана:
const int numRows = 2;
const int numCols = 16;

// Инициализируем библиотеку, создавая экземпляр класса lcd
// и указывая номера используемых контактов Arduino:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // Задаем количество столбцов и рядов ЖК-экрана: 
  lcd.begin(numCols,numRows);
}

void loop() {
  // «Прочесываем» по всем латинским ASCII-символам: от «a» до «z»:
  for (int thisLetter = 'a'; thisLetter <= 'z'; thisLetter++) {
    // «Прочесываем» по столбцам:
    for (int thisCol = 0; thisCol < numRows; thisCol++) {
      // «Прочесываем» по рядам:
      for (int thisRow = 0; thisRow < numCols; thisRow++) {
        // Устанавливаем позицию курсора:
        lcd.setCursor(thisRow,thisCol);
        // Печатаем букву:
        lcd.write(thisLetter);
        delay(200);
      }
    }
  }
}

См.также

  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.

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