|
| 1 | +#include "Ultrasonic.h" // Esse comando é para incluir a biblioteca no programa |
| 2 | + |
| 3 | + |
| 4 | +Ultrasonic ultrasonic (8,9); // são as portas do sensor, Trigger na porta 5 e Echo na porta 6 |
| 5 | + |
| 6 | +// declarando os LEDs e o Buzzer e suas portas onde estão conectados |
| 7 | + |
| 8 | +int ledVerde = 2; |
| 9 | +int ledAmarelo = 3; |
| 10 | +int ledVermelho =4; |
| 11 | +int buzzer = 5; |
| 12 | + |
| 13 | +// Variáveis de controle |
| 14 | + |
| 15 | +long microsec = 0; |
| 16 | +float distanciaCM = 0; |
| 17 | + |
| 18 | +void setup() { |
| 19 | + |
| 20 | +Serial.begin(9600); // iniciando o monitor serial na velocidade 9600 |
| 21 | + |
| 22 | +// Declarando os LEDs e o Buzzer com saídas |
| 23 | + |
| 24 | + pinMode(ledVerde,OUTPUT); |
| 25 | + pinMode(ledAmarelo,OUTPUT); |
| 26 | + pinMode(ledVermelho,OUTPUT); |
| 27 | + pinMode(buzzer,OUTPUT); |
| 28 | +} |
| 29 | + |
| 30 | +void loop() { |
| 31 | + |
| 32 | +// lendo o sensor |
| 33 | +microsec = ultrasonic.timing(); |
| 34 | + |
| 35 | +// convertendo a distância para centímetros |
| 36 | + |
| 37 | + distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM); |
| 38 | + |
| 39 | + ledDistancia(); |
| 40 | + |
| 41 | +// mostrar a distância no monitor serial |
| 42 | +Serial.print(distanciaCM); |
| 43 | + |
| 44 | +// unidade de medida |
| 45 | + |
| 46 | +Serial.println(" cm"); |
| 47 | +delay(500); |
| 48 | +} |
| 49 | + |
| 50 | +void ledDistancia() { |
| 51 | + |
| 52 | +// se inicia com todos os LEDs apagados |
| 53 | +digitalWrite(ledVerde,LOW); |
| 54 | +digitalWrite(ledAmarelo,LOW); |
| 55 | +digitalWrite(ledVermelho,LOW); |
| 56 | + |
| 57 | +// Se a distância for menor ou igual a 30cm e maior ou igual 20 |
| 58 | + |
| 59 | + if (distanciaCM <=30 and distanciaCM >= 20) { |
| 60 | + digitalWrite(ledVerde,HIGH); // LED Verde liga |
| 61 | + } |
| 62 | + |
| 63 | +// Se a distância for menor ou igual a 20 cm e maior ou igual 10 |
| 64 | + |
| 65 | + if (distanciaCM <=20 and distanciaCM >= 10) { |
| 66 | + |
| 67 | + digitalWrite(ledAmarelo,HIGH); // LED amarelo acende |
| 68 | + tone (buzzer, 2500, 100); // buzzer começa a emitir som |
| 69 | + } |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | + // se a distância for menor que 10cm |
| 74 | + |
| 75 | + if (distanciaCM < 10) { |
| 76 | + digitalWrite(ledVermelho,HIGH); // LED Vermelho acende |
| 77 | + tone (buzzer, 2500, 1000); // Buzzer emite som mais intenso |
| 78 | + } |
| 79 | +} |
| 80 | + |
| 81 | + |
| 82 | + |
| 83 | + |
0 commit comments