LCD (Liquid Crystal Display) ជាប្រភេទអេក្រង់បង្ហាញជាលក្ខណៈបន្ទាត់នៃតួអក្សរនីមួយដាច់ដោយលែកពីគ្នា។
លក្ខណៈទូទៅរបស់ LCD
តាមរូបខាងលើជា LCD ប្រភេទ 16 x 2 បានន័យថាអាបង្ហាញអក្សរបាន២ជួរ និង១៦តួក្នុងជួរនីមួយៗ។ ជួរខាងលើជាជួរទី០(សូន្យ) និងនៅក្នុងជួរនីមួយៗ តួខាងឆ្វេងជាតួទី០(សូន្យ)។ជើងរបស់ LCD មានដូចរូបខាងលើ៖
- GND: Ground សម្រាប់ភ្ចាប់ទៅ 0V នៃប្រភពផ្គត់ផ្គង់។
- VCC: សម្រាប់ភ្ជាប់ប្រភពផ្គត់ផ្អង់ 5V។
- Vo: Display Contrast ភ្ជាប់ទៅតង់ស្យុងសម្រាប់កំណត់ភាពច្បាស់របស់អក្សរដែលត្រូវបង្ហាញ។
- RS: Register Select សម្រាប់គ្រប់គ្រង Memory របស់ LCD ដែលត្រូវផ្ទុកទិន្ន័យ។
- R/W: Read/Write កំណត់ការបញ្ជូនទិន្ន័យ(Write) ឫក៏ការទាញយកទិន្ន័យ(Read)។
- E: Enable សម្រាប់កំណត់អោយអាចបញ្ជូនទិន្ន័យទៅបាន។
- D0 -D7: Data pins សម្រាប់ទិន្ន័យដែលត្រូវបញ្ជូនទៅ LCD (High or Low) ជាប្រភេទទិន្ន័យ ASCII 8 bits។ ឧ. 0100 0001
- A(anode)/K(cathode): ជាជើងរបស់ LED Backlight ។
ការភ្ជាប់សៀគ្វី
- LCD RS pin to digital pin 12- LCD Enable pin to digital pin 11
- LCD D4 pin to digital pin 5
- LCD D5 pin to digital pin 4
- LCD D6 pin to digital pin 3
- LCD D7 pin to digital pin 2
ប្រើ Potentiometer 10k ភ្ជាប់ទៅកាន់ Vo សម្រាប់ធ្វើការកំណត់កម្រិតភាពច្បាស់នៃអក្សរដែលបង្ហាញ (ដូចរូបខាងក្រោម)។
ការសរសេរកូដ
នៅក្នុង Arduino បានភ្ជាប់មកជាមួយ Library LCD មកជាស្រេចរួចមកហើយ តែក្នុងករណីមិនមាន អាចទាញយកតាមតំណរខាងក្រោម៖
LCD library: https://github.com/arduino-libraries/LiquidCrystal
ធ្វើការបង្កើត Object ថ្មីសម្រាប់ LCD និងបញ្ជូលជើងដែលបានភ្ជាប់ ៖
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //(rs, enable, d4, d5, d6, d7)
ធ្វើការផ្តើមដំណើរការ LCD ជាមួយនឹងទំហំរបស់ LCD៖
lcd.begin(16,2); // Colum, Row
ការកំណត់ទីតាំងសម្រាប់ចាប់ផ្តើមបង្ហាញ៖
lcd.setCursor(2,1);// Colum2, Row1
ការបង្ហាញតួអក្សរ ទៅតាមទីតាំងដែលបានកំណត់ពីខាងលើ៖
lcd.print("Hello LCD");
ការលុបអក្សរទាំងអស់នៅលើ LCD៖
lcd.clear(); // Clears the LCD screen
កូដ៖
- /*
- * Arduino: LCD Display
- * https://www.etronicskh.com/
- */
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //(rs, enable, d4, d5, d6, d7)
- void setup() {
- lcd.begin(16, 2); //(Columns, Rows)
- lcd.print("hello LCD!");
- delay(1000);
- }
- void loop() {
- lcd.setCursor(0, 1); //Set print to Row 1
- lcd.print("Second Row!");
- delay(1000);
- lcd.clear(); //clear lcd screen
- lcd.setCursor(5,0); //Set Print to Row 0, culomn 5
- lcd.print("Hello");
- lcd.setCursor(0,1); //Set print to Row 1
- lcd.print("How are you?");
- delay(1000);
- lcd.clear(); //clear lcd screen
- }