Como conectar dos sensores ultrasonicos en arduino

Como conectar dos sensores ultrasonicos en arduino

Como conectar dos sensores ultrasonicos en arduino

cableado del sensor ultrasónico de arduino

Tengo dos buggies moviéndose alrededor de una pista, ambos utilizan módulos de medición ultrasónica para detectar obstáculos en su camino y son controlados por microcontroladores Arduino. Los dos sensores de ultrasonidos funcionan a la misma frecuencia y ésta no se puede modificar. Los dos sensores de ultrasonidos interfieren entre sí. ¿Cómo puedo reducir esta interferencia, o evitarla, añadiendo algo al código de Arduino? El hardware no se puede cambiar. Gracias por su ayuda
En cierto sentido, el «código» es un poco como el «tiempo», pero más complicado. Con el «tiempo», tratas de cronometrarlo para que los dos transductores no transmitan al mismo tiempo. Con el «código», se envían secuencias de pulsos complejas y se utilizan para eliminar las interferencias.
Creo que tu mejor apuesta (simple, pero efectiva) es el «tiempo». Esto va a depender un poco de la frecuencia de actualización que necesites, pero podrías hacer que un buggy sea el «maestro», enviando un chirp corto cada 100 ms (digamos); entonces haz que el segundo buggy espere hasta que escuche el chirp del maestro, y envíe su propio pulso 50 ms después (cuando sepa que el otro buggy estará tranquilo). De este modo, cada uno tendrá 10 actualizaciones por segundo, pero no interferirán.

protocolo de comunicación del sensor ultrasónico

Así que aquí está la cosa. Tengo 2 sensores de ultrasonidos conectados a microcontroladores separados. La cosa es que he desoldado el receptor en el otro y el transmisor en el otro así que lo que queda es sólo el receptor y el transmisor (ver foto adjunta). Quiero que el transmisor envíe constantemente ping y que el receptor sólo escuche ese ping para poder medir la distancia entre ellos. Sin embargo, con los códigos que he probado (ver archivo adjunto), sólo obtengo valores constantes de 0in,0cm y con la otra configuración obtengo valores constantes de 1335in, 400-ish cm. ¿Hay algo que se me escapa? ¿Hay códigos en el newping que debería probar?
No he pensado en eso. ¿No funcionan así los sensores ultrasónicos? Cuando transmite un pulso, automáticamente el receptor procesaría ese pulso en cuanto a su procedencia con la ayuda de la placa. Si no es así, ¿hago una configuración esclavo/escritor para superar ese problema?
Yo también lo hice, tengo la misma configuración que él, sin embargo me salen los valores de pulseIn como estos (ver foto adjunta). También afirma que pulseIn significa «el tiempo que se escucha el sonido». Creo que está funcionando y los dos se están comunicando realmente ya que cuando desenchufo el lado tx los valores que obtengo son cero. ¿Hay alguna forma de convertir ese «tiempo» en distancia?

múltiples sensores ultrasónicos arduino

Es decir, para hacer que el robot avance, colocamos nuestras manos cerca del lado izquierdo y derecho del robot, para hacer que gire a la derecha, quitamos la mano derecha y mantenemos la izquierda en su lugar, viceversa para girar a la izquierda, etc.
Como puedes ver, estoy utilizando la librería NewPing.h para recoger los datos de los sensores. Después de cada iteración del bucle for, las distancias detectadas por los sensores se almacenan en un array de sensores. Cuando una mano se coloca a unos 15-20 cm de un sensor, el arduino envía una señal digital de disparo «HIGH» al respectivo puente H, activando el motor correspondiente (sólo tengo uno de estos pines, «ena1», habilitado en mi código, los otros dos están comentados para la prueba).
Para probar mi código, simplemente conecté el pin de activación del puente H «ena1» a un LED, este pin es activado por el sensor cuyos datos de distancia se almacenan en la variable «sensors[0]». Sin embargo, después de compilar y cargar mi código, noto que el LED simplemente parpadea débilmente cuando pongo mi mano frente al sensor. Como si el LED se encendiera y apagara muy rápido.

interferencia de múltiples sensores ultrasónicos

Emite un ultrasonido a 40 000 Hz que se desplaza por el aire y si hay un objeto u obstáculo en su camino rebotará hacia el módulo. Teniendo en cuenta el tiempo de viaje y la velocidad del sonido se puede calcular la distancia.
El módulo ultrasónico HC-SR04 tiene 4 pines, tierra, VCC, Trig y Echo. Los pines de tierra y VCC del módulo deben conectarse a la tierra y a los pines de 5 voltios de la placa Arduino respectivamente y los pines de trig y eco a cualquier pin de E/S digital de la placa Arduino.
Para generar el ultrasonido necesitas poner el Trig en un estado alto durante 10 µs. Esto enviará una ráfaga de ultrasonidos de 8 ciclos que viajará a la velocidad del sonido y se recibirá en el pin Echo. El pin Echo emitirá el tiempo en microsegundos que viajó la onda sonora.
Por ejemplo, si el objeto está a 10 cm del sensor, y la velocidad del sonido es de 340 m/s o 0,034 cm/µs, la onda sonora tendrá que viajar unos 294 u segundos. Sin embargo, lo que obtendrá el pasador del Eco será el doble de esa cifra porque la onda sonora necesita viajar hacia adelante y rebotar hacia atrás.    Así que para obtener la distancia en cm necesitamos multiplicar el valor del tiempo de viaje recibido desde la clavija del eco por 0,034 y dividirlo por 2.

Acerca del autor

admin

Ver todos los artículos