Secuencia de LEDS con pulsador

Se trata de encender y apagar 14 leds secuencialmente al accionar un pulsador se para la secuencia por un 1 segundo y sigue después de dejarlo de oprimir.
Esto es lo que llevo pero no se si voy por buen camino ya que apenas estoy aprendiendo a preogramar.
int led_1 = 0;
int led_2 = 1;
int led_3 = 2;
int led_4 = 3;
int led_5 = 4;
int led_6 = 5;
int led_7 = 6;
int led_8 = 7;
int led_9 = 8;
int led_10 = 9;
int led_11 = 10;
int led_12 = 11;
int led_13 = 12;
int led_14 = 13;

int pulsadorDetener = A0;
int presionado1 = 0;
int contador;

void setup() {
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
pinMode(led_4, OUTPUT);
pinMode(led_5, OUTPUT);
pinMode(led_6, OUTPUT);
pinMode(led_7, OUTPUT);
pinMode(led_8, OUTPUT);
pinMode(led_9, OUTPUT);
pinMode(led_10, OUTPUT);
pinMode(led_11, OUTPUT);
pinMode(led_12, OUTPUT);
pinMode(led_13, OUTPUT);
pinMode(led_14, OUTPUT);
pinMode(pulsadorDetener, INPUT);

}

void loop() {
if (digitalRead(pulsadorDetener) == HIGH) {
presionado1 = 0;
contador++;

if (contador > 13)
{
contador = 0;
}
}

Pasate por la documentación y haz una lectura de los tutoriales Como no leer un boton y como si debemos hacerlo y Entender millis y no morir en el intento. Y si buscas más en la sección de documentación encontrarás otro tutorial hecho por mi que te da la solución…

De paso, te aconsejo que te leas las normas para postear correctamente el código y que el moderador no te regañe.

Hola @jesus200804 en principio vas bien encauzado solo detecto un error en tu código, solo veo un error en le definicion de pulsador Detener, lo defines como una varia ble de tipo entero, ese tipo de variable no puede contener la definicion de un puerto, la programación correcta seria " #define pulsadorDetener = A0; "
.Ya solo te queda encender los led secuencialmente , sin olvidarte de apagar el anterior. Ese código te ha quedado muy “elegante” pero algo largo yo lo simplificaria un poco:


#define pulsadorDetener = A0;
int presionado1,contdor; //Por defecto su valor inicial ya es cero

void setup() {
  for (int y=0; y<=13; y++){pinMode(y, OUTPUT);}
  pinMode(pulsadorDetener, INPUT);
  }

void loop() {
if (digitalRead(pulsadorDetener) == HIGH) {
presionado1 = 0;
contador++;

if (contador > 13) {contador = 0;}
}

Y no estaria de mas que le hicieras caso a @victorjam , aunque de momento no va mal usar delays como pretendes ,animo falta poco.
Saludos

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