MEDICION DE DISTANCIA CON ULTRASONICO Y ARDUINO 2019
Les traigo un nuevo mini proyecto el cual podrán adaptar para usarlo como una alarma de proximidad para su coche, para este mini proyecto usaremos un sensor ultrasónico el cual nos permitirá medir la distancia a la que se encuentra un objeto, al hacer estas medicines nos permitirá encender una alarma y un indicador luminoso para indicar que tan cerca estamos del objeto.
Después de comprobar que nos da las medidas correctas procederemos a añadir el código que permitirá activar un buzzer y dos leds que se encenderán según la distancia medida.
Y como siempre para no perder la costumbre, antes de iniciar con la lista de componentes y el código.
¿ Qué es un sensor ultrasónico y como funciona?
Los sensores de ultrasonidos o sensores ultrasónicos son detectores de proximidad que trabajan libres de roces mecánicos y que detectan objetos a distancias que van desde pocos centímetros hasta varios metros.
El sensor emite un sonido y mide el tiempo que la señal tarda en regresar.
Estos reflejan en un objeto, el sensor recibe el eco producido y lo convierte en señales eléctricas, las cuales son elaboradas en el aparato de valoración.
Estos sensores trabajan solamente donde tenemos presencia de aire (no pueden trabajar en el vacío, necesitan medio de propagación), y pueden detectar objetos con diferentes formas, diferentes colores, superficies y de diferentes materiales.
Los materiales pueden ser sólidos, líquidos o polvorientos, sin embargo han de ser deflectores de sonido. Los sensores trabajan según el tiempo de transcurso del eco, es decir, se valora la distancia temporal entre el impulso de emisión y el impulso del eco.
¿ Cuáles son los componentes que integran al sensor ultrasónico?
les dejo las especificaciones técnicas del ultra sónico HC-SR04 que será el que usaremos en este mini proyecto.
Lo más singular del sensor de ultrasonidos HC-SR04 es quizás su "par de ojos", estos no son más que un emisor y un receptor de ultrasonidos que trabajan a una frecuencia de 40KHz (una frecuencia inaudible para las personas).
Después de haber contestado las anteriores preguntas, aquí les dejo la lista de materiales y más abajo les dejo el diagrama de conexión y el código para cargarlo al Arduino ya teniendo el código cada uno lo puede modificar a su gusto e ingresar los parámetros de medición que mejor les parezca espero les guste.
Lista de materiales.
- Tarjeta Arduino uno
- Sensor ultrasónico
- Leds RGB
- Protoboard
- Resistencia 220
- Buzzer
- Jumpers
Código para el IDE de Arduino.
int trigger = 7; // declaramos la palabra trigger como un tipo entero int echo = 6; // declaramos la palabra echo como un tipo entero int buzzer = 8;// declaramos buzzer como tipo entero en el pin 8 int j; float tiempo_de_espera,distancia; // creamos una variable de fotante; es decir, nos puede dar resultados en decimales. void setup() { Serial.begin (9600); // establemos la comucicacion serial pinMode (trigger, OUTPUT); // declarmos el pin 9 como salida pinMode (echo, INPUT); // declaramos el 8 como entrada pinMode (10, OUTPUT); } void loop() { digitalWrite (trigger,LOW); // ponemos en bajo el pin 8 durante 2 microsegundos delayMicroseconds(2); digitalWrite (trigger, HIGH);// ahora ponemos en alto pin 8 durante 10 microsegundos; delayMicroseconds (10); // pues este el momento en que emite el sonido durante 10 segungos digitalWrite (trigger, LOW); // ahora ponemos en bajo pin 8 tiempo_de_espera = pulseIn (echo,HIGH); // pulseIn, recoge la señal del sonido que emite el trigger /*La función pulseIn espera la aparición de un pulso en una entrada y mide su duración, dando como resultado la duración medida El primer parámetro (ECHO) es el pin sobre el que se realizará la medición. Y el segundo parámetro (HIGH) indica si el pulso a esperar será un 1 (HIGH) o un 0 (LOW). */ distancia =(tiempo_de_espera/2)/29.15; // formula para hallar la distancia Serial.print (distancia); // imprimimos la distancia en cm Serial.println ("cm"); delay (1000); if (distancia>=30 && distancia <=400){ // analogWrite (3,255); analogWrite (5,255); analogWrite (6,255); digitalWrite(8, HIGH); delay(20); digitalWrite(8, LOW); } if (distancia>=26 && distancia <=30){ analogWrite (3,1); analogWrite (5,255); analogWrite (6,255); } if (distancia>=23 && distancia <=26){ analogWrite (3,255); analogWrite (5,45); analogWrite (6,59); }if (distancia>=20 && distancia <=23){ analogWrite (3,255); analogWrite (5,30); analogWrite (6,20); } if (distancia>=17 && distancia <=20){ analogWrite (3,90); analogWrite (5,120); analogWrite (6,40); } if (distancia>=14 && distancia <=17){ analogWrite (3,90); analogWrite (5,255); analogWrite (6,30); } if (distancia>=11 && distancia <=14){ analogWrite (3,20); analogWrite (5,56); analogWrite (6,255); } if (distancia>=8 && distancia <=11){ analogWrite (3,255); analogWrite (5,50); analogWrite (6,1); tone(buzzer,349); delay(j); noTone(buzzer); delay(100); } }
Diagrama de conexión.


Comentarios
Publicar un comentario