Arduino Tutorial 21: Entrada edificio con sensores infrarrojos

En esta entrada os vamos a enseñar como podemos contar las personas que entran en un edificio poniendo dos barreras infrarrojas a la entrada.
esquema
Esquema del montaje

Componentes necesarios

  • Dos pares de diodos infrarrojos (dos emisores y dos receptores).
  • 2 leds (rojo y verde).
  • 4 resistencias de 10K.
  • Una lcd.
  • Un potenciómetro.
  • Una protoboard.
  • Arduino.

Sensores infrarrojos

Antes de empezar vamos a explicar un poco estos sensores. La barrera infrarroja se compone por un diodo infrarrojo (emisor) y un fototransistor (receptor). Son muy parecidos a un led común, algunos emisores los encontramos transparentes o con un ligero color en púrpura y los receptores en trasparentes o negros, estos últimos por un filtro UV que les permite trabajar mejor incluso expuesto a la luz solar.
El fototransistor (aunque parezca un led corriente) debe conectarse con la patilla larga a masa y la corta a voltaje.

 

infrarrojos

 

Para esta práctica nosotros hemos usado como emisor el led infrarrojo tranparente y como receptor el fototransistor de color negro.
 
fototransistor
 
Una vez distinguidos los diodos vamos a explicar el planteamiento: lo primero de todo es que hemos distinguido entre las personas que entran y las que salen. Las personas que entran, primero pasan la primera barrera y después la segunda. Por el contrario, las personas que salen, primero pasan la segunda barrera y después la primera. Para este caso, solo vamos a contar las personas que entran al edificio.
Además, hemos introducido dos leds (uno verde y otro rojo) para detectar por que barrera se está pasando. Si pasamos por la primera barrera, se encenderá el led verde, y si pasamos por la segunda se encenderá el rojo.
 

Código

#include <LiquidCrystal.h>
LiquidCrystal lcd(10, 9, 8, 7, 6, 5);

int luces_1=13;       //verde
int luces_2=12;      //rojo

//barreras infrarrojas
const int barrera_infrarroja_1 = A4;      // lectura del Fototransistor de la primera barrera
const int barrera_infrarroja_2 = A5;      // lectura del Fototransistor de la segunda barrera
int Medida_infrarrojo_1 = 0;                 // Inicializamos el valor del sensor de la primera barrera
int Medida_infrarrojo_2 = 0;                // Inicializamos el valor del sensor de la segunda barrera
boolean barrera_1=false;
boolean barrera_2=false;
int contador=0;

void setup(){
  Serial.begin(9600);            // Inicializa el puerto serie
  pinMode(luces_1, OUTPUT);
  pinMode(luces_2, OUTPUT);
}

void loop(){
  lcd.setCursor(0,0);
  lcd.print("PERSONAS: ");
  lcd.print(contador);

  Medida_infrarrojo_1 =analogRead(barrera_infrarroja_1);
  Medida_infrarrojo_2 =analogRead(barrera_infrarroja_2);

  if(Medida_infrarrojo_1<400){
    digitalWrite(luces_1,HIGH);
    if(barrera_2==true){
      barrera_2=false;
    }
    else{
      barrera_1=true;
    }
  }
  else{
    digitalWrite(luces_1,LOW);
  }

  if(Medida_infrarrojo_2<400){
    digitalWrite(luces_2,HIGH);
    if(barrera_1==true){
      contador=contador+1;
      barrera_1=false;
    }
    else{
      barrera_2=true;
    }
  }

  else{
    digitalWrite(luces_2,LOW);
  }

}

Vídeo explicativo

 

 

Guardar

Guardar

Deja un comentario

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