Desde 1994 en la Red. La pagina de los aficionados a la electronica, informatica y otras curiosidades de la vida. No dudes en visitarnos.
Ahora 1 visitas.| 3409695 Visitas (desde Dic. 2011), hoy: 310 Visitas 765 Pag. Vistas , ultimos 36 dias: 10067 Visitas. 48355 Pag. Vistas. Tu IP: 3.137.185.180
Que ando curioseando:
AutosuficienciaCosas de casaElectronicaEn InternetInformáticaMundo MisticoSin categoríaSociedadTe lo recomiendo

Detector de distancias con ultrasonidos y Arduino

Siempre he querido jugar con sensor de Arduino Ultrasonido . Por suerte, en ebay se puede conseguir el HC-SR04 (sensor ultrasónico) a buen precio.

Conexión del sensor

Sólo después de la entrega he notado un pequeño problema: el sensor Ping original de arduino tenía 3 pines, mientras que mi versión de copia tiene 4 Entonces conecté los pines de esta manera.:

VCC -> Arduino pin 5 V
Pin> Arduino GND – GND
Trig -> Arduino digital Pin 2
Echo -> Arduino digital Pin

El Trig pin se utiliza para enviar la señal y el Echo pin se utiliza para escuchar para el retorno de la señal.

Después de mi cableado desordenado el montaje final se veía así:

assembled_sensor[1]

 

Obtención de datos desde el sensor
El código es bastante sencillo. Tomé el ejemplo de código original para Ping))) del sensor y acaba de modificar la clavija de salida sea Pin digital 2 , el pin de entrada para ser digital Pin 4 y duración de disparo a 10 de nosotros.

 

 

/ * HC-SR04 del sensor

https://www.dealextreme.com/p/hc-sr04-ultrasonic-sensor-distance-measuring-module-133696

   Este bosquejo lee un telémetro ultrasónico HC-SR04 y devuelve el
   distancia al objeto más cercano en el rango. Para ello, envía un pulso
   para el sensor para iniciar una lectura, luego capta un pulso 
   para volver. La longitud del impulso de retorno es proporcional a
   la distancia del objeto desde el sensor.
     
   El circuito:
	* La conexión de VCC del sensor conectado a +5 V
	* Conexión GND del sensor conectado a tierra
	* Conexión TRIG del sensor conectado al pin digital 2
	* Conexión ECHO del sensor conectado al pin digital 4
 
 
   Código original para Ping))) ejemplo fue creado por David A. Mellis
   Adaptado para HC-SR04 por Tautvidas Sipavicius
 
   Este código de ejemplo se encuentra en el dominio público.
 * /
 
 
const int trigPin = 2;
const int echoPin = 4;
 
void setup() {
  / / Inicializa la comunicación en serie:
  Serial.begin(9600);
}
 
void loop()
{
  / / Establecer las variables de duración del ping, 
  / / Y el resultado la distancia en pulgadas y centímetros:
  long duration, inches, cm;
 
  / / El sensor se activa por un alto pulso de 10 microsegundos o más.
  / / Dale un pulso BAJO corta de antemano para asegurar un pulso ALTO limpia:
  pinMode(trigPin, OUTPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  / / Leer la señal del sensor: un pulso ALTO cuya
  / / Duración es el tiempo (en microsegundos) por el envío
  / / Del ping para la recepción de su eco fuera de un objeto.
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
 
  / / Convertir el tiempo en una distancia
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(100);
}
 
long microsecondsToInches(long microseconds)
{
  / / Según la hoja de datos del paralaje para el PING))), hay
  / / 73,746 microsegundos por pulgada (es decir, el sonido viaja a 1130 pies por
  / / Segundo). Esto le da a la distancia recorrida por el ping, saliente
  / / Y el regreso, así que dividimos por 2 para obtener la distancia del obstáculo.
  / / Ver: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  return microseconds / 74 / 2;
}
 
long microsecondsToCentimeters(long microseconds)
{
  / / La velocidad del sonido es de 340 m / s ó 29 microsegundos por centímetro.
  / / La mesa de ping viaja de ida y vuelta, por lo que para encontrar la distancia del
  / / Object tomamos la mitad de la distancia recorrida.
  return microseconds / 29 / 2;
}

 

 

Después de compilar, cargar y ejecutarlo, en el Serial Monitor ( Herramientas -> Serial Monitor o Ctrl + Shift + M ), el sensor estaba enviando datos correctos!

sensor_output[1]

Después de un poco de perder el tiempo me enteré de que el rango es de aproximadamente 2 cm – 300 cm. Que no, no es malo, pero perfecto.

 

 

Escribe un comentario

Tu comentario