Busco ayuda para secuenciador de leds

Buenos dias. No se si este es lugar para decir esto, pero no tengo ni idea de programacion y siendo algo tan sumamente sencillo espero que alguien pueda hecharme una mano....

Estoy buscando quien puede programarme un secuenciador para 5 leds que se enciendan en un orden... por ejemplo, llamemoslos del 1 al 5, necesito que este el 3 siempre encendido, y que cuando se pulse un boton, a los 20 segundos cambie al 2, a los 10 segundos cambie al uno, a los 10 segundos al 2, a los 10 segundos al 3, a los 10 segundos al 4 y a los 10 segundos al 5..... y que pasados 40 o 50 segundos se resetee y vuelva a quedarse el led 3 encendido esperando otra vez la orden.....

De verdad, agradeceria muchisimo si pudierais hecharme una mano, ya que como he dicho, no tengo ni idea de programar y esto me queda muuuuy grande. Y reitero que si este no es el sitio adecuado para escrtibir esto, lo siento mucho y ruego al moderador lo traslade al sitio oportuno.

Espero vuestras respuestas. Muchas gracias de antemano. 8)

Efectivamente es bastante sencillo, por eso supongo te lo habrá propuesto tu profesor.
No veo correcto hacerte el código al dedillo.
Pero como todo el mundo necesita un empujoncito aquí va el mio

Si estas en el entorno de programación de Arduino, tienes para cargar varios ejemplos.
Uno de pulsar un boton y encender un LED:

const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

y otros de encender un LED:

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Combinando ambos y con el uso de la función Delay(x milisegundos) para detener el programa un rato podrás conseguir algo.

Eso si, para saber lo que haces tendrás que probar y probar hasta controlar algo la programación. Te será útil

Un saludo

Jopapa
www.jopapa.me

Muchísimas gracias por tu respuesta pero te aseguro que no me lo pide nadie... Te explico...
Es para hacer una simulación de unas luces de una botonera de un ascensor, para un pasaje del terror de un amigo.... Y de verdad os digo que no tengo ni idea de programar.... Tengo el arduino porque soy un impulsivo y lo compre por otro proyecto que pensé pero quedó en saco roto, y este amigo me comento la posibilidad de hacer que una simulación de ascensor se movieran las luces de la botonera como sí estuviese subiendo y después bajando....

Por eso pedía ayuda, porque no creo que con lo espeso que soy para el tema de la programación, alguien pudiera hecharme un cable y hacerme un programa pequeño y sencillo.

Sea cual sea el final, agradezco a todos y cada uno que haya leído el post y este en su mano el hecharnos un cable. Y que quede latente, estáis invitados a nuestros pasajes...

Gracias.

Aquí lo tienes. Lo he probado en el simulador y parece que va.

const int ledPin3 = 13; // ledpin3 seria el simulado y el 13 el pin del Arduino. Los demás igual
const int ledPin2 = 12;
const int ledPin1 = 11;
const int ledPin4 = 10;
const int ledPin5 = 9;

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initializar los LED pin como output:
pinMode(ledPin3, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
digitalWrite(ledPin3, HIGH); //situacion inicial
// initializar el pushbutton pin como input:
pinMode(buttonPin, INPUT);
}

void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {

digitalWrite(ledPin3, LOW);
// turn LED 2 on:
digitalWrite(ledPin2, HIGH);
delay(1000); //retardo para pasar de un LED a otro. Aquí es un segundo
digitalWrite(ledPin2, LOW);
// turn LED 2 on:
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
// turn LED 2 on:
digitalWrite(ledPin2, HIGH);
delay(1000);
digitalWrite(ledPin2, LOW);
// turn LED 2 on:
digitalWrite(ledPin3, HIGH);
delay(1000);
digitalWrite(ledPin3, LOW);
// turn LED 2 on:
digitalWrite(ledPin4, HIGH);
delay(1000);
digitalWrite(ledPin4, LOW);
// turn LED 2 on:
digitalWrite(ledPin5, HIGH);
delay(1000);
digitalWrite(ledPin5, LOW);
delay(100);
}
delay(1000);
digitalWrite(ledPin3, HIGH);
}
}

Espero te sirva.

Jopapa
www.jopapa.me

Muchisimas gracias Jopapa, te aseguro que no te dare mas el follon e intentare modificar los tiempos yo solo....

MUCHISIMAS GRACIAS :slight_smile: :slight_smile: