Buenos dias, estoy arrancando con mi primer proyecto y quisiera algunos consejos para acomodar el codigo de mi solucion.
Básicamente tengo que detectar los eventos Click y UnClick de una serie de fines de carrera que tengo instalados en un porton, no quiero realizarlo por interrupciones ya que tengo pensado mas adelante multiplexar las entradas, y tampoco necesito tiempos de respuesta tan veloces como me darian las interrupciones.
El codigo actual hace algo esto (puede ser que no ande, solo copie algunas lineas del original):
//Pines asignados a las entradas
const int controlRemoto = 2;
boolean ctrlControlRemoto = false;
void setup() {
//A las entradas les activo las resistencias pullup internas http://arduino.cc/es/Tutorial/DigitalPins
pinMode(controlRemoto, INPUT);
digitalWrite(controlRemoto, HIGH);
}
void loop() {
boolean control = digitalRead(controlRemoto);
///Detecto los Click y unClick de cada una de las entradas
//Boton del control
if (control != ctrlControlRemoto)
{
//Algo cambio
if (!control){
//Evento Click
ApretoControl();
}
else{
//Evento UnClick
}
ctrlControlRemoto = control;
}
}
Andar anda, pero quisiera poder meter toda esta lógica dentro de alguna librería (pensando en la futura multiplexacion), y que sea simple de implementar.
Yo tenia pensado inicializar esta librería pasándole un array con con tanta cantidad de items como entradas tenga, donde en cada posición del array se corresponde con la función que quiero que ejecute para el evento click de esa entrada... de entiende?
Cambien podría hacerse con eventos, pero la verdad no se como se implementan acá, si hay que usar delegados o cosas por el estilo ya empezaría a complicarse la implementacion.
Muchas Gracias!
PD: Se aceptan toda clase de sugerencia sobre sintaxis, scope de variables, buenas practicas, etc.