Hola amigos, estoy haciendo un proyecto que trata sobre un contador de entrada y salida de una tienda con arduino, tiene que llevar dos sensores infrarrojos (uno en cada puerta) y un display de 7 segmento con Circuito Integrado.
Cuando interrumpo la señal del "sensor_entrada" se tiene que sumar 1 a un contador, luego se tiene que mostrar el valor del contador en el display.
Cuando interrumpo la señal del "sensor_salida" se tiene que restar 1 al contador y luego volver a mostrar en el display.
Ya conecte todo bien en el arduino y la protoboard, el problema es al momento de programar.
No me deja poner las lecturas de los sensores seguido, si lo hago no me lee la segunda lectura, solo me lee la primera.
Saben como puedo solucionarlo?
Gracias de antemano : )
int A=2;
int B=3;
int C=4;
int D=5;
int sensor_entrada=8;
int sensor_salida=10;
int entrada=0;
int salida=0;
int contador=0;
void setup() {
pinMode(A,OUTPUT);
pinMode(B,OUTPUT);
pinMode(C,OUTPUT);
pinMode(D,OUTPUT);
pinMode(sensor_entrada,INPUT);
pinMode(sensor_salida,INPUT);
contador=0;
Serial.begin(9600);
}
void loop() {
entrada=digitalRead(sensor_entrada);
if(entrada==LOW)
{
contador++;
do{
entrada=digitalRead(sensor_entrada);
} while(entrada!=HIGH);
}
salida=digitalRead(sensor_salida);
if(salida==LOW)
{
contador--;
do{
salida=digitalRead(sensor_salida);
} while(salida!=HIGH);
}
if(contador<0){
contador=0;
}
else if(contador>9){
contador=0;
}
switch(contador)
{
case 0:{
cero();
break;
}
case 1:{
uno();
break;
}
case 2:{
dos();
break;
}
case 3:{
tres();
break;
}
case 4:{
cuatro();
break;
}
case 5:{
cinco();
break;
}
case 6:{
seis();
break;
}
case 7:{
siete();
break;
}
case 8:{
ocho();
break;
}
case 9:{
nueve();
break;
}
}
}
void cero(){
digitalWrite(A,0);
digitalWrite(B,0);
digitalWrite(C,0);
digitalWrite(D,0);
}
void uno(){
digitalWrite(A,1);
digitalWrite(B,0);
digitalWrite(C,0);
digitalWrite(D,0);
}
void dos(){
digitalWrite(A,0);
digitalWrite(B,1);
digitalWrite(C,0);
digitalWrite(D,0);
}
void tres(){
digitalWrite(A,1);
digitalWrite(B,1);
digitalWrite(C,0);
digitalWrite(D,0);
}
void cuatro(){
digitalWrite(A,0);
digitalWrite(B,0);
digitalWrite(C,1);
digitalWrite(D,0);
}
void cinco(){
digitalWrite(A,1);
digitalWrite(B,0);
digitalWrite(C,1);
digitalWrite(D,0);
}
void seis(){
digitalWrite(A,0);
digitalWrite(B,1);
digitalWrite(C,1);
digitalWrite(D,0);
}
void siete(){
digitalWrite(A,1);
digitalWrite(B,1);
digitalWrite(C,1);
digitalWrite(D,0);
}
void ocho(){
digitalWrite(A,0);
digitalWrite(B,0);
digitalWrite(C,0);
digitalWrite(D,1);
}
void nueve(){
digitalWrite(A,1);
digitalWrite(B,0);
digitalWrite(C,0);
digitalWrite(D,1);
}