#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(){
LCD.init();
LCD.print("sirawit");
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Blue, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
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 close(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;
//out lcd
LCD.setCursor(0,1);
LCD.print("Distance:");
LCD.print(cm);
LCD.print(" cm ");
if(cm<=50){
red(1000);
tone(7,900,300);
close(300);
}else if(cm<=100){
yellow(1000);
tone(7,300,1000);
close(500);
}else{
green(1000);
}
}
void loop(){
distance();
}