#include <LiquidCrystal.h>
//กำหนดขา RS, E, D4, D5, D6, D7 ของ LCD ต่อกับขาดิจิตอล ESP32
LiquidCrystal lcd(17, 16, 4, 0, 2, 15);
int a;
int b;
int c;
String name;
int led1 = 19; // กำหนดขาใช้งาน
int led2 = 18; // กำหนดขาใช้งาน
int led3 = 5; // กำหนดขาใช้งาน
char key = '0' ; //ตัวแปรเก็บค่าที่คอมพิวเตอร์ส่งม
void setup() {
Serial.begin(115200); //เริ่มการสื่อสารด้วยความถี่ 115200
Serial.println("Please enter your name:");
while (!Serial.available()); // Wait for input
name = Serial.readStringUntil('\n');
Serial.print("Hello, ");
Serial.print(name);
Serial.println("!");
pinMode(led1, OUTPUT); // กำหนดขาGPIO 5 เป็น OUTPUT
pinMode(led2, OUTPUT); // กำหนดขาGPIO 17 เป็น OUTPUT
pinMode(led3, OUTPUT); // กำหนดขาGPIO 16 เป็น OUTPUT
digitalWrite(led1, LOW); // LED 1 ดับ
digitalWrite(led2, LOW);// LED 2 ดับ
digitalWrite(led3, LOW);// LED 3 ดับ
}
void loop()
{
if (Serial.available() > 0) { //ถ้าคอมพิวเตอร์ส่งข้อมูลมาใหจะทำใน if นี้
key = Serial.read(); //นำค่าที่คอมพิวเตอร์ส่งมาเก็บในตัวแปร key
Serial.print("key : ");
Serial.println(key); //Arduino ส่งค่าในตัวแปร key เข้าคอมพิวเตอร์ Serial Monitor
}
if (key == '0') { //ถ้าตัวแปร key เป็น 0 ให้ทำในปีกกานี้
a=0;
b=0;
c=0;
digitalWrite(led1, LOW); // LED 1 ดับ
digitalWrite(led2, LOW); // LED 2 ดับ
digitalWrite(led3, LOW); // LED 3 ดับ
Serial.println("LED1 LED2 LED3 OFF");
lcd.begin(16, 2); // จอกว้าง 16 ตัวอักษร 2 บรรทัด
lcd.setCursor(1, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 5
lcd.print("Use by"); // แสดงผลคำว่า Use by ออกหน้าจอ
lcd.setCursor(8, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 8
lcd.print(name); // แสดงผลค่าในตัวแปร name
lcd.setCursor(1, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("LED :"); // แสดงผลคำว่า LED : ออกหน้าจอ
lcd.setCursor(5, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 5
lcd.print("A="); // แสดงผลคำว่า A= ออกหน้าจอ
lcd.setCursor(7, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 7
lcd.print(a); // แสดงผลคำในตัวแปร a
lcd.setCursor(9, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("B="); // แสดงผลคำว่า B= ออกหน้าจอ
lcd.setCursor(11, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 11
lcd.print(b); // แสดงผลคำในตัวแปร b
lcd.setCursor(13, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 13
lcd.print("C="); // แสดงผลคำว่า C= ออกหน้าจอ
lcd.setCursor(15, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 15
lcd.print(c); // แสดงผลคำในตัวแปร c
}
if (key == '1') { //ถ้าตัวแปร key เป็น 1 ให้ทำในปีกกานี้
a=1;
digitalWrite(led1, HIGH); // LED 1 ติดสว่าง
Serial.println("LED1 ON");
lcd.clear(); //ล้างหน้าจอ LCD
lcd.setCursor(1, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 5
lcd.print("Use by"); // แสดงผลคำว่า Use by ออกหน้าจอ
lcd.setCursor(8, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 8
lcd.print(name); // แสดงผลค่าในตัวแปร name
lcd.setCursor(1, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("LED :"); // แสดงผลคำว่า LED : ออกหน้าจอ
lcd.setCursor(5, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 5
lcd.print("A="); // แสดงผลคำว่า A= ออกหน้าจอ
lcd.setCursor(7, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 7
lcd.print(a); // แสดงผลคำในตัวแปร a
lcd.setCursor(9, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("B="); // แสดงผลคำว่า B= ออกหน้าจอ
lcd.setCursor(11, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 11
lcd.print(b); // แสดงผลคำในตัวแปร b
lcd.setCursor(13, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 13
lcd.print("C="); // แสดงผลคำว่า C= ออกหน้าจอ
lcd.setCursor(15, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 15
lcd.print(c); // แสดงผลคำในตัวแปร c
}
if (key == '2') { //ถ้าตัวแปร key เป็น 2 ให้ทำในปีกกานี้
b=1;
digitalWrite(led2, HIGH); // LED 2 ติดสว่าง
Serial.println("LED2 ON");
lcd.clear(); //ล้างหน้าจอ LCD
lcd.setCursor(1, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 5
lcd.print("Use by"); // แสดงผลคำว่า Use by ออกหน้าจอ
lcd.setCursor(8, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 8
lcd.print(name); // แสดงผลค่าในตัวแปร name
lcd.setCursor(1, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("LED :"); // แสดงผลคำว่า LED : ออกหน้าจอ
lcd.setCursor(5, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 5
lcd.print("A="); // แสดงผลคำว่า A= ออกหน้าจอ
lcd.setCursor(7, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 7
lcd.print(a); // แสดงผลคำในตัวแปร a
lcd.setCursor(9, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("B="); // แสดงผลคำว่า B= ออกหน้าจอ
lcd.setCursor(11, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 11
lcd.print(b); // แสดงผลคำในตัวแปร b
lcd.setCursor(13, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 13
lcd.print("C="); // แสดงผลคำว่า C= ออกหน้าจอ
lcd.setCursor(15, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 15
lcd.print(c); // แสดงผลคำในตัวแปร c
}
if (key == '3') { //ถ้าตัวแปร key เป็น 3 ให้ทำในปีกกานี้
c=1;
digitalWrite(led3, HIGH); // LED 3 ติดสว่าง
Serial.println("LED3 ON");
lcd.clear(); //ล้างหน้าจอ LCD
lcd.setCursor(1, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 5
lcd.print("Use by"); // แสดงผลคำว่า Use by ออกหน้าจอ
lcd.setCursor(8, 0); // เซ็ตเคเซอร์ไปบรรทัดบน คอลั่มที่ 8
lcd.print(name); // แสดงผลค่าในตัวแปร name
lcd.setCursor(1, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("LED :"); // แสดงผลคำว่า LED : ออกหน้าจอ
lcd.setCursor(5, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 5
lcd.print("A="); // แสดงผลคำว่า A= ออกหน้าจอ
lcd.setCursor(7, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 7
lcd.print(a); // แสดงผลคำในตัวแปร a
lcd.setCursor(9, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 1
lcd.print("B="); // แสดงผลคำว่า B= ออกหน้าจอ
lcd.setCursor(11, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 11
lcd.print(b); // แสดงผลคำในตัวแปร b
lcd.setCursor(13, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 13
lcd.print("C="); // แสดงผลคำว่า C= ออกหน้าจอ
lcd.setCursor(15, 1); // เซ็ตเคเซอร์ไปบรรทัดล่าง คอลั่มที่ 15
lcd.print(c); // แสดงผลคำในตัวแปร c
}
}