8

Tutorial de Arduino y SHARP

portada_SHARP

¡Buenos días, seguidores! Los sensores de distancia por infrarrojos son una buena forma de dotar a nuestros robots autónomos de un sistema de orientación e identificación de objetos, evitando así colisiones. Si bien muchas veces no son tan precisos como los sensores de ultrasonidos, son mucho más baratos (en general) y sencillos de configurar. Hoy vamos a utilizar el sensor de Infrarrojos SHARP con Arduino. Crearemos una función que nos detecte si hay algun objeto próximo al sensor, y, además, mostraremos por pantalla la distancia que nos marca.

Para este ejemplo vamos a necesitar:

  • Arduino. Yo utilizo una Duemilanove, pero cualquier modelo debería funcionar
  • Sensor IR SHARP
  • Cables de prototipado y USB de impresora

 

El sensor SHARP dispone de tres cables: rojo, negro y amarillo/blanco. Los dos primeros corresponden a VCC y GND, por lo que irán conectados a 5V y GND. El cable amarillo/blanco es el cable de señal. SHARP es un sensor analógico, así que vamos a conectarlo a A4.

 

El código es muy simple. Si el sensor de infrarrojos detecta un objeto a una distancia de entre 5 y 10 centímetros aproximadamente, enciende el LED del pin 13. También envía el valor del sensor por Serial. ¿Puede haber algo más sencillo? 😀

/*
TUTORIAL DE ARDUINO Y SHARP

Enciende el LED del pin 13 si el sensor IR detecta
un objeto.

Escrito por N4n0 en beneficio de los seres humanos.
www.robologs.net
*/

#define LED 13 //definimos el pin del LED

int dist = 0; //aqui guardamos el valor del sensor

void setup()
{
pinMode(LED, OUTPUT);
Serial.begin(9600);
}

void loop()
{
dist = analogRead(4); //Leemos A4 y almacenamos su valor
Serial.println(dist); //Escrivimos dist por serial

if(dist > 350) digitalWrite(LED, HIGH);
else digitalWrite(LED, LOW);

delay(100);
}

Hay que decir, sin embargo, que el sensor SHARP tiene un rango mínimo. Es posible que un objeto que esté justo delante del sensor dé un valor más bajo que un objeto que esté separado un par de centímetros.

El siguiente gráfico extraído de la documentación del sensor SHARP de 30 centímetros muestra la variación de la señal analógica en función de la distancia:

rango_sensor

Así pues, vemos que los objetos que estan a menos de 2 ó 3 centímetros dan un valor menor que aquéllos situados a 5 ó 6.

Y hasta aquí nuestro tutorial de hoy. Si te ha gustado y eres seguidor más o menos frecuente de nuestro blog, te alegrará saber que estamos preparando una serie de tutoriales para construir un robot de miniSumo, de principio a fin. Esperamos poder publicarlo en breve 😉

N4n0

Creado para cuidar de los sistemas de laboratorios tan secretos que ni él tiene la seguridad de estar trabajando en ellos, a Nano le gusta dedicar los ciclos que no gasta en tapar agujeros de Firewall para dedicarse al hobby de la electrónica o a ver películas de ciencia ficción. Entre su filmoteca de culto, ocupan un lugar destacado Tron, The Matrix y Johnny Mnemonic.

Antes de comentar, por favor, lee las Normas

8 Comentarios en "Tutorial de Arduino y SHARP"

avatar
Ordenar por:   más nuevos primero | más antiguos primero
wendy torres
Humano

Hola, he tenido un problema con un sensor (Sharp GP2Y0A60SZLF) necesito calibrarlo para poder sacar la distancia, en realidad yo no soy buena en la programación de arduinos y encontré esta pagina http://www.instructables.com/id/How-to-setup-a-Pololu-Carrier-with-Sharp-GP2Y0A60S/?ALLSTEPS.. hago las conexiones subo el programa y cuando empiezo a calibrarlo, va bajando la medición hasta cierto punto, y deja de bajar para subir y luego bajar y es entonces donde la distancia deja de ser verdadera. También no se si influya que en vez de utilizar un arduino uno utilizo un arduino nano y un sensor de 3v

Espero me haya explicado y puedas ayudarme SALUDOS!

Gl4r3
Admin

Viendo este código creo que es normal, este programa va tomando medidas y calculando su media, es normal que las mediciones vayan subiendo y bajando.

Anónimo
Humano

No lo entiendo. No sé si los 3 sensores que he comprado en electronicaembajadores están defectuosos o es que este sensor es tremendamente impreciso; pero incluso dejándolo quieto delante de una pared blanca a 50 cm, está contínuamente variado su valor= 52 cm, 45 cm, 48 cm, y con picos de 30 o 60 cm. Repito, dejándolo completamente estático delante de una pared blanca. ¿A qué puede deberse??

María
Humano
Hola, creo que tengo un problema con mi mando a distancia de infrarrojos. Creo que no funcionan algunas teclas. Las pruebas que he hecho han sido las siguientes. He conectado el receptor de IR en los pines A0 del sensor shield. Luego he usado el programa IR.INO que hay en esta carpeta: https://drive.google.com/folderview?id=0B0cBzpvRJiJnNmI1U1JSVHlCRUk&usp=sharing Al abrir el monitor y pulsar las teclas me salen valores procedentes del IR. Pero son algo herráticos y hay algunos botones que no funcionan en absoluto (me aleje o me acerque), por ejemplo, la tecla 0, 6, 9 y #. He comprobado a cambiarle la pila… Leer más »
Josue
Humano

Hola he visto tu blog y esta muy interesante, quisiera saber si me podrias ayudar con un codigo , lo que quiero hacer que unos leds prendan aleatoriamente y los pueda prender y apagar con un sensor SHARP ,ya vi el tutorial que tienes aqui ,lo que quisiera saber es como prender los leds de forma aleatoria y poderlos apagar el led que prenda.Si mi pudieras ayudar gracias ,soy un poco nuevo en arduino.

wpDiscuz