De conformidad con el Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo de 27 de abril de 2016 relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos y (Reglamento General de Protección de Datos) ofrecemos la posibilidad de aceptar o no el uso de cookies mientras navega por nuestro sitio web. Puede obtener más información en nuestra web
El espacio exclusivo de robótica educativa
Todo sobre productos Mobile, Connect, Outdoor y Robótica Educativa
Proyecto 6 Build & Code: Sensor de distancia con LED
Published in Robótica - 2 Mayo 2017

Ejercicio:


Construye y programa un circuito para controlar el encendido de un LED de color verde y rojo con un sensor de ultrasonidos de distancia. Cuando el sensor detecte un objeto a menos de 20cm se encenderá el LED rojo y cuando la distancia sea mayor a 20 se encenderá el verde.


Material:


  • 2 — LEDs (1 Rojo y 1 Verde)
  • 2 — Resistencia 220
  • 1 — Sensor Ultrasonidos distancia
  • 1 — Placa Build&Code UNO
  • 1 — ProtoBoard

¿Qué es un Sensor de distancia de ultrasonidos?


Un sensor de distancia utiliza el mismo principio que utilizan los murciélagos para volar sin chocar con los objetos. Se emiten unas ondas de ultrasonidos y si éstas vuelven quiere decir que hay un objeto delante nuestro, y entonces se decidirá si esquivarlo o ir a por él. En función de lo que tarden estas ondas en ir y volver se puede saber si el objeto está más cerca o lejos.



El sensor de ultrasonidos está formado por dos módulos diferentes, un emisor y un receptor. El emisor emite unas ondas de ultrasonidos, que son unas ondas sonoras que nosotros no podemos escuchar (como las de los murciélagos). Éstas avanzan hasta encontrar unos obstáculo, y cuando lo encuentran, rebotan y entonces avanzan hacia nuestro sensor, hasta que el ultrasonido es detectado por el módulo receptor.



Debido a que las ondas sonoras siempre viajan a la misma velocidad cuando se desplazan por el aire: 343 m/s, para saber a qué distancia se encuentra el objeto detectado, primero se tiene que medir el tiempo que tarda la onda en ir y volver y dividirlo entre dos para tener el tiempo que ha tardado desde que hemos emitido el ultrasonido hasta que ha chocado con el objeto y no el tiempo desde que sale hasta que llega. Una vez que sabemos el tiempo, para calcular la distancia se tiene que coger el tiempo de ida y multiplicarlo por la velocidad a la que viajan las ondas por el aire:


Distancia = 343m/s * tiempo (segundos)


Si la onda de ultrasonidos no vuelve, quiere decir que no hay ningún obstáculo y el sensor informará de que no hay nada delante suyo.


Circuito:


La placa protoboard recibe la electricidad del pin de 5V de Build&Code UNO y vuelve de la protoboard a la Build&Code UNO a través del pin GND (tierra).


Todos los GND del circuito debes conectarlos entre sí para que todos tengan el mismo valor de GND. Para que activar los LEDs de color verde y rojo, debes conectarlos a un pin digital, que serán los pines encargados de dar electricidad para que se enciendan.


El sensor de ultrasonidos tiene 4 pines, de los cuales 2 ya los has conectado, 5V y GND.Los otros 2 pines son ECHO y TRIG que los conectar a 2 pines digitales, siendo estos pines los encargados de enviar la información a la Build&Code UNO .



El color negro es el GND, donde todos los Grounds de cada componente están conectados entre sí y al GND de la placa.


El color rojo son los 5V, que alimenta el sensor de distancia.


El LED rojo se conecta con un cable verde al pin digital 11.


El LED verde se conecta con un cable lila al pin digital 10.


Y del ultrasonic salen 4 cables, 1 GND, 1 5V, y dos conectados a 2 pines digitales.


El pin del sensor Trig se conecta con un cable amarillo al pin digital 7


El pin del sensor Echo se conecta con un cable naranja al pin digital 8


Programa en código Arduino


Realizarás un programa que estará continuamente leyendo información del sensor de ultrasonidos de distancia. En función de la distancia que mida el sensor, se encenderá un LED o otro.


Para ello utilizarás una condición, si la distancia es menor que 20 cm, el LED Rojo estará encendido mientras que el verde estará apagado, y por el contrario, si la distancia es mayor a 20 cm, el LED verde estará encendido y el LED rojo el que estará apagado.


Para poder medir la distancia tendrás que definir el pin TRIG como salida y el ECHO como entrada. El TRIG será el encargado de enviar la señal de ultrasonidos hacia delante, y el ECHO será el encargado de estar a la espera a recibir la señal.


En función del tiempo que tarde entre el momento que ha sido enviada y recibida, se puede saber a qué distancia está el objeto, ya que la velocidad del sonido en el aire siempre es 343,3m/s.


Por lo que si sabes el tiempo total, que es lo que tarda desde el sensor al objeto rebotado y desde el objeto rebotado al sensor, puedes saber la distancia. Para ello, simplemente, tomas el tiempo que

tarda entre el sensor y el objeto (dividir entre 2 el tiempo total) y lo multiplicaras por la velocidad del sonido en el aire:


Distancia = velocidad * tiempo/2


Para trabajar con más resolución, trabajarás en cm/us (centímetros por microsegundo), utilizando el siguiente factor de conversión:



Una vez calculada la distancia, en función de su valor, tendrás que hacer encender uno o otro LED. Para ello tendrás que definir los 2 pines en los que conectes los LEDs como salida, y cuando quieras que esté encendido darle un valor alto (HIGH o 1) y cuando quieras que esté apagado darle un valor bajo (LOW o 0).


int trigPin = 7;  //Definimos los pines con los que trabajaremos
int echoPin = 8;
int LEDR = 10;
int LEDV = 11;
float velocidad = 0.0343;  //velocidad del sonido en cm/us
long duracion, distancia ;

void setup()
{
    pinMode(trigPin, OUTPUT);  //Declaramos el pin digital 7 como salida
    pinMode(echoPin, INPUT);   //Declaramos el pin digital 8 como entrada
    pinMode(LEDR, OUTPUT);   //Declaramos el pin digital 10 como salida
    pinMode(LEDV, OUTPUT);   //Declaramos el pin digital 11 como salida 
    digitalWrite (LEDR , LOW);  //Definimos la salida digital 10 con un estado bajo
    digitalWrite (LEDV , LOW);  //Definimos la salida digital 11 con un estado bajo
 }
void loop()
  {   
    digitalWrite(trigPin, LOW);        // Nos aseguramos de que el trigger está desactivado
    delayMicroseconds(2);              // Para asegurarnos de que el trigger está LOW
    digitalWrite(trigPin, HIGH);       // Activamos el pulso de salida
    delayMicroseconds(10);             // Esperamos 10µs. El pulso sigue active este tiempo
    digitalWrite(trigPin, LOW);        // Cortamos el pulso y a esperar el ECHO
    duracion = pulseIn(echoPin, HIGH) ; //pulseIn mide el tiempo que pasa entre que el pin declarado (echoPin) cambia de estado bajo a alto (de 0 a 1)
    distancia = velocidad* duracion / 2;   //Dividimos entre 2 porque queremos coger el tiempo de ida (y no ida y vuelta)
                                         // y entre 29,1 porque es 1 dividido entre la velocidad del sonido(1/(vel sonido) en cm/us
    if ( distancia < 20){
        digitalWrite (LEDR , HIGH);     //Si el sensor detecta una distancia menor a 20 cm enciende el LED Rojo
        digitalWrite (LEDV , LOW);      // y apaga el verde
    }
    else{       // de lo contrario
        digitalWrite (LEDR , LOW);    //apaga el rojo
        digitalWrite (LEDV , HIGH);   //enciende el verde
        }
  }

Código en mBlock:


También puedes ver:

Escribe un comentario
* Campos obligatorios