Підключення дисплея 1602 LCD.

 


великий палець

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. Результат тесту


великий палець

великий палець

Немає коментарів:

Дописати коментар