#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x27,16,2);
#define Red 4
#define Green 5
#define Blue 6
#define trig 2
#define echo 3
void setup(){
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Blue, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
LCD.init();
LCD.print("Patiwat");
}
void red(int msec){
digitalWrite(Red, HIGH);
digitalWrite(Green, LOW);
digitalWrite(Blue, LOW);
delay(msec);
}
void green(int msec){
digitalWrite(Red, LOW);
digitalWrite(Green, HIGH);
digitalWrite(Blue, LOW);
delay(msec);
}
void blue(int msec){
digitalWrite(Red, LOW);
digitalWrite(Green, LOW);
digitalWrite(Blue, HIGH);
delay(msec);
}
void yellow(int msec){
digitalWrite(Red, HIGH);
digitalWrite(Green, HIGH);
digitalWrite(Blue, LOW);
delay(msec);
}
void cyan(int msec){
digitalWrite(Red, LOW);
digitalWrite(Green, HIGH);
digitalWrite(Blue, HIGH);
delay(msec);
}
void purple(int msec){
digitalWrite(Red, HIGH);
digitalWrite(Green, LOW);
digitalWrite(Blue, HIGH);
delay(msec);
}
void white(int msec){
digitalWrite(Red, HIGH);
digitalWrite(Green, HIGH);
digitalWrite(Blue, HIGH);
delay(msec);
}
void black(int msec){
digitalWrite(Red, LOW);
digitalWrite(Green, LOW);
digitalWrite(Blue, LOW);
delay(msec);
}
void distance(){
digitalWrite(trig,HIGH);
delay(100);
digitalWrite(trig, LOW);
int cm = (pulseIn(echo,HIGH))/58;
LCD.setCursor(0,1);
LCD.print("Distance:");
LCD.print(cm);
LCD.print(" cm ");
if(cm<=50){
//ให้ไฟแดงกระพริบและมีเสียงเตือนถี่ๆ
black(500);
}else if(cm<=100){
//ให้ไฟเหลืองกระพริบและมีเสียงเตือน
black(500);
}else{
//ไฟเขียวติด + เสียงเมโลดี้
green(1000);
tone(7,300,500);
tone(7,400,500);
}
}
void loop(){
distance();
}