[SOLUCIONADO ]Secuencia de leds con pulsadores

Buenas tardes o noches. Necesito algo de ayuda en la programación de un circuito de secuencias con 5 pulsadores y 5 LEDs. No se si estoy haciendo algo mal o la conexión en el breadboard este mal, y por eso necesito su ayuda.

La secuencia de los 5 LEDs va algo así:

-LEDs uno por uno
-Todos los LEDs a la vez
-LED 1 Y LED 5, LED 2 Y LED 4 Y solo el LED3
-LED Dos por uno [1,1,0,0,0. 0,1,1,0,0. 0,0,1,1,0...]
-Todo en orden

Este es el código el cual necesito corrección:

int led1 = 13;    
int botonled1 = 7;   
int led2 = 12;    
int botonled2 = 6; 
int led3 = 11;    
int botonled3 = 5; 
int led4 = 10;    
int botonled4 = 4; 
int led5 = 9;    
int botonled5 = 3; 
 

void setup() {

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(botonled1, INPUT);
  pinMode(botonled2, INPUT);
  pinMode(botonled3, INPUT);
  pinMode(botonled4, INPUT);
  pinMode(botonled5, INPUT);

}

void loop() {

 if (botonled1 == LOW) {
  digitalWrite(led1, HIGH);
  delay(500); 
  digitalWrite(led1, LOW);
  delay(500); 
  digitalWrite(led2, HIGH);
  delay(500);
  digitalWrite(led2, LOW);
  delay(500); 
  digitalWrite(led3, HIGH);
  delay(500); 
  digitalWrite(led3, LOW);
  delay(500);
  digitalWrite(led4, HIGH);
  delay(500); 
  digitalWrite(led4, LOW);
  delay(500); 
  digitalWrite(led5, HIGH);
  delay(500); 
  digitalWrite(led5, LOW);
  delay(500); 
//Este es solo la primera secuencia del primer pulsador. Es un ejemplo para el resto.
   }
 }

Agradecería mucho al que me ayudase. Y lo siento si esta un poco raro, es mi primera vez hablando acá.

Pues no lo se, como no pones el circuito que estas usando solo puedo adivinar como van tus PULSADORES.

Bueno haces un " if (botonled1 == LOW) { " , eso me dice que los tienes en pull_up con o sin resistencia, (léete el enlace anterior), si los tienes con resistencia quiétasela y conecta el pulsador directamente a GND configurando el pin en el setup en modo INPUT_PULLUP como hago en el código que te propongo.

int led1 = 13;
int botonled1 = 7;
int led2 = 12;
int botonled2 = 6;
int led3 = 11;
int botonled3 = 5;
int led4 = 10;
int botonled4 = 4;
int led5 = 9;
int botonled5 = 3;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(botonled1, INPUT_PULLUP);
  pinMode(botonled2, INPUT_PULLUP);
  pinMode(botonled3, INPUT_PULLUP);
  pinMode(botonled4, INPUT_PULLUP);
  pinMode(botonled5, INPUT_PULLUP);
}

void loop() {
  if (digitalRead (botonled1) == LOW) {
    digitalWrite(led1, HIGH);
    delay(500);
    digitalWrite(led1, LOW);
    delay(500);
    digitalWrite(led2, HIGH);
    delay(500);
    digitalWrite(led2, LOW);
    delay(500);
    digitalWrite(led3, HIGH);
    delay(500);
    digitalWrite(led3, LOW);
    delay(500);
    digitalWrite(led4, HIGH);
    delay(500);
    digitalWrite(led4, LOW);
    delay(500);
    digitalWrite(led5, HIGH);
    delay(500);
    digitalWrite(led5, LOW);
    delay(500);
  }
 if (digitalRead (botonled2) == LOW) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    delay (2000);
    apaga();
  }
  if (digitalRead (botonled3) == LOW) {
    // Coloca aqui los digitalWrite () para el encendido y apagado de los leds necesarios
  }
  if (digitalRead (botonled4) == LOW) {
    // Coloca aqui los digitalWrite () para el encendido y apagado de los leds necesarios
  }
  if (digitalRead (botonled5) == LOW) {
    // Coloca aqui los digitalWrite () para el encendido y apagado de los leds necesarios
  }
}

void apaga() {
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
}

Ibas bien solo te faltaban los 4 " if " restantes . Te hecho la función 2 las otras no tengo claro que es lo que quieres hacer termínalas tu.

Respecto a esos " if (botonled? == LOW) { ", esto no funciona nunca, piensa que botonled? tiene un valor fijo, el del pin a leer y no lo lees, luego nunca será LOW y nunca se ejecutara el " if". Has de leer el pin como lo hago yo, " if (digitalRead (botonled1) == LOW) { ".

Como ves he creado la FUNCION apaga() que como ves te apaga todos los led, creo que te será útil para lo que te queda de código úsala cuanto te haga falta.

Moderador
Por favor edita el tiulo de acuerdo al punto 5 de las normas.
Te envio un privado con mas intrucciones.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.