Ya llevo una semana pensando en como hacer para que funcione el programa. El programa consiste en controlar 8 relés mediante 4 pulsadores(UP/ DOWN para seleccionar el relé y LEFT/ RIGHT para activar o desactivar el seleccionado).
Si alguien sabe como hacer que funcione, por favor que me lo explique. Me estoy empezando a deprimir pero estoy empezando con el tema este de programar y me interesaría seguir.
//RELÉS
int RLY1= 22;
int RLY2= 23;
int RLY3= 24;
int RLY4= 25;
int RLY5= 26;
int RLY6= 27;
int RLY7= 28;
int RLY8= 29;
//PULSADORES
int UP= 30; //RELÉ ANTERIOR
int DOWN= 31; //SIGUIENTE RELÉ
int LEFT= 32; //DESACTIVAR
int RIGHT= 33; //ACTIVAR
//VARIABLES
int i=0;
int RLY[8]={1, 2, 3, 4, 5, 6, 7, 8};
bool estadoanterior = HIGH;
void setup() {
Serial.begin(9600);
pinMode(22,OUTPUT);
pinMode(23,OUTPUT);
pinMode(24,OUTPUT);
pinMode(25,OUTPUT);
pinMode(26,OUTPUT);
pinMode(27,OUTPUT);
pinMode(28,OUTPUT);
pinMode(29,OUTPUT);
pinMode(30,INPUT_PULLUP);
pinMode(31,INPUT_PULLUP);
pinMode(32,INPUT_PULLUP);
pinMode(33,INPUT_PULLUP);
}
void loop() {
RLY[0]=RLY1;
RLY[1]=RLY2;
RLY[2]=RLY3;
RLY[3]=RLY4;
RLY[4]=RLY5;
RLY[5]=RLY6;
RLY[6]=RLY7;
RLY[7]=RLY8;
i = constrain(i, 0, 7);
if(digitalRead(UP)==HIGH){
i++;
delay(750);
}
if(digitalRead(DOWN)==HIGH){
i--;
delay(750);
}
if (digitalRead(RIGHT)==HIGH && estadoanterior==HIGH){
digitalWrite(RLY[i],!HIGH);
estadoanterior = HIGH;
}
else if (digitalRead(LEFT)==HIGH){
digitalWrite(RLY[i],!LOW);
estadoanterior = LOW;
}
Serial.print(i);
Serial.print(estadoanterior);
Serial.println();
}