Prévia do material em texto
Design planta e ligações. Código utilizado: int pino_trigger = 4; int pino_echo = 5; int pinoBuzzer =6; int pinoLedVermelho = 10; int pinoLedAmarelo = 9; int pinoLedVerde = 8; long Ultrasonic(int pino_trigger, int pino_echo) { pinMode(pino_trigger, OUTPUT); // Limpa o trigger digitalWrite(pino_trigger, LOW); delayMicroseconds(2); // Seta o Pino Trigger pin para estado HIGH por 10 microsegundos digitalWrite(pino_trigger, HIGH); delayMicroseconds(10); digitalWrite(pino_trigger, LOW); pinMode(pino_echo, INPUT); // Lê o pino echo, e retorna o tempo de viagem da onda sonara em microsegundos return pulseIn(pino_echo, HIGH); } void setup() { Serial.begin(9600); pinMode(pinoBuzzer, OUTPUT); pinMode(pinoLedVermelho, OUTPUT); pinMode(pinoLedAmarelo, OUTPUT); pinMode(pinoLedVerde, OUTPUT); } void loop() { float cm, pol; // mede o tempo de retorno em cm cm = 0.01723 * Ultrasonic(pino_trigger, pino_echo); // converte para polegadas dividindo por 2.54 pol = (cm / 2.54); Serial.print("Distancia em cm: "); Serial.print(cm); Serial.print(" - Distancia em polegadas: "); Serial.println(pol); delay(1000); //Aqui começa a Lógica dos LEDS if(cm >= 0 && cm <=40){ digitalWrite(pinoLedVermelho, HIGH); digitalWrite(pinoLedAmarelo, LOW); digitalWrite(pinoLedVerde, LOW); digitalWrite(pinoBuzzer, HIGH); }else if(cm >= 41 && cm <= 200) { digitalWrite(pinoLedVermelho, LOW); digitalWrite(pinoLedAmarelo, HIGH); digitalWrite(pinoLedVerde, LOW); digitalWrite(pinoBuzzer, LOW); }else{ digitalWrite(pinoLedVermelho, LOW); digitalWrite(pinoLedAmarelo, LOW); digitalWrite(pinoLedVerde, HIGH); digitalWrite(pinoBuzzer, LOW); } delay(100); }