Arduino:Примеры/LiquidCrystal HelloWorld
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
ЖК-экран – «Привет, мир!»[1]
Библиотека LiquidCrystal позволяет управлять жидко-кристаллическими экранами, совместимыми с драйвером Hitachi HD44780. Моделей, отвечающих этим характеристикам, довольно много, и управлять ими можно, как правило, при помощи 16-контактного интерфейса.
Этот пример выводит на ЖК-экран фразу «Hello, world!» (т.е. «Привет, мир!»), а также показывает количество секунд с того момента, когда Arduino была перезагружена в последний раз.
Результат работы скетча на ЖК-экране размером 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 ЖК-экрана.
Код
/*
Библиотека LiquidCrystal – «Привет, мир!»
Демонстрирует использование ЖК-дисплея 16х2. Библиотека LiquidCrystal
работает со всеми ЖК-дисплеями, которые совместимы с драйвером Hitachi HD44780. Моделей, отвечающих этим критериям, довольно много,
а управлять ими можно, как правило, при помощи 16-контактного интерфейса.
Этот скетч выводит на ЖК-экран надпись «Hello, world!» и время.
Цепь (ЖК-экран):
* Контакт 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://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
// Подключаем библиотеку:
#include <LiquidCrystal.h>
// Инициализируем библиотеку, указывая номера контактов интерфейса:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// Задаем число колонок и рядов ЖК-экрана:
lcd.begin(16, 2);
// Выводим на дисплей сообщение «Hello, world!» (т.е. «Привет, мир!»):
lcd.print("hello, world!");
}
void loop() {
// Задаем положение курсора – столбец 0, ряд 1
// (примечание: ряд 1 – это на самом деле ряд номер 2, поскольку отсчет идет от «0»):
lcd.setCursor(0, 1);
// Отображаем на ЖК-дисплее количество секунд, прошедших с последней перезагрузки:
lcd.print(millis()/1000);
}
См.также
- lcd.begin()
- lcd.print()
- lcd.setCursor()
- Liquid Crystal Library
- Blink: control of the block-style cursor.
- Cursor: control of the underscore-style cursor.
- Display: quickly blank the display without losing what's on it.
- TextDirection: control which way text flows from the cursor.
- Scroll: scroll text left and right.
- Serial input: accepts serial input, displays it.
- SetCursor: set the cursor position.
- Autoscroll: shift text right and left.
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino