ARDUINO M2 CLASE 1
Sensor de Ultrasonido
En este proyecto se usa el sensor de ultrasonido HC-SR0, el cual nos brinda la informacion de la distancia de un objeto que se encuentra al frente del sensor. Así mismo, usamos un LED que cuando se apaga nos indica que el objeto esta fuera del rango.
Hardware Requerido
- Tarjerta Arduino
- Sensor de ultrasonido
- Resistencia (220 ohm)
- LED
Circuito
El HC-SR04 sensor ultrasónico es un sensor de proximidad / distancia muy asequible que se ha utilizado principalmente para evitar objeto endiversos proyectos de robótica. En esencia, le da a sus ojos Arduino / conciencia espacial y puede impedir que el robot se estrelle o se caiga de una mesa. También se ha utilizado en aplicaciones de torreta, sensores de nivel de agua, e incluso como un sensor de aparcamiento. Este sencilloproyecto utilizará el sensor HC-SR04 con un Arduino y el Serial Monitor para ver la distancia obtenida.
Como funciona el sensor de ultrasonido?
Funciona igual que un pequeño radar. Emite un pulso de sonido a una frecuencia tan alta que es imperceptible para el oído humano y cronometra el tiempo que el sonido tarda en llegar a un obstáculo, rebotar y volver al sensor. Como la velocidad de propagación del sonido en el aire es un dato conocido (343.2 m/s) , solo se aplica la formula (e = v * t) y calculamos la distancia recorrida por el sonido.
Si por ejemplo, tenemos un objeto a 10 centímetros, a una velocidad de 34300 centímetros por segundo, obtendremos un tiempo de T=10/34300=2.92*10^-4 segundos. Éste será el tiempo que la señal tardará en llegar a un objeto situado a 10 centímetros, pero, la señal tiene que volver al receptor, por lo que se empleará el doble de tiempo. Necesitamos un tiempo de ida, que rebote, y que vuelva, tardando lo mismo que a la ida. Debido a esto, tendremos que dividir la fórmula anterior por 2. Así, tendremos en cuenta el tiempo de ida y el tiempo de vuelta.
Esquemático
Código:
int echoPin=7; // Pin Echo int trigPin=8;// Pin Trigger int LEDPin=13; // Pin LED int maximo_rango = 450; //cm int minimo_rango = 2; // cm long duracion, distancia; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(LEDPin, OUTPUT); } void loop() { distancia=obtener_distancia(); // verifico que el obstáculo se encuentre dentro del rango // en este caso la precisión del sensor es 2 a 450 cm if (distancia >= maximo_rango || distancia <= minimo_rango) { Serial.println("-1"); digitalWrite(LEDPin, LOW); } else { Serial.println(distancia); digitalWrite(LEDPin, HIGH); } delay(50); } /* Un pulso ultrasónico se transmite y se refleja en un objeto, el sensor recibe el pulso y lo convierte en una señal eléctrica. El siguiente pulso podrá ser transmitido cuando el eco desaparezca. Si un pulso de anchura 10 µs es mandado al pin de trigger (en nuestro caso el pin digital número 8), el ultrasonido enviará ocho señales y detectará el eco desde el pin de ECHO (en nuestro caso será el pin digital 7). La medida de la distancia es proporcional al ancho de pulso del eco, el cual puede ser calculado por fórmula. */ long obtener_distancia(void) { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duracion = pulseIn(echoPin, HIGH); distancia = duracion/58.2; return(distancia); }
SENSOR DE SONIDO CON ARDUINO
Sensor de sonido con Arduino
Objetivos:
- Conocer el manejo del sensor de sonido (micrófono)
Hardware Requerido
- Tarjerta Arduino
- Sensor de sonido
- Resistencia (220 ohm)
- LED
Descripción de lo que hace el montaje
El montaje es un sencillo sensor de sonido a la placa Arduino.
Mediante este sensor, si en un momento determinado se escucha un sonido, este montaje lo detecta. Se puede seleccionar la sensibilidad del sensor, para en función del volumen del sonido sea recogido o no.
El sensor empleado en este tutorial tiene un LED verde incorporado que te indica cuando percibe un sonido y cuando no. Si está encendido significa que está recibiendo sonido, si está apagado lo contrario.
Descripción del montaje
Se conecta la placa Arduino UNO a una fuente de alimentación, en este caso se conecta al ordenador.
Seguidamente se debe de conectar el sensor de sonido a la placa Arduino, vemos que hay 3 pines macho en el sensor: Vcc, GND y OUT. Vcc es el pin que se debe de conectar a la fuente de tensión (5V), GND es la toma a tierra y por último OUT es el pin de salida al que queremos conectar el sensor (en este caso se ha conectado a A0). Cabe destacar que este sensor recoge datos analógicos, por lo que debe de conectarse a los pines hembra de la parte analógica, no en la digital (cosa fácilmente confundible, pues se puede pensar que simplemente recoge sonido (1) o no recoge sonido (0), pero no es así).
Por último se debe de calibrar la sensibilidad del sensor (aquí la respuesta a porqué recoge datos analógicos y no digitales), para ello en la parte delantera se ve un regulador que mediante un tornillo de punta de estrella puede calibrarse al gusto.
Código:
int LED = 10 ; int sensor = 2 ; bool estado = false ; void setup() { pinMode( LED, OUTPUT) ; Serial.begin(9600); //pinMode( sensor , INPUT_PULLUP) ; digitalWrite(LED , LOW) ; // Apagamos el LED al empezar } void loop() { int valor = analogRead(A0) ; //leemos el estado del sensor Serial.println(valor); if ( valor > 350 || valor<230 ) //Si está activada la salida D0 { estado = ! estado ; // cambiamos el estado del LED digitalWrite(LED, estado) ; // escribimos el nuevo valor delay (1000); } }
Si lo que se pretende es hacer cosas distintas dependiendo de los decibelios del sonido, no será muy muy complicado. La utilidad de este sensor es saltar o detectar la superación de un determinado umbral, esta umbral de sonido podremos variarlo con el potenciómetro que trae el sensor.
IMPORTANTE: El sensor con que he estado haciendo pruebas yo, funciona al revés de todos los que he visto hasta ahora. Lee en el pin output un valor 1023 si no detecta sonido y va bajando dicho valor en la medida que el volumen del sonido aumenta. Solo tendremos que cambiar el operador de comparación > por un menor <.
0 comentarios: