Buscar

Prática 6 - Sensor Ultrassônico HC-SR04

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

Continue navegando