Mostrando entradas con la etiqueta srf04. Mostrar todas las entradas
Mostrando entradas con la etiqueta srf04. Mostrar todas las entradas

jueves, 31 de enero de 2013

Sensor ultrasonido SR04 + LCD I2C

Mi búsqueda de conocimiento de hoy me ha llevado a jugar un rato con un sensor ultrasónico y una pantalla LCD, así conoceré su uso para poder implementarlo correctamente en el robot QBO.





Lamentablemente mas tarde me he dado cuenta que el sensor SRF04 no utiliza el protocolo I2C, sino que funciona mediante TRIGGER y ECHO (proximamente publicare una forma de convertir esto a protocolo I2C). Al mandar señar al TRIGGER lanza el ultrasonido que dependendiendo de la distancia sera recogido por el ECHO guardando el valor dado, de esta forma sabremos a que distancia se encuentra el objeto.

Me gustaría destacar que los sensores SRF04 no detectan únicamente en linea recta, sino que lo hace en un abanico de unos 15grados alrededor de la linea recta frontal.

A continuación paso a escribiros el código de programación utilizado para su utilización:
Mostrar Contenido

Voy a empezar a subir los esquemas hechos por mi, prometo subirlos mejor pero a falta de tiempo esto así valdrá por ahora.

Las patillas del sensor SRF-04 son de izquierda a derecha: VCC-TRIGGER-ECHO-GND
Las patillas del LCD por I2C son de izquierda a derecha: VCC-SDA-SDC-GND
Las resistencias son de 10k.

Proximamente os volveré a subir el esquema con el SRF-04 convertido a I2C, si alguien mientras tanto quiere saber como que lo pregunte que se lo explico.
#include <ultrasonic.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>

LiquidCrystal_I2C lcd(0x27,16,2);
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)

void setup() {
lcd.init(); // initialize the lcd
lcd.backlight();
Serial.begin(9600);
}

void loop()
{
lcd.clear();
lcd.print(ultrasonic.Ranging(CM)); // CM
lcd.print("cm");
delay(100);
}