Buenas tardes a todos los del foro, tengo un diseño con un conmutador rotativo mecanico de 7 pasos, y quiero reemplazarlo por 7 pulsadores, cada pulsador tiene dos led, uno verde y uno rojo, cuando inicie el programa arrancaran encendidos todos los led verdes y cuando pulse uno de los 7 pulsadores ese pulsador hara cambiar el color del led de verde a rojo y mantenerse todo el tiempo hasta que se accione cualquier otro pulsador el cual este tambien cambiara de color a sus dos correspondientes leds y el antiguo boton pulsado que esta en rojo se volvera a su color verde como al principio, es decir solo habra un led rojo encendido que es el seleccionado uno de los 7 y los demas quedaran en verde, si se pulsa de nuevo el pulsador que esta en rojo no habra ningun cambio de color ;
para economizar lineas del Arduino los pulsadores seran con resistencias en serie y leidos con analogRead
y para los 14 leds quiero utilizar una matriz de led con 74HC595 los cuales serian solo tres lineas del arduino clock data y latch
tengo el siguiente codigo que es con el conmutador mecanico.
void LCDMODE(){
if (active != activeold)
activeold = active;
if (digitalRead(12)==0 and active != 12) { // Sets up the LCD when switching to BOTON1)
lcd.setCursor(0, 0);
delay (11);
lcd.print("BOTON1 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print(BOTON1);
lcd.setCursor(0, 1);
delay (11);
lcd.print("STBY ");
lcd.setCursor(9, 1);
delay (11);
lcd.print(BOTON1sb);
active = 12;
}
if (digitalRead(A0)==0 and active != A0) { // Sets up the LCD when switching to BOTON2)
lcd.setCursor(0, 0);
delay (11);
lcd.print("BOTON2 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print(cBOTON2);
lcd.setCursor(0, 1);
lcd.print("STBY ");
lcd.setCursor(9, 1);
delay (11);
lcd.print(BOTON2sb);
active = A0;
}
if (digitalRead(A1)==0 and active != A1) { // Sets up the LCD when switching to BOTON3)
lcd.setCursor(0, 0);
delay (11);
lcd.print(" BOTON3 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print( BOTON3);
lcd.setCursor(0, 1);
lcd.print("STBY ");
lcd.setCursor(9, 1);
delay (11);
lcd.print( BOTON3sb);
active = A1;
}
if (digitalRead(A2)==0 and active != A2) { // Sets up the LCD when switching to BOTON4)
lcd.setCursor(0, 0);
delay (11);
lcd.print("BOTON4 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print(BOTON4);
lcd.setCursor(0, 1);
lcd.print("STBY ");
lcd.setCursor(9, 1);
delay (11);
lcd.print(BOTON4sb);
active = A2;
}
if (digitalRead(A3)==0 and active != A3) { // Sets up the LCD when switching to BOTON5)
lcd.setCursor(0, 0);
delay (11);
lcd.print("BOTON5 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print(BOTON5);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
if (mark == 9 ){mark = 10;}
lcd.setCursor(mark, 1);
lcd.print("-");
active = A3;
}
if (digitalRead(A4)==0 and active != A4) { // Sets up the LCD when switching to BOTON6)
lcd.setCursor(0, 0);
delay (11);
lcd.print(" BOTON6 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print( BOTON6);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" BOTON6 ");
lcd.setCursor(9, 1);
delay (11);
lcd.print( BOTON6);
active = A4;
}
if (digitalRead(A5)==0 and active != A5) { // Sets up the LCD when switching to BOTON7)
lcd.setCursor(0, 0);
delay (11);
lcd.print(" BOTON7 ");
lcd.setCursor(9, 0);
delay (11);
lcd.print( BOTON7);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(mark, 1);
lcd.print("-");
active = A5;
}
} // end of LCDmode
Por mi parte estoy trabajando en este proyecto cualquier ayuda seria muy agradecida, cuando termine de hacer el proyecto lo publicare para el beneficio de todos gracias.