INFORMACIÓN
A02YYUW Sensor Ultrasónico determina la distancia a un objetivo midiendo los lapsos de tiempo entre el envío y la recepción de pulsos ultrasónicos. Este sensor es de alto rendimiento y altamente confiable, a diferencia de otros sensores ultrasónicos su punto ciego es más pequeño, es a prueba de agua y polvo, tiene un amplio ángulo de detección, mejor poder de penetración ante el polvo y el smog y puedes usarlo en distintos entornos.
Las señales de procesamiento vienen integradas dentro del A02YYUW Sensor Ultrasónico, por lo tanto puedes procesarlas a través de una tarjeta de desarrollo Arduino, ESP32, Raspberry Pi, entre otras, usando una interfaz serial asíncrona a 9600 bits por segundo.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Marca: DFROBOT
- Matrícula: SEN0311
- Modelo: A02YYUW
- Color: Negro
- Dimensiones:
- Sensor: 84.6mm x 29.6mm x 18.5mm
- Conector: 4 pines
- Voltaje de operación: 3.3-5V
- Corriente promedio: <8mA
- Distancia de zona de punto ciego: 30 mm
- Rango de detección (Objeto plano): 3-450cm
- Protocolo de comunicación: UART
- Ángulo de referencia: 60º
- Grado de resistencia al agua: IP67
- Tiempo de respuesta: 100ms
- Temperatura de operación: -15-60°C
- Peso: 50 g
- SKU:
- UNIT: AR3209
- DFRobot: SEN0311
Pines:
- Rojo: 3.3-5V Vcc
- Negro: GND
- Amarillo: RX
- Blanco: TX
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
Patrones del haz del sensor
Salida de datos UART
El sensor ultrasónico A02YYUW tiene como característica la transmisión de datos por medio de UART a 9600 baudios, los datos tomados por el sensor los almacena en 4 bytes repartidos de la siguiente manera:
El primer byte es una constante de 0xFF, los siguientes dos bytes son los valores medidos de la distancia detectada, y el ultimo byte es una suma de los tres bytes anteriores, este solo almacenará los 8 bits de valor más bajo de la suma, es decir:
Si el valor de la suma es 0x1A7 (En binario: 0001 1010 0111), Checksum solo almacenará A7 (En binario: 1010 0111).
Checksum ayuda a corroborar que las mediciones realizadas por el sensor de verdad sean correctas, a través de código podemos se puede realizar la siguiente operación:
sum = (data[0] + data[1] + data[2]) & 0x00FF;
Si el valor de sum es igual al valor de Checksum, entonces las mediciones fueron correctas.
Prueba del A02YYUW sensor ultrasónico con Arduino UNO
Realizaremos las siguientes conexiones en nuestra tarjeta de desarrollo Arduino Uno:
Cables:
- Rojo: 3.3 – 5V
- Negro: GND
- Amarillo: Pin 3
- Blanco: Pin 2
Posteriormente usaremos el siguiente código en nuestro IDE para programar nuestro Arduino, esté código mide la distancia entre el sensor y un objeto:
#include <SoftwareSerial.h> //Puerto serial personalizado SoftwareSerial mySerial(2, 3); // RX, TX unsigned char data[4] = {}; float distancia; void setup() { //Inicio de protocolo serial a 57600 baudios Serial.begin(57600); mySerial.begin(9600); } void loop() { //Lectura de datos del puerto serial do { for (int i = 0; i < 4; i++) { data[i] = mySerial.read(); } } while (mySerial.read() == 0xff); //Espera a que se complete la transmisión de datos salientes mySerial.flush(); if (data[0] == 0xff) { int sum; //Comprobación de los valores de lectura sum = (data[0] + data[1] + data[2]) & 0x00FF; /*Verifica que el resultado de la operación anterior coincida con el valor del dato 3 Si no coincide, entonces la edición es errónea */ if (sum == data[3]) { //Conversión de los valores medidos en cm distancia = (data[1] << 8) + data[2]; if (distancia > 30) { Serial.print("distancia="); Serial.print(distancia / 10); Serial.println("cm"); } else { Serial.println("Debajo del límite inferior"); } } else Serial.println("ERROR"); } delay(100); }
Recuerda que para poder visualizar el funcionamiento del código debes abrir el monitor serial:
Valoraciones
No hay valoraciones aún.