#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);
      }

} 
*/