ah quedado perfecto gracias @surbyte y @gatul la parte del delay aun no la entiendo del todo como manejarlo pero el código ha funcionado como se pensó en un primer momento.
const int a = 6;
const int b = 7;
const int c = 8;
const int d = 9;
const int e = 10;
const int f = 11;
const int g = 12;
const int alarmaocupacion=13;
const int alarmasalavacia=2;
const int botonIncremento = 4;
const int botonDecremento = 3;
const int tiempoAntiRebote = 3;
int cuenta = 0;
int estadoBotonIncremento;
int estadoBotonAnteriorIncremento;
int estadoBotonDecremento;
int estadoBotonAnteriorDecremento;
boolean antirebote(int pin){
int contador = 0;
boolean estado;
boolean estadoAnterior;
do {
estado = digitalRead(pin);
if (estado != estadoAnterior){
contador = 0;
estadoAnterior = estado;
}
else {
contador = contador + 1;
}
delay(1);
} while(contador < tiempoAntiRebote);
return estado;
}
void setup() {
pinMode(6,OUTPUT);//a
pinMode(7,OUTPUT);//b
pinMode(8,OUTPUT);//c
pinMode(9,OUTPUT);//d
pinMode(10,OUTPUT);//e
pinMode(11,OUTPUT);//f
pinMode(12,OUTPUT);//g
pinMode(13,OUTPUT);//alarmadeocupacion
pinMode(2,OUTPUT);//alarmasalavacia
pinMode(botonIncremento, INPUT);
pinMode(botonDecremento, INPUT);
Serial.begin(9600);
}
void actualizarNumero() {
switch(cuenta) {
case 0: //numero 0
digitalWrite (6, HIGH);
digitalWrite (7, HIGH);
digitalWrite (8, HIGH);
digitalWrite (9, HIGH);
digitalWrite (10, HIGH);
digitalWrite (11, HIGH);
digitalWrite (12, LOW);
digitalWrite (2, HIGH);
digitalWrite (13, LOW);
break;
case 1: //numero 1
digitalWrite (6, LOW);
digitalWrite (7, HIGH);
digitalWrite (8, HIGH);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, LOW);
digitalWrite (2, LOW);
digitalWrite (13, LOW);
break;
case 2: //numero 2
digitalWrite (6, HIGH);
digitalWrite (7, HIGH);
digitalWrite (8, LOW);
digitalWrite (9, HIGH);
digitalWrite (10, HIGH);
digitalWrite (11, LOW);
digitalWrite (12, HIGH);
digitalWrite (2, LOW);
digitalWrite (13, LOW);
break;
case 3: //numero 3
digitalWrite (6, HIGH);
digitalWrite (7, HIGH);
digitalWrite (8, HIGH);
digitalWrite (9, HIGH);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, HIGH);
digitalWrite (2, LOW);
digitalWrite (13, LOW);
break;
case 4: //numero 4
digitalWrite (6, LOW);
digitalWrite (7, HIGH);
digitalWrite (8, HIGH);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, HIGH);
digitalWrite (12, HIGH);
digitalWrite (2, LOW);
digitalWrite (13, LOW);
break;
case 5: //numero 5
digitalWrite (6, HIGH);
digitalWrite (7, LOW);
digitalWrite (8, HIGH);
digitalWrite (9, HIGH);
digitalWrite (10, LOW);
digitalWrite (11, HIGH);
digitalWrite (12, HIGH);
digitalWrite (2, LOW);
digitalWrite (13, LOW);
break;
case 6: //numero 6
digitalWrite (a, HIGH);
digitalWrite (b, LOW);
digitalWrite (c, HIGH);
digitalWrite (d, HIGH);
digitalWrite (e, HIGH);
digitalWrite (f, HIGH);
digitalWrite (g, HIGH);
digitalWrite (2, LOW);
digitalWrite (13, HIGH);
break;
}
}
void loop() {
estadoBotonIncremento = digitalRead(botonIncremento);
if(estadoBotonIncremento !=estadoBotonAnteriorIncremento) {
if(antirebote(botonIncremento)) {
cuenta++;
if(cuenta >6) {
cuenta = 6;
{
String cadena;
Serial.print("ha ingresado un paciente");
Serial.println("sobre cupo en la clinica "+cadena);
}
}
}
}
estadoBotonAnteriorIncremento = estadoBotonIncremento;
estadoBotonDecremento = digitalRead(botonDecremento);
if(estadoBotonDecremento !=estadoBotonAnteriorDecremento) {
if(antirebote(botonDecremento)) {
cuenta--;
if(cuenta <= 0) {
cuenta = 0;
{
String cadena;
Serial.print("se ha desocupado las salas ");
Serial.println("La alarma verde se activa cuando esta vacia la sala "+cadena);
}
}
}
}