Metro Digital con Arduino

Como hacer un metro digital con Arduino

Hola amigos tecnólogos, en nuestra entrada de hoy os presentamos un sencillo pero llamativo proyecto. Haremos un metro digital con Arduino, una pantalla LCD y un sensor de distancia por ultrasonidos.

Materiales necesarios

Arduino UNO R3 Arduino UNO R3
Pantalla LCD 16x2 Pantalla LCD 16×2
Sensor de distancia Ultrasónico HC-SR04 Sensor de distancia Ultrasónico HC-SR04

Conozcamos mejor la pantalla LCD 16×2

Esta pantalla es una de las más utilizadas por los aficionados a la electrónica. 

Estas pantallas tienen dos lineas en las que podemos escribir hasta un máximo de 16 caracteres.

La que usaremos es de color azul e incorpora iluminación trasera.

Para trabajar con la LCD, Arduino incluye una librería en su entorno de programación.

Agregar Biblioteca Arduino

Basta con incluir esa librería en nuestro trabajo y asignarle los pines correspondientes para poder usarla.

#include <LiquidCrystal.h>// incluimos las librería:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Declaramos los pines que usa nuestra pantalla(RS,E,D4,D5,D6,D7)

Conociendo el sensor HC-SR04

El HC-SR04 es un sensor capaz de medir a la distancia que se encuentran los objetos. Esto lo hace gracias a que un emisor de ultrasonidos emite una serie de pulsos, un receptor percibe los rebotes y nosotros con nuestra electrónica de control medimos el tiempo que transcurre desde que se emite esos pulsos hasta que son recibidos los rebotes.

Caracteristicas

Distancia de detección
Tensión de trabajo5V
Angulo de detección15 a 20 grados

Descripción de los pines

Vcc5V
TiggerPin para comenzar la medición
EchoPin que nos indica cuando ha recibido el rebote de ultrasonidos
GND0V

Este sensor se puede utilizar con una librería, la cual nos evitaría todos los cálculos necesarios. Puedes descargar la librería en el siguiente enlace:

Para más información del HC-SR04, descargar la hoja de datos aquí:

Montaje del metro digital por ultrasonidos

En el siguiente esquema se muestra de que forma se conectan todos los componentes del proyecto entre si.

Esquema del montaje lcd 16x2
Para este proyecto Trigger PIN sera el pin 9 y Echo PIN sera el Pin 8 en nuestra placa Arduino

Código

Cargamos el siguiente código en Arduino

// incluimos las librerias:
#include <LiquidCrystal.h>
#include <Ultrasonic.h> 

Ultrasonic sensor(9,8,30000); // (Trig PIN,Echo PIN, microsegundos max "distancia máxima") 30000us = 5 metros

int distancia=0;//Declaramos la variable distancia


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Declaramos los pines que usa nuestra pantalla(RS,E,D4,D5,D6,D7)

void setup() {
  
  lcd.begin(16, 2);//Iniciamos la pantalla y le decimos el numero de caracteres y filas
  
  lcd.setCursor(4, 0);//Situamos el lugar donde empezar la escritura
  lcd.print("LEANTEC");//Escribimos LEANTEC
  delay (2000);//Esperamos dos segundos
  lcd.clear();//Limpiamos la pantalla
  lcd.setCursor(0, 0);
  lcd.print("Robotics &");
  delay (1000);
  lcd.setCursor(5, 1);
  lcd.print("Electronics");
  delay (2000);
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("METRO  DIGITAL");
  delay (1000);
  lcd.setCursor(0, 1);
  lcd.print("POR ULTRASONIDOS");
  delay (2000);
  lcd.clear();
  
  
}

void loop() {
  
  distancia=sensor.Ranging(CM);  // Medimos la distancia y la guardamos en la variable
  lcd.setCursor(0, 0);
  lcd.print("DISTANCIA");
  //////////////////////////////////////////////////////////////////////////////////////////////////////////
  /////////representamos la distancia en la pantalla en la posición que corresponda a su número de digitos
  /////////Así siempre estaremos a la misma distancia de CM.
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  if(distancia<100){
  if (distancia<10){  
  lcd.setCursor(11, 1);//Si distancia tiene menos de 2 digitos representamos 2 espacios en el caracter 11 fila 1, para borrar la escritura anterior
  lcd.print("  ");
  lcd.setCursor(13, 1);//Representamos distancia en la posición correspondiente para que quede pegado a CM
  lcd.print(distancia);}
  else{
  lcd.setCursor(11, 1);//Hacemos lo mismo para distancia de 2 digitos
  lcd.print(" ");
  lcd.setCursor(12, 1);
  lcd.print(distancia);}
  }
  else{
  lcd.setCursor(11, 1);//Hacemos lo mismo para distancias superiores a 2 digitos.
  lcd.print(distancia);
  }
  lcd.setCursor(14, 1);//Anotamos el lugar donde se representa CM
  lcd.print("CM");//Representamos CM.
  
    }

Video

En este vídeo podemos ver como quedo nuestro proyecto ya terminado

Esperamos que les sea de utilidad y no olviden que en nuestro blog encontrará muchos otros post de su interes.


Etiquetas: , , ,

One Comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *