Projeto 3: Lixeira automática Automatic trash - ferkrum/protoEletro2021.2 GitHub Wiki
-
O que o projeto faz? A lixeira automática traz praticidade na abertura além de medir o volume para avisar você a hora de descartar.
-
Quais tecnologias foram usadas? 02 Sensores ultrassônicos, 01 servo motor, 01 Arduino UNO , 03 leds e 03 resistores.
-
Como o usuário controla? É controlado apenas com a aproximação da sua mão na frente do sensor.
Caroline Adam Correia
- [Apresentação do projeto em vídeo GrauB]
(https://youtu.be/BJtkLQxkxg4)
S13: Criação desse documento.
- Imagens de referências
S14: Componentes
- Componentes valores:
02 Sensor Ultrassônico R$ 35,00 cada;
Micro Servo R$ 26,00;
3 leds R$ 0,65 cada;
3 Resistores 1K R$ 0,20 cada;
Placa Arduino + cabo USB R$40,00;
Cabo Macho x fêmea e Fêmea x Fêmea R$ 1,00 cada;
Placa de ensaio R$ 19,00 (opcional);
Lixeira de pedal 7 Litros R$ 26,00.
Total: R$ 203,55
S15: Montagem
- Tinkercad
S16: Programação
- Arduino IDE
// C++ code // /* Sweep
by BARRAGAN http://barraganstudio.com This example code is in the public domain.
modified 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Sweep */
#include <Servo.h> int pos = 0; Servo servo_9; int inches = 0; int cm = 0; //ultrassom #01 #define pino_trigger 4 #define pino_echo 2 //ultrassom #02 #define pino_trigger_u2 7 #define pino_echo_u2 8 //leds #define led_verm 3 #define led_ama 12 #define led_branco 13
void setup() { Serial.begin(9600); servo_9.attach(9); pinMode(pino_trigger, OUTPUT); pinMode(pino_echo, INPUT);
pinMode(pino_trigger_u2, OUTPUT); pinMode(pino_echo_u2, INPUT);
pinMode(led_verm, OUTPUT); pinMode(led_ama, OUTPUT); pinMode(led_branco, OUTPUT);
servo_9.write(180);
}
void loop() {
//servo_9.write(pos);
float tempo; float distancia;
float tempo_u2; float distancia_u2;
// ultrassom #01 //////// bloco de transmissão do sinal///// digitalWrite(pino_trigger, HIGH); delayMicroseconds(10); digitalWrite(pino_trigger,LOW); /////// bloco de recepção////// tempo = pulseIn(pino_echo, HIGH); distancia = (tempo*0.034029)/2; ///////////////////////////////
// ultrassom #02 //////// bloco de transmissão do sinal///// digitalWrite(pino_trigger_u2, HIGH); delayMicroseconds(10); digitalWrite(pino_trigger_u2,LOW); /////// bloco de recepção////// tempo_u2 = pulseIn(pino_echo_u2, HIGH); distancia_u2 = (tempo_u2*0.034029)/2; ///////////////////////////////
Serial.print("distancia #01: "); Serial.println(distancia);
Serial.print("distancia #02: "); Serial.println(distancia_u2);
if (distancia < 10) { //Serial.println("entupida"); digitalWrite(led_verm, HIGH); digitalWrite(led_ama, LOW); digitalWrite(led_branco, LOW); //servo_9.write(0); } else if (distancia >= 10 && distancia < 40) { //Serial.println("media"); digitalWrite(led_verm, LOW); digitalWrite(led_ama, HIGH); digitalWrite(led_branco, LOW); //servo_9.write(90); } else if (distancia >= 40 && distancia < 80) { //Serial.println("vazia"); digitalWrite(led_verm, LOW); digitalWrite(led_ama, LOW); digitalWrite(led_branco, HIGH); //servo_9.write(180); }
if (distancia_u2 < 40) { servo_9.write(180); } else { servo_9.write(0); }
}
s17: Entrega do projeto / Apresentação. Obtive o resultado desejado com a conclusão do projeto, os sensores e o servo motor funcionaram como planejado. A modificação sugerida de ter uma superfície sensível em volta da lixeira para detectar algum resíduo ao seu redor e consequentemente ela vai dar uma aviso. Foi pensando na triste realidade de encontramos muitas vezes lixos jogados ao redor da lixeira e não dentro que propus essa sugestão, para mudar isso a lixeira vai ser acionada a dar um aviso (pode ser uma mensagem) quando capitar (com sua superfície sensível) algo ao seu redor.
Referências: