#define lgreen 27
#define red 32
#define purple 14
#define trigger 18
#define echo 19
float distancia;
#define sensorpir 26
void setup()
{
Serial.begin(115200);
pinMode(trigger, OUTPUT); // trigger
pinMode(echo, INPUT); //echo
pinMode(red, OUTPUT);
pinMode(purple, OUTPUT);
pinMode(sensorpir,INPUT);
}
void loop()
{
Serial.print("distancia: ");
distancia = Ultrasonic(trigger,echo);
delay(10);
Serial.print(distancia);
Serial.println("cm");
delay(1000);
int leitorpir = digitalRead(sensorpir);
Serial.print("Nivel logico PIR: ");
Serial.println(leitorpir);
delay(1000);
if (distancia <= 100 ){
digitalWrite(red,1);
delay(3000);
digitalWrite(red, 0);
}
if(distancia <= 100 && leitorpir == HIGH){
digitalWrite(purple, 1);
delay(3000);
digitalWrite(purple, 0);
}
}
float Ultrasonic(int pintrigger, int pinecho){
int distancia = 0;
while(distancia == 0) {
digitalWrite(pintrigger, 0);
delayMicroseconds(5);
digitalWrite(pintrigger, 1);
delayMicroseconds(5);
float tempo = pulseIn(pinecho,1);
distancia = (tempo/2/29.15);
}
return distancia;
}
/*
if (distancia < 30){
digitalWrite(red,0);
digitalWrite(purple,0);
Serial.println ("O sensor está abaixo de 30cm");
Serial.println("Mais precisamente em:");
Serial.println(distancia);
delay(1000);
}
else if (distancia >=30 && distancia <50){
digitalWrite(red,1);
digitalWrite(purple,0);
Serial.println ("LED VERMELHO ACESO");
delay(1000);
}
else {
digitalWrite(red,0);
digitalWrite(purple,1);
Serial.println ("LED ROXO ACESO");
delay(1000);
}
}
*/