PROYECTO Nº 3: Controlar un LED con un sensor de distancia

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

proyecto03-build-and-code-plus-led-sensor

NIVEL DE DIFICULTAD: INTERMEDIO.

DURACIÓN DE LA ACTIVIDAD:  30 min.

MATERIALES:

  • 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 objetos. 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 determinar si el objeto se encuentra más cerca o más lejos.

Build-and-Code-Plus-Actividad-3-sensor

El sensor de ultrasonidos está formado por 2 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 obstáculos y, cuando los encuentran, rebotan hacia el 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 se debe medir el tiempo que tarda la onda en ir y volver, y dividirlo entre dos. El número resultante será el tiempo que ha tardado desde que hemos emitido el ultrasonido hasta que ha chocado con el objeto, y no el tiempo desde que ha salido hasta que ha llegado.

Una vez que sabemos cuánto tiempo han tardado las ondas sonoras en chocar con el objeto, debemos multiplicar el tiempo de ida por la velocidad a la que viajan las ondas, y obtendremos la distancia:

Distancia = 343m/s * tiempo (segundos)

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

CONEXIONES:

  1. La placa protoboard recibe la electricidad del pin de 5V de la placa Build&Code UNO y vuelve de la protoboard a la Build&Code UNO a través del pin GND (tierra). Debes conectar todos los GND del circuito entre sí, para que todos tengan el mismo valor de GND.
    En la imagen, 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 representa los 5V, que alimenta el sensor de distancia.
  2. Para activar los LEDs verde y rojo debes conectarlos a pines digital, que serán los pines encargados de dar electricidad para que se enciendan.
    La imagen muestra cómo el LED rojo se conecta con un cable verde al pin digital 11, y el LED verde se conecta con un cable lila al pin digital 10.
  3. El sensor de ultrasonidos tiene 4 pines, de los cuales 2 ya has conectado (5V y GND). Los otros 2 pines son ECHO y TRIG que deben ir conectados a 2 pines digitales, siendo estos pines los encargados de enviar la información a la placa Build&Code UNO.
    En la imagen puedes ver cómo del ultrasonic salen 4 cables, 1 GND, 1 5V, y 2 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.

CÓDIGO DE PROGRAMACIÓN

Puedes realizar este ejercicio utilizando el programa Arduino o un software de programación por bloques compatible. A continuación encontrarás el código de programación necesario.

Código Arduino

Realizarás un programa que estará leyendo información del sensor de ultrasonidos de distancia de forma continua. En función de la distancia que mida el sensor, se encenderá un LED u 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. Por el contrario, si la distancia es mayor a 20 cm, el LED verde estará encendido y el LED rojo estará apagado.

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

En función del tiempo transcurrido entre el momento en que la señal 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,3 m/s.

Por lo que, si sabes el tiempo total, que es lo que tarda en llegar desde el sensor al objeto rebotado y desde el objeto rebotado al sensor, puedes saber la distancia. Para ello, simplemente multiplicas el tiempo que tarda en llegar desde el sensor al objeto (dividir entre 2 el tiempo total) 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 harás encender uno u otro LED. Para ello definirás los 2 pines en los que conectes los LEDs como salida y, cuando quieras que esté encendido, le darás un valor alto (HIGH o 1) y cuando quieras que esté apagado le darás un valor bajo (LOW o 0).

  1. Descarga el software Arduino y realiza el proceso de instalación.
  2. Abre el programa Arduino y, una vez en él, copia el siguiente programa:
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 para software de programación por bloques compatible

  1. Descarga el software y realiza el proceso de instalación.
  2. Abre el programa y, una vez en él, copia el siguiente programa:

RESULTADO DEL EJERCICIO

Cuando el sensor detecte un objeto a menos de 20 cm se encenderá el LED rojo y cuando la distancia sea mayor a 20 cm se encenderá el verde.

2 0

0