Contador con Barrera Láser

Tutorial Arduino: Contador con barrera laser

Hola amigos tecnólogos; en nuestra entrada de hoy veremos como montar un contador con una barrera láser. Este contador puede ser útil para hacer un cuenta revoluciones, un sistema de alarma o algún sistema para contar el numero de personas que entran o salen de algún lugar.

Materiales necesarios

Arduino UNO R3 Arduino UNO R3
Pantalla LCD 16x2 Pantalla LCD 16×2
Potenciómetro 10K para uso en protoboard Potenciómetro 10K para uso en protoboard
Fotoresistencia GL5528 Tipo LDR 10K Fotoresistencia GL5528 Tipo LDR 10K
Diodo Laser Rojo 3V 650nm 5mw 6mm Diodo Laser Rojo 3V 650nm 5mw 6mm
Resistencia de 220 Ohm Resistencia 220 Ohm
Resistencia de 1 KOhm Resistencia de 1 Kohm
Protoboard Protoboard
Cables para Protoboard Cables para Protoboard

¿Como funciona la barrera laser?

La barrera laser esta compuesta por un diodo laser, y una LDR. Ambos elemntos están enfrentados de modo que la luz del laser incide directamente sobre la LDR.

La LDR tiene un valor de resistencia cuando la luz del laser esta sobre ella, cuando esta luz es interrumpida por algun elemento el valor de la resitencia de la LDR varia.

Esta variación es detectada por el sistema y añade 1 a la cuenta.

Esquema de conexión

En el siguiente esquema se aprecia como se hace la conexión de los distintos elementos que conforman el proyecto.

Pantalla LCD 16x2 con Arduino UNO
En este primer esquema se muestra la conexión de la pantalla.
Pantalla LCD 16x2 con Arduino UNO
En este esquema se muestra cual es la forma de conectar la LDR con Arduino.

Código

El último paso para hacer funcionar nuestro proyecto es cargar el siguiente código en Arduino, enfrentar el laser con la LDR y comprobar que todo funcione según lo previsto.

/*
  Código desarrollado por LEANTEC Robotics & Electronics. 
  Queda permitido el uso de este código siempre que sea sin ánimo de lucro
 */
 
// incluir libreria
#include <LiquidCrystal.h>

//Declaramos las variables necesarias
int numero=0;
int auxnumero=0;
int sensorPinLDR = A0;
int valorLDR = 0;


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(5, 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 (2000);
  lcd.setCursor(5, 1);
  lcd.print("Electronics");
  delay (2000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("CONTADOR CON");
  delay (2000);
  lcd.setCursor(3, 1);
  lcd.print("BARRERA LASER");
  delay (3000);
  lcd.clear();
  
  
}

void loop() {
  
  valorLDR = analogRead(sensorPinLDR);// Leemos el valor de la LDR y lo guardamos en valorLDR
  lcd.setCursor(0, 0);//Situamos el lugar donde escribiremos
  lcd.print("CONTADOR");//Escribimos contador
  lcd.setCursor(10, 1);//Situamos el lugar donde escribiremos
  lcd.print(numero);//Representamos la variable numero
  
  auxnumero=0;//hacemos la variable auxnumero 0. Esta variable nos ayuda a contar solo 1 cada vez que entremos en el bucle de más abajo
  
  while(valorLDR<600){//Entramos en el bucle si valorLDR es menor de 600. Esto ocurre cuando no da el laser sobre la LDR.
    valorLDR = analogRead(sensorPinLDR);// Leemos el valor de la LDR y lo guardamos en valorLDR
    if(auxnumero==0){// Entramos en el if si auxnumero es 0. Esto solo ocurre la primera vez que recorremos el while.
    numero++;//Sumamos 1 a la variable numero
    auxnumero=1;//hacemos auxnumero 1, para que solo sume una vez 1 a la variable numero cuando estamos dando vueltas dentro del bucle.
      }
    }  
}

Vídeo

En este vídeo podemos ver el contador con barrera láser funcionando




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

Etiquetas: , , ,

8 Comments

Deja una respuesta

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