1. Введення
У цьому експерименті ми використовуємо Arduino для керування РК-дисплеєм 1602.
1602 LCD має широке застосування. Спочатку 1602 LCD використовує контролер HD44780.
Тепер майже всі LCD-модулі 1602 використовують сумісні мікросхеми, тому їх характеристики в основному однакові.
2.1602 Основні параметри LCD
- Плата V4.0 або плата MEGA 2650*1
- Ємність дисплея 16 * 2 символи
- Робоча напруга мікросхеми 4,5 ~ 5,5 В
- Робочий струм 2,0 мА (5,0 В)
- Оптимальна робоча напруга модуля 5,0 В
- Розмір символу 2,95 * 4,35 (Ш * В) мм
3. Опис PIN-коду 1602 LCD
4. Опис інтерфейсу
- 1. Два контакти живлення, один для живлення модуля, інший для підсвічування, зазвичай використовують 5 В. У цьому проекті ми використовуємо 3,3 В для підсвічування.
- 2.VL – це штифт для регулювання контрастності. Зазвичай він підключає потенціометр (не більше 5 кОм) послідовно для його регулювання.
- У цьому експерименті ми використовуємо резистор 1KΩ. Для його підключення він має два способи, а саме високий потенціал і низький потенціал. Тут ми використовуємо метод низького потенціалу; підключіть резистор, а потім GND.
- 3.RS є дуже поширеним контактом в РК-дисплеї. Це шпилька для вибору команди/даних. Коли контакт знаходиться на високому рівні, він перебуває в режимі даних; коли він знаходиться на низькому рівні, він перебуває в командному режимі.
- 4. RW pin також дуже поширений в LCD. Це кнопка вибору для читання/запису. Коли контакт знаходиться на високому рівні, він перебуває в операції читання; якщо на низькому рівні, це в операції запису.
- 5.E pin також дуже поширений в LCD. Зазвичай, коли сигнал в шині стабілізується, він посилає позитивний імпульс, що вимагає операції зчитування. Коли цей штифт знаходиться на високому рівні, на шині заборонено вносити будь-які зміни.
- 6.D0-D7 — 8-розрядна двонаправлена паралельна шина, яка використовується для передачі команд і даних.
- 7.BLA - анод для підсвічування; BLK, катод для підсвічування.
5. Чотири основні операції для 1602LCD
6. Потрібне обладнання
- Плата V4.0 або плата MEGA 2650*1
- 1 * 1602 РК
- 1 * Потенціометр
- 1 * Макет
- 1 * USB-кабель
- Кілька* перемичок
7.Підключення
1602 може безпосередньо спілкуватися з Arduino. Згідно з інструкцією до продукту, він має два способи підключення, а саме 8-розрядне та 4-розрядне.
8-розрядний метод підключення
Підключення для V4.0
Підключення для 2560 R3
8. Зразок коду А
/* keyestudio супер навчальний набір Проект 20.1 LCD1602 http//www.keyestudio.com */ int DI = 12; int RW = 11; int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};// використовувати масив для вибору контакту для шини int Увімкнути = 2; void LcdCommandWrite(int value) { // визначити всі контакти int i = 0; for (i=DB[0]; i <= DI; i++) // призначити значення для шини { digitalWrite(i,value & 01);// для 1602 LCD, він використовує D7-D0 (не D0-D7) для ідентифікації сигналу; тут він використовується для інверсії сигналу. значення >>= 1; } digitalWrite(Enable, LOW); затримка мікросекунд(1); digitalWrite(Enable,HIGH); затримка мікросекунд(1); // чекати 1 мс digitalWrite(Enable, LOW); затримка мікросекунд(1); // чекати 1 мс } void LcdDataWrite(int value) { // ініціалізація всіх контактів int i = 0; digitalWrite(DI, HIGH); цифровий запис (RW, LOW); for (i=DB[0]; i <= DB[7]; i++) { digitalWrite(i,value & 01); значення >>= 1; } digitalWrite(Enable, LOW); затримка мікросекунд(1); digitalWrite(Enable,HIGH); затримка мікросекунд(1); digitalWrite(Enable, LOW); затримка мікросекунд(1); // чекати 1 мс } налаштування void (void) { int i = 0; for (i=Увімкнути; i <= DI; i++) { pinMode(i,OUTPUT); } затримка (100); // ініціалізація LCD після короткої паузи // для керування РК LcdCommandWrite(0x38); // вибрати як 8-бітовий інтерфейс, 2-рядковий дисплей, розмір символів 5x7 затримка (64); LcdCommandWrite(0x38); // вибрати як 8-бітовий інтерфейс, 2-рядковий дисплей, розмір символів 5x7 затримка (50); LcdCommandWrite(0x38); // вибрати як 8-бітовий інтерфейс, 2-рядковий дисплей, розмір символів 5x7 затримка (20); LcdCommandWrite(0x06); // встановити режим введення // автоматичне збільшення, без відображення зсуву затримка (20); LcdCommandWrite(0x0E); // налаштування дисплея // увімкнути монітор, курсор увімкнути, не мерехтить затримка (20); LcdCommandWrite(0x01); // очищаємо осипи, позиція курсору повертається до 0 затримка (100); LcdCommandWrite(0x80); // налаштування дисплея // увімкнути монітор, курсор увімкнути, не мерехтить затримка (20); } void loop (void) { LcdCommandWrite(0x01); // очищаємо осипи, позиція курсору повертається до 0 затримка (10); LcdCommandWrite(0x80+3); затримка (10); // написати в вітальному повідомленні LcdDataWrite('W'); LcdDataWrite('e'); LcdDataWrite('l'); LcdDataWrite('c'); LcdDataWrite('o'); LcdDataWrite('m'); LcdDataWrite('e'); LcdDataWrite(' '); LcdDataWrite('t'); LcdDataWrite('o'); затримка (10); LcdCommandWrite(0xc0+1); // встановити позицію курсору на другому рядку, у другій позиції затримка (10); LcdDataWrite('k'); LcdDataWrite('e'); LcdDataWrite('y'); LcdDataWrite('e'); LcdDataWrite('s'); LcdDataWrite('t'); LcdDataWrite('u'); LcdDataWrite('d'); LcdDataWrite('i'); LcdDataWrite('o'); затримка (5000); LcdCommandWrite(0x01); // очищаємо екран, курсор повертається до 0 затримка (10); LcdDataWrite('I'); LcdDataWrite(' '); LcdDataWrite('a'); LcdDataWrite('m'); LcdDataWrite(' '); LcdDataWrite('h'); LcdDataWrite('u'); LcdDataWrite('n'); LcdDataWrite('t'); LcdDataWrite('e'); LcdDataWrite('r'); затримка (3000); LcdCommandWrite(0x02); // встановлюємо режим, коли нові персонажі відтворюють старих, де немає нових, залишаються незмінними затримка (10); LcdCommandWrite(0x80+5); // встановлюємо позицію курсору на першому рядку, шостій позиції затримка (10); LcdDataWrite('t'); LcdDataWrite('h'); LcdDataWrite('e'); LcdDataWrite(' '); LcdDataWrite('w'); LcdDataWrite('o'); LcdDataWrite('r'); LcdDataWrite('l'); LcdDataWrite('d'); затримка (5000); } ////////////////////////////////////////////////// ////////
4-розрядний метод підключення
При використанні цього модуля 8-розрядне з’єднання використовує всі цифрові контакти Arduino, не залишаючи контактів для датчиків. Що потім? Ви можете використовувати 4-розрядне підключення.
Підключення для V4.0
Підключення для 2560 R3
Після підключення завантажте код нижче на плату контролера і подивіться, як це відбувається.
9. Зразок коду B
/* keyestudio супер навчальний набір Проект 20.2 LCD1602 http//www.keyestudio.com */ /* Вивод LCD RS до цифрового контакту 12 * РК-дисплей ввімкнути контакт до цифрового контакту 11 * Вивод LCD D4 до цифрового контакту 9 * Вивод LCD D5 до цифрового контакту 8 * Вивод LCD D6 до цифрового контакту 7 * Вивод LCD D7 до цифрового контакту 6 * РК-дисплей R/W контакт із землею * РК-дисплей VSS контакт заземлення * Вивод LCD VCC на 5 В * 10К резистор * закінчується на +5В і заземлюється * склоочисник до контакту VO LCD (контакт 3) Цей приклад коду є загальнодоступним. http//www.arduino.cc/en/Tutorial/LiquidCrystal */ // включає код бібліотеки #include <LiquidCrystal.h> // ініціалізація бібліотеки номерами контактів інтерфейсу LiquidCrystal lcd (12, 11, 9, 8, 7, 6); void setup() { // встановлює кількість стовпців і рядків РК-дисплея lcd.begin(16, 2); // Роздрукувати повідомлення на РК-дисплеї. lcd.print("привіт, світ!"); } void loop() { // встановлюємо курсор на стовпець 0, рядок 1 // (примітка, рядок 1 є другим рядком, оскільки підрахунок починається з 0) lcd.setCursor(0, 1); // вивести кількість секунд після скидання lcd.print(millis() / 1000); } ////////////////////////////////////////////////// ////////
10. Результат тесту





Немає коментарів:
Дописати коментар