Descripción
El sensor US-100 (US100) es un sensor de distancia por ultrasonidos muy similar al clásico HC-SR04, pero con un par de importantes mejoras:
- Se puede conectar a lógica de 3,3V y de 5V, por lo que no necesitas un desplazador de nivel en ningún caso.
- La distancia se puede leer a través de un puerto serie (UART), por lo que evitamos el error de medición que con el HC-SR04 puede cometer el Arduino.
Quita el jumper de la parte trasera y funcionará como un HC-SR04 tradicional. Deja el jumper puesto y podrás comunicarte con el sensor mediante un puerto serie (UART) a 9600 bps. Envía un 0x55 por el puerto serie y el sensor contestará con un valor de 16 bits (2 bytes) con la distancia en mm. ¡Así de sencillo!
Además, incorpora un sensor de temperatura que puedes leer enviando un 0x50 (proporciona el valor de temperatura en ºC).
El rango de medición teórico es de 2cm a 4,5m y la resolución de 3mm. Sin embargo, estos parámetros pueden verse afectados debido a los siguientes factores: orientación del objeto, anchura del cono de medición (15º) o ecos parásitos.
- Distancia de detección: 2cm a 4,5m (rango recomendado: 10cm a 2,5m).
- Precisión: Hasta 3mm
- Tensión alimentación: 3,3V/5V
- Consumo: 2mA
- Ángulo medición máximo: 15º
- Dimensiones: 45 x 20 mm
Más información: Hoja de datos US100
Código de ejemplo:
#include <SoftwareSerial.h> SoftwareSerial mySerial(3, 2); unsigned int HB, LB, dato; /// *** CONFIGURACIÓN *** void setup() { Serial.begin(9600); // Monitor serie a 9600bps mySerial.begin(9600); // Puerto serie (vía software) a 9600bps } // *** CÓDIGO PRINCIPAL *** void loop() { mySerial.flush(); mySerial.write(0X55); // Se pide al sensor que mida la distancia delay(500); // Espera de 500ms para que el sensor termine la medición if (mySerial.available() >= 2) { // Cuando se hayan recibido los 2 bytes... HighByte = mySerial.read(); LowByte = mySerial.read(); dato = HB * 256 + LB; // Reconstrucción del dato de 16bits if ((dato > 1) && (dato < 10000)) { Serial.print("Distancia: "); Serial.print(dato, DEC); Serial.println("mm"); } } }
Valoraciones
No hay valoraciones aún.