Icono del sitio MECABOT

Práctica 29. Encender y apagar varios LED dependiendo de la distancia que mida un sensor de ultrasonido HC-SR04

29.1 Objetivo General:

Encender y apagar  diferentes LED dependiendo de la distancia que mida un sensor de ultrasonido  HC-SR04. 

En la sección de Tutoriales->Arduino podrán encontrar todas las prácticas relacionadas con la tarjeta Arduino

IMPORTANTE:

La práctica 1 te enseña como encender y apagar un (1) solo LED. Consúltala antes de hacer esta práctica.

La practica 8 te enseña como controlar un dispositivo de ultrasonido HC-SR04 a.

29.2 Materiales y métodos:

  1. Siete LEDs
  2. Siete resistencias de 220Ω.
  3. Una tarjeta Arduino.
  4. Un cable USB impresora.
  5. Un computador.
  6. Cables para el montaje del circuito.
  7. Protoboard.
  8. Un sensor de ultrasonido HC-SR04 o PING de Parallax.

29.3  Montaje de la práctica:

     Antes de comenzar la realización del montaje del circuito electrónico, se debe realizar el circuito en el programa Fritzing o en tinkercad.  Se debe tener en cuenta el conocimiento de cuál es el cátodo y ánodo del LED. Se coloca el ánodo a los pin que queramos configurar como salidas y el cátodo a tierra (ground), recordemos usar una resistencia para protección de nuestro circuito y prevenir interferencias. Recordemos de la practica numero 8 como se realizaban las conexiones de un sensor de ultrasonido HC-SR04, el pin trigger que envía la señal y el pin echo que la recibe.

Figura 1. Montaje del circuito para el sensor HC-SR04.

     Se observa en la Figura 1 que se está utilizando el Arduino Uno, si se utiliza la tarjeta Arduino Uno-R3 o Arduino Mega el mismo procedimiento. Como se observa en la Figura 2, el Protoboard nos ayuda a insertar el LED e instalar el circuito a través de cables, al igual que la resistencia eléctrica y el sensor de ultrasonido. La línea que esta de color rojo que conecta el VCC a la tarjeta Arduino emite los 5V al estar conectado la tarjeta al computador (El computador es capaz de proveerle Arduino 5V). Para proteger el circuito y evitar que al que los pin que conectemos los leds no le llegue más de 5V, le colocamos al circuito unas resistencias eléctricas a cada led, la cual llevara en gran parte de esa señal a tierra.

Figura 2. Sensor de Ultrasonido utilizado en la práctica Imagen de https://www.hwlibre.com/hc-sr04/.

     Luego que tengamos armado el circuito en el programa Fritzing, se comienza con el desarrollo del programa en el IDE de Arduino.

29.4 IDE de Arduino para la práctica:

1. Se selecciona la tarjeta Arduino que se está utilizando sea Arduino Uno-R3 o Arduino Mega 2560.

2. Se selecciona el Puerto Serial. Bajo que puerto USB se va a conectar el Arduino con el computador.

3. Se empieza a realizar el código:

NOTA: Para que el IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

// Medir distancia con sensor ultrasonido HC-SR04 y encender Led
#include<NewPing.h>
int trigger = 10; // declaramos la palabra trigger como un tipo entero y al mismo tiempo reemplaza al pin 9
int echo = 9; // declaramos la palabra echo como un tipo entero y al mismo tiempo reemplaza al pin 8
#define  max_distance 400
NewPing sonar(trigger, echo, max_distance); // NewPing setup of pins and maximum distance.
void setup() {
  Serial.begin (9600);   // establemos la comucicacion serial
  pinMode (trigger, OUTPUT); // declarmos el pin 9 como salida
  pinMode (echo, INPUT);   // declaramos el 8 como entrada
  pinMode(2,OUTPUT);
   pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
     pinMode(5,OUTPUT);
      pinMode(6,OUTPUT);
       pinMode(7,OUTPUT); 
        pinMode(8,OUTPUT);
}
void loop() {
unsigned int  uS=sonar.ping (); 
{
  Serial.print("distancia: "); // escribe los datos enviados
  Serial.print(uS/US_ROUNDTRIP_CM); //Convierte el tiempo de ping a la distancia en cm y el resultado de la impresin 
  Serial.print("cm"); // muestra los datos en cm
}
delay (1000);
if (uS/US_ROUNDTRIP_CM>=30 && uS/US_ROUNDTRIP_CM<=400) // Todos los leds apagados
{
  digitalWrite (2,0);
  digitalWrite (3,0);
  digitalWrite (4,0);
  digitalWrite (5,0);
  digitalWrite (6,0);
  digitalWrite (7,0);
  digitalWrite (8,0);
}
if (uS/US_ROUNDTRIP_CM>=26 && uS/US_ROUNDTRIP_CM <=30)// Todos los leds apagados
{
  digitalWrite (2,1); // enciende el pin 2
  digitalWrite (3,0);
  digitalWrite (4,0);
  digitalWrite (5,0);
  digitalWrite (6,0);
  digitalWrite (7,0);
  digitalWrite (8,0);
}
if (uS/US_ROUNDTRIP_CM>=23 && uS/US_ROUNDTRIP_CM <=26){
  digitalWrite (2,0);
  digitalWrite (3,1); // enciende el pin 3
  digitalWrite (4,0);
  digitalWrite (5,0);
  digitalWrite (6,0);
  digitalWrite (7,0);
  digitalWrite (8,0);
}
if (uS/US_ROUNDTRIP_CM>=20 && uS/US_ROUNDTRIP_CM <=23){
  digitalWrite (2,0);
  digitalWrite (3,0);
  digitalWrite (4,1); // enciende el pin 4
  digitalWrite (5,0);
  digitalWrite (6,0);
  digitalWrite (7,0);
  digitalWrite (8,0);
}
if (uS/US_ROUNDTRIP_CM>=17 && uS/US_ROUNDTRIP_CM <=20){
 digitalWrite (2,0);
  digitalWrite (3,0);
  digitalWrite (4,0);
  digitalWrite (5,1); // enciende el pin 5
  digitalWrite (6,0);
  digitalWrite (7,0);
  digitalWrite (8,0);
}
if (uS/US_ROUNDTRIP_CM>=14 && uS/US_ROUNDTRIP_CM <=17){
  digitalWrite (2,0);
  digitalWrite (3,0);
  digitalWrite (4,0);
  digitalWrite (5,0);
  digitalWrite (6,1); // enciende el pin 6
  digitalWrite (7,0);
  digitalWrite (8,0);
}
if (uS/US_ROUNDTRIP_CM>=11 && uS/US_ROUNDTRIP_CM <=14){
  digitalWrite (2,0);
  digitalWrite (3,0);
  digitalWrite (4,0);
  digitalWrite (5,0);
  digitalWrite (6,0);
  digitalWrite (7,1); // enciende el pin 7
  digitalWrite (8,0);
}
  if (uS/US_ROUNDTRIP_CM>=8 && uS/US_ROUNDTRIP_CM <=11){
  digitalWrite (2,0);
  digitalWrite (3,0);
  digitalWrite (4,0);
  digitalWrite (5,0);
  digitalWrite (6,0);
  digitalWrite (7,0);
  digitalWrite (8,1); // enciende el pin 8
}
}

Algoritmo 1: Encender y apagar varios LED dependiendo de la distancia que mida un sensor de ultrasonido HC-SR04

Implementación del algoritmo 1 en el simulador TinkerCad:

https://www.tinkercad.com/things/hsVbekzhiql

29.5 Conclusión:

En esta práctica se ha introducido un sistema de control por medio de leds mediante la ayuda de la librería Newping de Arduino. Con un sensor también se pueden activar el encendido de uno o varios LED y con el mismo apagarlo. Esto es muy útil si necesitamos no solamente sensores auditivos ya que donde se produce mucho ruido, podríamos utilizar para ver en un control de un robot o dispositivo móvil que este próximo a impactar o rozar contra un objeto, recordando aun así la limitante y los puntos ciegos que tienen los sensores de ultra sonido, pero la gran capacidad de percibir cualquier objeto independientemente de su tamaño, color y forma.

Salir de la versión móvil