#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int echo = 4;
const int tring=5;
const int PIN_R=8;
const int PIN_G=9;
const int PIN_B=10;
Servo motor;
int valorAD=0;
void setup() {
lcd.init();
motor.attach(3);
pinMode(echo, INPUT);
pinMode(tring, OUTPUT);
pinMode(PIN_R, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(PIN_B, OUTPUT);
lcd.setBacklight(1);
lcd.setCursor(0,0);
lcd.print("Dist: ");
lcd.setCursor(0,1);
lcd.print("Passo: ");
}
void loop() {
digitalWrite(tring, HIGH);
delayMicroseconds(10);
digitalWrite(tring, LOW);
int tempo = pulseIn(echo, HIGH);
int dist = tempo*0.0172;
lcd.setCursor(5,0);
lcd.print(dist);
lcd.print(" ");
valorAD = analogRead(A0);
int pot= map(valorAD, 0, 1023, 0,200);
motor.write(pot);
lcd.setCursor(6,1);
lcd.print(pot);
lcd.print(" ");
if(pot==100 & dist==100){
digitalWrite(PIN_R, HIGH);
digitalWrite(PIN_G, LOW);
digitalWrite(PIN_B, HIGH);
}else{
digitalWrite(PIN_R, LOW);
digitalWrite(PIN_G, LOW);
digitalWrite(PIN_B, LOW);
}
if(pot==0 & dist==2){
digitalWrite(PIN_R, HIGH);
digitalWrite(PIN_G, LOW);
digitalWrite(PIN_B, LOW);
}
if(pot==200 & dist==401){
digitalWrite(PIN_R, HIGH);
digitalWrite(PIN_G, HIGH);
digitalWrite(PIN_B, LOW);
}
}
//Para os leds ligarem tem que estarem em sicronia os dispositivos.
//Mikael Gomes Silva do Nascimento: MIcro II