0% encontró este documento útil (0 votos)
24 vistas14 páginas

Contador de Personas con LCD y Sensores

Este documento presenta un programa para probar un display LCD I2C de 20x4. Inicializa el display LCD y enciende el backlight. Luego imprime mensajes en diferentes posiciones en el display para probar su funcionamiento correcto. Al final, parpadea el backlight 3 veces antes de terminar.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas14 páginas

Contador de Personas con LCD y Sensores

Este documento presenta un programa para probar un display LCD I2C de 20x4. Inicializa el display LCD y enciende el backlight. Luego imprime mensajes en diferentes posiciones en el display para probar su funcionamiento correcto. Al final, parpadea el backlight 3 veces antes de terminar.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CONTADOR

// Pin de entrada del sensor fototransistor (negro)

int Fototransistor = 7;

int Fototransistor2 = 8;

int ValorFototransistor = 0;

int ValorFototransistor2 = 0;

int Contadorpersonas = 0;

int Contadorpersonas2 = 0;

// Pin de la conexion de LED rojo

int LedRojo = 10;

int LedRojo2 = 9;

// Configuracion Pantalla LCD

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pines para pantalla LCD

void setup()

[Link](9600);

pinMode(Fototransistor, INPUT);

pinMode(LedRojo, OUTPUT);

pinMode(LedRojo2, OUTPUT);

// Informacion pantalla inicial

[Link](20, 4);

[Link](0,0);

[Link]("Grandes: 0");

[Link](0,1);

[Link]("Pequeños");

}
void loop()

ValorFototransistor = digitalRead(Fototransistor);

ValorFototransistor2 = digitalRead(Fototransistor2);

[Link]("ValorFototransistor : ");

[Link]("ValorFototransistor2 : ");

[Link](ValorFototransistor);

[Link](ValorFototransistor2);

delay(100);

if(ValorFototransistor!=1)

digitalWrite(LedRojo, LOW);

Contadorpersonas=Contadorpersonas+1;

[Link]("Grandes: ");

[Link](Contadorpersonas);

while(digitalRead(Fototransistor)!=1){

delay(100);

[Link] ( "El Sensor se detuvo o esta siendo obstruido!");

[Link](10,0);

[Link](Contadorpersonas);

else{

digitalWrite(LedRojo, HIGH);

if(ValorFototransistor2!=1)
{

digitalWrite(LedRojo, LOW);

Contadorpersonas2=Contadorpersonas2+1;

[Link]("Pequeños: ");

[Link](Contadorpersonas2);

while(digitalRead(Fototransistor2)!=1){

delay(100);

[Link] ( "El Sensor se detuvo o esta siendo obstruido!");

[Link](10,0);

[Link](Contadorpersonas2);

else{

digitalWrite(LedRojo2, HIGH);

CONTADOR DE PERSONAS

// Programa : Control de Visitantes

// By: Fermin Benitez

int pinEntrada = 7; // Pin del IR de entrada

int pinSalida = 8; // Pin del IR de salida

int valorEntrada = 0; // Variable que registra el estado del sensor de entrada

int valorSalida = 0; // Variable que registra el estado del sensor de salida

int contEntrada = 0; // Variable que registra la cantidad de visitantes que entraron

int contSalida = 0; // Variable que registra la cantidad de visitantes que salieron

int contSala = 0; // Variable que registra la cantidad de personas en la sala

int contAnterior = 0;
// Configuracion del display LCD

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()

[Link](9600); //Iniciamos el puesrto serial

pinMode(pinEntrada, INPUT);

pinMode(pinSalida, INPUT);

[Link](20, 4); //Iniciamos el display LCD

[Link](0,0); // Informaciones iniciales del display

[Link]("Total grandes: 0");

[Link](0,1);

[Link]("Total pequeños: 0");

[Link](0,2);

[Link]("Total pasando: 0");

[Link](0,3);

[Link]("Total personas: 0");

void loop()

valorEntrada = digitalRead(pinEntrada);

valorSalida = digitalRead(pinSalida);

// Muestra la informacion de los sensores en el puerto serial

[Link]("Grande : ");

[Link](valorEntrada);
[Link](" Pequeño : ");

[Link](valorSalida);

// Comprueba si se ha cambiado el estado del sensor de entrada

if(valorEntrada != 1)

// Incrementa el valor del contador de entrada en 1 unidad

contEntrada = (contEntrada + 1) ;

// Comprueba si la persona / objeto esta delante del sensor

while(digitalRead(pinEntrada) != 1)

delay(50);

[Link]("Sensor de entrada obstruido: ");

[Link](valorEntrada);

[Link](16,0); // Actualiza en el LCD el valor del contador de entrada

[Link](contEntrada);

[Link](16,3); // Actualiza en el LCD el valor total de visitantes

[Link](contEntrada);

// Comprueba si el estado del sensor de salida ha cambiado y si el contador de la sala no ha


llegado a cero

if(valorSalida != 1 && contSala > 0)

// Incrementa el valor del contador de salida en 1 unidad

contSalida=contSalida+1;

while(digitalRead(pinSalida) != 1) // Comprueba si la persona / objeto esta delante


del sensor

delay(50);

[Link]("Sensor de salida esta obstruido: ");


}

[Link](16,1); // Actualiza en el LCD el valor del contador de salida

[Link](contSalida);

// Calcula el numero de visitantes en la sala

contSala = contEntrada - contSalida;

// Verifica si el contador de la sala es igual o mayor a cero

if (contSala >= 0)

[Link](16,2);

[Link](" ");

[Link](16,2);

// Atualiza el LCD con el numero de visitantes en la sala

[Link](contSala);

contAnterior = contSala;

else

//Si el contador de la sala es menor a cero (es posible que se active en contSalida aunque
ya no hayan personas en la sala),

//se mantendra alli hasta que detecte una nueva entrada

contSala = 0;

delay(100);

//
#############################################################################
#############################################################################
###############
FAJA SELECTORA

const int EchoPin = 3;

const int TriggerPin = 4;

const int EchoPin2 = 11;

const int TriggerPin2 = 12;

int in1= 6;

int in2 = 7;

int in3 = 8;

int in4 = 9;

void setup() {

[Link](9600);

pinMode(EchoPin, INPUT);

pinMode(TriggerPin, OUTPUT);

pinMode(EchoPin2, INPUT);

pinMode(TriggerPin2, OUTPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

void discOne(){

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

delay(3000);

digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);

delay(3000);

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

void discTwo(){

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

delay(3000);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

delay(3000);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

void loop() {

int cm=ping(TriggerPin,EchoPin);

[Link]("Distancia:");

[Link](cm);

delay(1000);

int cm2=ping2(TriggerPin2,EchoPin2);

[Link]("Distancia2:");

[Link](cm2);
delay(1000);

int ping(int TriggerPin,int EchoPin){

long duration,distanceCm;

digitalWrite(TriggerPin,LOW);

delayMicroseconds(2);

digitalWrite(TriggerPin,HIGH);

delayMicroseconds(5);

digitalWrite(TriggerPin,LOW);

duration=pulseIn(EchoPin,HIGH);

distanceCm=duration*10/292/2;

if (distanceCm>=5 && distanceCm <=10){

digitalWrite(discOne, HIGH);

if (distanceCm>=10 && distanceCm <=20){

digitalWrite(discOne, LOW);

delay(2000);

return distanceCm;

int ping2(int TriggerPin2,int EchoPin2){

long duration2,distanceCm2;

digitalWrite(TriggerPin2,LOW);

delayMicroseconds(2);

digitalWrite(TriggerPin2,HIGH);

delayMicroseconds(5);

digitalWrite(TriggerPin2,LOW);

duration2=pulseIn(EchoPin2,HIGH);
distanceCm2=duration2*10/292/2;

if (distanceCm2>=10 && distanceCm2 <=20){

digitalWrite(discTwo, HIGH);

if (distanceCm2>=5 && distanceCm2 <=10){

digitalWrite(discTwo, LOW);

delay(2000);

return distanceCm2;

PRUEBA DE DISPLAY 20 X 4

/*

Programa: Prueba del Display I2C LCD 20x4

Autor: Humberto Higinio

Web: [Link]

Canal de Youtube: [Link]

Video Exclusivo para mi canal de Youtube

Todos los Derechos Reservados - 2017

Código de Dominio Público

Conecte Vcc y Ground, SDA a A4, SCL a A5 sobre Arduino

*/

#include <Wire.h> // Lo trae Arduino IDE

#include <LiquidCrystal_I2C.h> // Incluimos la libreria del LCD

// Seteamos la direccion LCD a 0x27 o 0x3F for un display de 20 caracteres 4 lineas

// Seteamos los pines sobre el chip I2C usados para las conexiones del LCD:

// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Seteamos la direccion I2C


void setup()

[Link](20,4); // Inicializamos el lcd para 20 caracteres 4 lineas, Encendemos el


backlight

// ------- Rapidos 3 blinks para el backlight -------------

for(int i = 0; i< 3; i++)

[Link]();

delay(250);

[Link]();

delay(250);

[Link](); // terminamos con el backlight on

//-------- Escribimos caracteres sobre el display ------------------

// NOTA: Posicion del Cursor: Lineas y Caracteres empiezan en 0

[Link](5,0); //Empiezo en la posicion 6 (caracter) sobre la linea 0

[Link]("Hola, Mundo!");

delay(1000);

[Link](2,1);

[Link]("Bienvenidos a mi");

delay(1000);

[Link](2,2);

[Link]("Canal de Youtube");

[Link](2,3);

delay(1000);

[Link]("HUMBERTO HIGINIO");

delay(5000);

[Link](1,0); //Start at character 0 on line 0


[Link]("Esta es una prueba");

[Link](0,1);

[Link]("Display I2C LCD 20x4");

delay(3000);

for(int i = 0; i< 5; i++)

[Link]();

delay(250);

[Link]();

delay(250);

[Link](); // terminamos con el backlight on

delay(3000);

void loop()

ULTRASONICO

const int EchoPin = 5;

const int TriggerPin = 6;

const int LedPin = 13;

void setup() {

[Link](9600);

pinMode(LedPin,OUTPUT);
pinMode(TriggerPin,OUTPUT);

pinMode(EchoPin,INPUT);

void loop() {

int cm=ping(TriggerPin,EchoPin);

[Link]("Distancia:");

[Link](cm);

delay(1000);

int ping(int TriggerPin,int EchoPin){

long duration,distanceCm;

digitalWrite(TriggerPin,LOW);

delayMicroseconds(2);

digitalWrite(TriggerPin,HIGH);

delayMicroseconds(5);

digitalWrite(TriggerPin,LOW);

duration=pulseIn(EchoPin,HIGH);

distanceCm=duration*10/292/2;

if (distanceCm>=30 && distanceCm <=400){

digitalWrite(LedPin, HIGH);

if (distanceCm>=5 && distanceCm <=30){

digitalWrite(LedPin, LOW);

return distanceCm;

También podría gustarte