Hola @tauro0221.
de nuevo más muchas gracias por tu ayuda.
Probé el Sketch que me compartiste, pero al instante se encendieron los leds de salida, asi que tomando tus ejemplos realicé algunos cambios menores que felizmente funcionaron como quería.
tambien entendi como se hace un "nuevo caso", entonces cambié un poco la "tabla" y logre hacer funcionar como quería la secuencia de leds, de aquí en adelante espero lograr todas las demás secuencias que necesito.
estoy muy agradecido por tu ayuda, es bueno saber que hay personas con mucho conocimiento que tienen la voluntad de ayudar y enseñar.
Muchas gracias, que tengas un excelente dia.
comparto el Sketch final que tengo para que quizá le pueda ayudar a alguien más.
//***********************************************
//Sketch compartido y revisado por tauro0221: Si quieres leer las entradas de A0-A6 debes de leer el puerto C
//************************************************
int port_c = 0;
void setup() {
Serial.begin(9600);
DDRC = DDRC = B0000000; //ejemplo aqui haces que todos los puetos A0-A6 sean input
pinMode(2, OUTPUT);//A
pinMode(3, OUTPUT);//B
pinMode(4, OUTPUT);//C
pinMode(5, OUTPUT);//D
pinMode(6, OUTPUT);//E
pinMode(7, OUTPUT);//F
pinMode(8, OUTPUT);//G
pinMode(9, OUTPUT);//H
}
//************************************************
void loop() {
port_c = PINC; //leer los puertos A0-A5
Serial.print("Port C = "); Serial.println( port_c, BIN);
turn_on_leds();
delay(500);
}
//***************************************************
void turn_on_leds() {
port_c = PINC;
if ( port_c == 0); //PORTC = B000000; //apaga todos los A0 - A6
digitalWrite(2, LOW); //A
digitalWrite(3, LOW); //B
digitalWrite(4, LOW); //C
digitalWrite(5, LOW); //D
digitalWrite(6, LOW); //E
digitalWrite(7, LOW); //F
digitalWrite(8, LOW); //G
digitalWrite(9, LOW); //H
switch (port_c) {
case 1://led A = ON
digitalWrite(2, HIGH);
Serial.println("Case 1 - A = ON");
break;
case 2: //led B = ON
digitalWrite(3, HIGH);
Serial.println("Case 2 - B = ON");
break;
case 3: //LED E,H = ON
digitalWrite(6, HIGH);
digitalWrite(9, HIGH);
Serial.println("Case 3 - E,H = ON");
break;
case 4: //LED C = ON
digitalWrite(4, HIGH);
Serial.println("Case 3 - C = ON");
break;
case 5: //LED A,C = ON
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
Serial.println("Case 5 - A,C = ON");
break;
case 6: // LED F,H = ON
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
Serial.println("Case 5 - F,H = ON");
break;
case 7: //No hace nada
Serial.println("Case 7 - SIN ACCION");
break;
case 8: //LED D = ON
digitalWrite(5, HIGH);
Serial.println("Case 8 - D = ON");
break;
case 9: //LED F,G = ON
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
Serial.println("Case 9 - F,G = ON");
break;
case 10: //LED B,D = ON
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
Serial.println("Case 10 - B,D = ON");
break;
case 11: //No hace nada
Serial.println("Case 11 - SIN ACCION");
break;
case 12: //LED E,G = ON
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
Serial.println("Case 12 - E,G = ON");
break;
default:
// statements
break;
}
}
//***********************************************************
//PUERTO C
//BINARIO DECIMAL ACCION
// 8421
//------- ------- -------------------------
// 0000 0 Todos los leds apagados
// 0001 1 Led A = ON (demas leds apagados)
// 0010 2 Led B = ON (demás leds apagados)
// 0011 3 Led E,H = ON (demás leds apagados)
// 0100 4 Led C = ON (demás leds apagados)
// 0101 5 Led A,C = ON (demás leds apagados)
// 0110 6 Led F,H = ON (demás leds apagados)
// 0111 7 NO HACE NADA (todos leds apagados
// 1000 8 Led D = ON (demás leds apagados)
// 1001 9 Led F,G = ON (demás leds apagados)
// 1010 10 Led B,D = ON (demás leds apagados)
// 1011 11 NO HACE NADA (todos leds apagados)
// 1100 12 Led E,G = ON (demás leds apagados)