Sensor de ultrasonidos con Arduino
Los sensores de ultrasonidos sirven, entre otras cosas, para detectar la distancia a la que se encuentran o pasan otros objetos. Su funciomaniento está basado en el sistema que emplean los murciélagos para no chocar contra ningún objeto cuando vuelan en la oscuridad. Los murciélagos emiten ultrasonidos. Dichos ultrasonidos rebotan contra los objetos que tienen delante y vuelven hacia el murciélago que los eschucha con sus sensibles oidos. En función del tiempo que tarda el sonido en rebotar y volver se calcula a la distancia a la que se encuentra dicho objeto.
El sensor de distancia por ultrasonidos PING de Parallax es capaz de detectar objetos hasta a 3 metros de distancia. El sensor cuenta con tres PINES, dos para la alimentación, y un tercero que se usa como entrada y salida digital.
El PIN dedicado a realizar las mediciones tiene que ser reconfigurado de entrada a salida de acuerdo a la hoja de especificaciones del sensor PING. En primer lugar tenemos enviar un pulso al PIN del sensor que hará que este emita un tono de ultrasonido y quedaremos a la espera del eco del mismo. Una vez que el tono es recibido de nuevo en el sensor, este envía un pulso a través del mismo PIN. La amplitud del pulso determinará la distancia al objeto.
El ejemplo que se muestra a continuación fué montado por Marcus Hannerstig, mientras que el código ha sido desarrollado por David Cuartielles. La placa está conectada como se explica, usando tan sólo los cables de un viejo PC.
Detalle del conexionado del sensor de distancia por ultrasonidos PING de Parallax
Código fuente
/* Sensor de Ultrasonidos
*------------------------
*
* Lee valores (00014-01199) de un sensor de ultrasonidos (hasta 3 metros)
* y escribe los valores en el puerto serie.
*
* http://www.xlab.se | http://www.0j0.org
* copyleft 2005 Mackie for XLAB | DojoDave for DojoCorp
*
*/
int ultraSoundSignal = 7; // PIN de señal de ultrasonidos
int val = 0; // Variable auxiliar
int ultrasoundValue = 0; // Valor del senros de ultrasonidos
int timecount = 0; // Contador del eco
int ledPin = 13; // LED conectado al PIN 13
void setup() {
beginSerial(9600); // Configura la velocidad al puerto seria 9600 baudios
pinMode(ledPin, OUTPUT); // Configura el PIN del LED como salida digital.
}
void loop() {
timecount = 0;
val = 0;
pinMode(ultraSoundSignal, OUTPUT); // Conmuta el PIN de la señal a salida digital
/* Envía un pulso bajo-alto-bajo para lanzar el pulso de activación del sensor
* ----------------------------------------------------------------------------
*/
digitalWrite(ultraSoundSignal, LOW); // Envía un pulso bajo
delayMicroseconds(2); // Espera dos microsegundos
digitalWrite(ultraSoundSignal, HIGH);// Envía un pulso alto
delayMicroseconds(5); // Espera 5 segundos
digitalWrite(ultraSoundSignal, LOW); // Se queda en espera
/* En espera, escuchando el pulso de eco
* --------------------------------------
*/
pinMode(ultraSoundSignal, INPUT); // Conmuta el PIN de la señal a entrada digital
val = digitalRead(ultraSoundSignal); // Recoge el valor del PIN de señal
while(val == LOW) { // Espera a que el PIN de señal sea alto
val = digitalRead(ultraSoundSignal);
}
while(val == HIGH) { // Espera a que el PIN de señal sea bajo
val = digitalRead(ultraSoundSignal);
timecount = timecount +1; // Cuenta el tiempo que dura el pulso alto (amplitud)
}
/* Escribe los valores resuktantes en el puerto serie
* ---------------------------------------------------
*/
ultrasoundValue = timecount; // El contador es el valor obtenido por el sensor
serialWrite('A'); // Escribe en el puerto serie el valor obtenido
printInteger(ultrasoundValue);
serialWrite(10);
serialWrite(13);
/* Enciende el LED si se ha recibido un pulso de eco
* --------------------------------------------------
*/
if(timecount > 0){
digitalWrite(ledPin, HIGH);
}
/* Delay del programa
* -------------------
*/
delay(100);
}
Fuente: http://arduino.cc/es_old/Tutoriales/SensorUltrasonidos
|
|
![]() | 15 mayo 2011 en Electronica | tags: Arduino, Electronica |









![PARALLAX_PING[1]](http://www.pesadillo.com/pesadillo/wp-content/uploads/2011/03/PARALLAX_PING1.jpg)
![SENSOR_ULTRASONIDOS[1]](http://www.pesadillo.com/pesadillo/wp-content/uploads/2011/03/SENSOR_ULTRASONIDOS1.jpg)











