Muleta para cegos

Neste projeto será utilizado:
1 arduino uno
alguns jumpers
1 sensor ultrasonico
1 buzzer
 
 
(vc poderá trocar os leds por um buzzer)
 
codigo:
  1. /***************************************\ 
  2. **               Robotec               ** 
  3. *    https://robotec.webnode.com.br/     * 
  4. *                                       *
  5. *      inscreva-se no nosso canal       *
  6. *    www.youtube.com/c/Roboteclink      *
  7. *                                       *
  8. *        curta a nossa fampage          *
  9. *   www.facebook.com/Robotecoficial/    *
  10. *                                       *
  11. * ESTE CODIGO É DA ROBOTEC COMPORATION  * 
  12. *       FAVOR - MANTER O DOMINIO        *
  13. **                                     ** 
  14. \***************************************/
  1. int pingPin = 13; //Pin que emite los sonidos, Trig
  2. int entradaPin = 12; //Pin que va a recibir de vuelta la onda
  3.  
  4. int ledRojo = 5; //LED rojo va en pin 5
  5. int ledVerde = 7; //LED verde va en pin 7
  6.  
  7. /*Con esta variable podremos encender el LED rojo cuando
  8. la distancia sea demasiado corta, puede ser
  9. cambiada con solo cambiar el valor, ese valor esta en cm
  10. */
  11. int inSegura =  25;
  12.  
  13. void setup(){
  14.   
  15.   //Inicializamos los pines como entradas y salidas
  16.   pinMode(pingPin, OUTPUT);
  17.   pinMode(ledRojo, OUTPUT);
  18.   pinMode(ledVerde, OUTPUT);
  19.   pinMode(entradaPin, INPUT);
  20.   
  21.   Serial.begin(9600); //Inicializamos la comunicacion serial
  22.   
  23. }
  24.  
  25. void loop(){
  26.   
  27.   //Creamos 2 variables, una para la duracion y otra para la distancia
  28.   long duracion, distanciaEnCm;
  29.   
  30.   /*
  31.   Hacemos un pulso bajo-alto-bajo para encender el sensor
  32.   Al encender y apagar esperamos en microsegundos, de esta
  33.   manera enviaremos nuestra primer onda
  34.   */
  35.   digitalWrite(pingPin, LOW); // Envía un pulso bajo
  36.   delayMicroseconds(2);       // Espera dos microsegundos
  37.   digitalWrite(pingPin, HIGH);// Envía un pulso alto
  38.   delayMicroseconds(5);       // Espera 5 microsegundos
  39.   digitalWrite(pingPin, LOW); // Se queda en espera
  40.   
  41.   /*Obtenemos la duracion de tiempo mientras
  42.   el sensor este recibiendo la informacion
  43.   */
  44.   duracion = pulseIn(entradaPin, HIGH);
  45.   
  46.   /*
  47.   Convertimos la duracion del tiempo a distancia
  48.   La velocidad del sonido es de 340metros/segundo que 
  49.   es igual a 29 microsegundos por centimetro es por es
  50.   que vamos a dividir la duracion entre 29. 
  51.   Despues se divide entre 2 porque es el tiempo que viaja
  52.   el sonido de ida y de vuelta, solo queremos un valor pero
  53.   ambos son iguales, es por eso que solo dividimos
  54.   entre 2
  55.   */
  56.   distanciaEnCm = (duracion/29)/2;
  57.   
  58.   //Imprimimos la distancia en consola
  59.   Serial.print(distanciaEnCm);
  60.   Serial.print("cm");
  61.   Serial.println();
  62.   
  63.   /*Prendemos los LED's, cuando la distancia es
  64.   mayor a la zona segura se prende el LED verde y
  65.   se apaga el rojo. Cuando la distancia es menor
  66.   a la zona segura se prende el LED rojo y se apaga el LED
  67.   verde
  68.   */
  69.   if(distanciaEnCm > inSegura){
  70.   
  71.     digitalWrite(ledVerde, HIGH);
  72.     digitalWrite(ledRojo, LOW);
  73.       
  74.   }
  75.   else{
  76.     
  77.     digitalWrite(ledVerde, LOW);
  78.     digitalWrite(ledRojo, HIGH);
  79.     
  80.   }
  81.   
  82.   //Hacemos un delay antes de volver a sensar
  83.   delay(1000);
  84.   
  85. }
  86.  
  87.  
  88.