#include <LiquidCrystal_I2C.h> // เรียกlibrary lcd เพื่อใช้lcd
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display
int Val = 0;
int r_led =7;
int g_led =6;
int b_led =5;
void setup() {
Serial.begin(9600);// ตั้ง baud rate เพื่อติดต่ออุปกรณ์ และใช้ Serial monitor
lcd.init(); // เปิดใช้งานlcd
lcd.backlight(); //เปิดไฟหน้าจอlcdให้สว่าง
pinMode(r_led, OUTPUT);
pinMode(g_led, OUTPUT);
pinMode(b_led, OUTPUT);
}
void loop() {
vr_analogread();
lcd_display();
serial_display();
rgb();
}
void vr_analogread() {
Val = analogRead(A0); //เก็บค่าจากanalogไว้ที่ตัวแปร
}
void lcd_display() {
lcd.setCursor(6, 0);
lcd.print("Val =");
lcd.print(Val);
delay(1000);
lcd.clear(); // ลบค่าที่ตกค้างบนจอlcd
}
void serial_display() {
Serial.print("Val =");
Serial.println(Val);
delay(100);
}
void rgb(){
if((Val >= 0)&&(Val <= 341)){
lcd.setCursor(5,2);
lcd.print("RED ZONE");
digitalWrite(r_led, HIGH);
digitalWrite(g_led, LOW);
digitalWrite(b_led, LOW);
}
else if((Val >= 341)&&(Val <=682 )){
lcd.setCursor(5,2);
lcd.print("GREEN ZONE ");
digitalWrite(r_led, LOW);
digitalWrite(g_led, HIGH);
digitalWrite(b_led, LOW);
}
else if((Val >= 682)&&(Val <= 1023)){
lcd.setCursor(5,2);
lcd.print("BLUE ZONE ");
digitalWrite(r_led, LOW);
digitalWrite(g_led, LOW);
digitalWrite(b_led, HIGH);
}
}