#include <Servo.h>
#define trigC 8
#define echoC 9
#define trigT 4
#define echoT 11
int led = 7;
int distC = 0;
int distT = 0;
int aberto, waste = 0;
int ledstate = 0;
Servo servo;
void setup() {
pinMode(trigC, OUTPUT);
pinMode(echoC, INPUT);
pinMode(trigT, OUTPUT);
pinMode(echoT, INPUT);
servo.attach(3);
Serial.begin(9600);
}
void loop() {
//distancia Pé
digitalWrite(trigC, HIGH);
delayMicroseconds(10);
digitalWrite(trigC, LOW);
distC = pulseIn(echoC, HIGH) * 0.034 / 2;
//distancia tampa
digitalWrite(trigT, HIGH);
delayMicroseconds(20);
digitalWrite(trigT, LOW);
distT = pulseIn(echoT, HIGH) * 0.034 / 2;
waste = map(distT, 0, 21, 100, 0);
//bora de servo
if(distC > 25){ //ninguem detectado
servo.write(0); //tampa fechada
aberto = 0;
}
else if(distC < 25){ //alguem detectado
servo.write(90);
delay(300);
servo.write(180); //tampa aberta
aberto = 1;
delay(3000);
}
//agora bora ver se essa merda ta cheia
if(waste > 50){
ledstate = 1;
}
else{
ledstate = 0;
}
if(ledstate == 1 && aberto == 0){
digitalWrite(led, HIGH);
}
else if(ledstate == 0 && aberto == 0){
digitalWrite(led, LOW);
}
Serial.print("Enchimento: ");
Serial.print(waste);
Serial.println("%");
Serial.print("dentro: ");
Serial.println(distT);
delay(500);
}