Blog Search

Recent Articles

Tutorial Arduino: Contador con barrera laser

Tutorial Arduino: Contador con barrera laser

Tutorial Arduino: Contador con barrera laser


Hola amigos tecnólogos; en nuestra entrada de hoy veremos como montar un contador con una barrera laser. 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.
-LCD 16x2
-Potenciometro.
-LDR
-Laser 5mW
-Resistencia de 1K y 220Ohm
-Protoboard 
-Cables de conexión

¿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. El primer esquema muestra la conexión de la pantalla.

pantalla lcd 16x2 arduino
En el siguiente esquema se muestra cual es la forma de conectar la LDR con Arduino.

ldr 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 el siguiente vídeo podemos ver el contador con barrera laser funcionando.

4Comentarios

    • Avatar
      Alex Gregory
      jun 8, 2016

      Necesito desarrollar este kit, uds venden la barrera laser o me pueden recomendar conde comprarla Gracias

    • Avatar
      sonny
      oct 7, 2016

      Disculpa, me gustaría saber de cuantos K son los ldr que ocupaste :/

      • Avatar
        Bruno
        nov 12, 2016

        comúnmente lo venden a 10 mega ohms, así que ese te puede servir

    • Avatar
      Gustavo
      jul 1, 2017

      Que tal, disculpa me parece una muy buena aportación, tengo un proyecto parecido, me podrías ayudar y decirme que significa el numero 600 en esta parte de tu código o en que te basas para sacarlo, de verdad me ayudarías mucho de antemano gracias. while(valorLDR<"600")... (lo que esta entre comillas).

Leave a Reply

* Name:
* E-mail: (Not Published)
   Website: (Site url withhttp://)
* Comment:
Type Code