Проект 15: Індикатор LCD1602. Принцип підключення, вивід інформації на нього
В цьому експерименті ми познайомимося з рідкокристалічними індикаторами Winstar для виведення символьної інформації. Навчимося в Arduino-проектах застосовувати бібліотеки і створимо проект виведення показань датчика температури LM335 на екран дисплея.
Необхідні компоненти:
- контролер Arduino UNO R3;
- плата для прототипування;
- LCD-екран WH1602;
- резистор 2,2 кОм;
- резистор 50 Ом;
- потенціометр 1 кОм;
- датчик температури LM335;
- дроти тато-тато.
- зовнішній блок живлення +5 В.
Рідкокристалічні індикатори (РКІ, англ. LCD) є зручним і недорогим засобом для відображення даних ваших проектів. Символьний індикатор WH1602 дозволяє виводити на екран 2 рядки по 16 символів (розміром 5 × 7 або 5 × 10 і додатковий рядок під курсор). Управляє роботою дисплея контроллер.На рис. 15.1 показаний РКІ Winstar з контролером HD44780.

Рис. 15.1. РКІ WH1602 на контролері HD44780
Призначення виводів контролера:
- DB0-DB7 - відповідають за вхідні / вихідні дані;
- RS - високий рівень означає, що сигнал на виходах DB0-DB7 є даними, низький - командою;
- R / W - визначає напрямок даних (читання / запис). Так як операція читання даних з індикатора зазвичай буває незатребуваною, то можна встановити постійно на цьому вході низький рівень;
- E - імпульс тривалістю не менше 500 мс на цьому виводу визначає сигнал для читання / запису даних з виводів DB0-DB7, RS і W / R;
- V0 - використовується для завдання контрасту зображення;
- A, K - живлення підсвічування (анод і катод), якщо воно є;
- VSS - земля;
- VDD - живлення ЖК-індикатора.
Для управління ЖК-індикатором необхідно 6 або 10 виводів Arduino, в залежності від того, обраний 4- або 8-бітний режим обміну даними. Для скорочення необхідного числа виводів мікроконтролера можна працювати в 4-бітному режимі. У цьому випадку на виводах DB4-DB7 індикатора спочатку будуть передаватися старші чотири біта даних / команди, потім - молодші чотири біта. виводи DB0-DB3 залишаться незадіяними.
У нашому експерименті ми будемо зчитувати дані з датчика температури LM335, який ми розглянули в експерименті 13, і виводити на екран РКІ значення температури в Кельвіна і градусах Цельсія. Схема підключення датчика температури і РКІ в 4-бітному режимі до плати Arduino показана на рис. 15.2. Зауважте, що для живлення РКІ потрібен окремий блок живлення +5 В.
Приступимо до написання скетчу. Функціонал Arduino може бути розширений за рахунок використання бібліотек. Бібліотеки Arduino надають додаткову функціональність для використання в скетчах і сильно спрощують процес написання програм. Ряд основних бібліотек встановлюється разом із середовищем Arduino IDE, а додаткові, яких дуже багато, ви можете встановити самі. При роботі Arduino з РКІ-дисплеями на контролері HD44780 будемо використовувати бібліотеку LiquidCrystal. Для підключення бібліотеки на початку скетчу вставляємо рядок
#include

Рис. 15.2. Схема підключення датчика температури і РКІ до Arduino
/>Потім створюємо змінну типу LiquidCrystalLiquidCrystal lcd (12, 11, 7, 6, 5, 4); де 12, 11, 7, 6, 5, 4 - номери контактів RS, E, D4, D5, D6, D7.В setup ( ) запускаємо функцію lcd.begin (), що визначає розмірність індикатора, для установки курсору в певну позицію - lcd.setCursor (), для виведення інформації на екран дисплея - cd.print (). Вміст даного скетчу показано в лістингу 15.1.
// Підключення бібліотеки
#include <LiquidCrystal.h>
// ініціалізація із зазначенням контактів підключення
LiquidCrystal lcd (12, 11, 7, 6, 5, 4);
const int LM335 = A0; // для підключення LM335
void setup () {
// встановити розмірність дисплея
lcd.begin (16, 2);
}
void loop ()
{
double val = analogRead (LM335); // читання
double voltage = val * 5.0 / 1024; // переклад в вольти
// вивід значення в Кельвінах
lcd.setCursor (2,0);
lcd.print ( "Tk ="); lcd.print (voltage * 100); lcd.print ( "K");
double temp = voltage * 100 - 273.15; // в градуси Цельсія
// вивід значення в градусах Цельсія
lcd.setCursor (2,1);
lcd.print ( "Tc ="); lcd.print (temp); lcd.print ( "");
delay (1000); // пауза перед наступним виміром
}
Порядок підключення:
- Підключаємо датчик LM335 і РКІ за схемою на рис. 15.2.
- Завантажуємо в плату Arduino скетч з лістингу 15.1.
- Дивимося на екрані дисплея показання датчика температури в Кельвіна і градусах Цельсія (рис. 15.2).