0.- TEORÍA: LOS ULTRASONIDOS.
Los ultrasonidos son señales acústicas cuya frecuencia está comprendida entre 20 y 400kHz. Esto es, por encima del rango de frecuencias que el oído humano puede oír, pero que pueden ser captadas por delfines y murciélagos, además de por sofisticados robots y hasta por los parachoques de los coches para aparcarlos.
Los sensores de ultrasonidos permiten medir la distancia a la que se encuentra un objeto sin establecer contacto físico con él.
Para ellos se valen de:
a) emiten un pulso de señal de ultrasonido.
b) el pulso una vez rebota vuelve al sensor.
c) Se calcula el tiempo que ha tardado en el ir y volver y se puede saber la distancia del objeto.
Distancia = (Velocidad * Tiempo) / 2
La Velocidad es la del sonido en el aire, que a 20ºC es de 343 m/s, y el tiempo es el que tarda el pulso en ir y volver (por eso lo dividimos entre dos para calcular la distancia del objeto).
1.- EL MÓDULO HC-SR04 DE ARDUINO.
El HC-SR04 es un pequeño sensor de ultrasonidos que opera a una frecuencia de 40kHz y puede detectar objetos entre 3cm y 3 m, con una precisión de 3mm.
Este sensor tiene cuatro pines de conexión:
a) Vcc (que es para alimentar el sensor conectándolo a 5voltios)
b) Trig (es el que produce el disparo del ultrasonido), lo conectaremos a pin digital de salida.
c) echo (es el receptor de la señal de ultrasonido), lo conectaremos al pin digital de entrada.
d) GND (que se conecta a 0voltios.)
PRÁCTICA
Para medir distancias mediante un sensor de ultrasonido, generaremos un pulso de 10 microsegundos en el pin conectado a trig.De esta forma, si expresamos la distancia en cm y el tiempo en microsegundos, la velocidad del sonido será de 343 m/s = 0.0343 cm/microseg.
Luego, para saber la distancia en CM a la que está el objeto tendremos (dividimos entre porque la señal debe recorrer la distancia dos veces, una en ir y la otra en volver).
distancia= (0.0343*tiempo) / 2 = 0.017 * tiempo
El sensor consta de 4 pines: "VCC" conectado al pin de 5V de la placa, "Trig" conectado al pin9 digital encargado de enviar el pulso ultrasónico, "Echo" al pin8 de entrada digital que recibirá el eco de dicho pulso y "GND" a tierra.
Enviaremos un pulso con una cresta de +5v durante 10 microsengudos y un valle de 0voltios que durará 5 microsegundos.
CÓDIGO DEL PROGRAMA:
long distancia;//
long tiempo;
int pinTrig=9;
int pinEcho=8;
void setup(){ Serial.begin(9600); pinMode(pinTrig, OUTPUT); //PIN9 como salida/TRIG para enviar el ultrasonido
pinMode(pinEcho, INPUT);//PIN8 entrada , recoge el rebote del ultrasonido
} void loop(){ digitalWrite(pinTrig,LOW); /* Por cuestión de estabilización del sensor*/ delayMicroseconds(5); digitalWrite(pinTrig, HIGH); /* envío del pulso ultrasónico*/ delayMicroseconds(10); tiempo=pulseIn(pinEcho, HIGH);//
distancia= int(0.017*tiempo); //distancia medida en cm Serial.println("Distancia "); Serial.println(distancia); Serial.println(" cm"); delay(1000); }
NOTA EXPLICATIVA:
- long :El formato de variable numérica de tipo extendido “long” se refiere a números enteros
(tipo 32 bits = 4 bytes) sin decimales que se encuentran dentro del rango -2147483648 a 2147483647.
- pulseIn (pin,value) :pin: el número de pin en el que desea leer el pulso. (int),value: tipo de pulso a leer: HIGH o LOW. (int)
- distancia= int(0.017*tiempo);
Es una función en cm para medir la longitud del pulso entrante. Mide el tiempo transcurrido entre el envío
del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 8
empieza a recibir el rebote, HIGH, hasta que deja de hacerlo, LOW, la longitud del pulso entrante.
ACTIVIDAD:1.- Diseña un parktronic (sensor de aparcamiento para coches).
Para que suene según la distancia utilizaremos un zumbador. Frecuencia: 20 Hz – 20.000 Hz
int pinzumbador = 13; // pin del zumbador
int frecuencia = 220; // frecuencia correspondiente a la nota La
void setup()
{
}
void loop()
{
tone(pinzumbador,frecuencia); // inicia el zumbido
delay(2000);
noTone(pinzumbador); // lo detiene a los dos segundos
delay(1000);
}
No hay comentarios:
Publicar un comentario