[SOLUCIONADO] Ayuda con este código para principiante. Gracias

Encender 9 leds con tiempos diferentes al pulsar el pulsador de "encendido" y que se apaguen con tiempos diferentes al pulsar el pulsador de "apagado"
Adjunto código. Gracias

int ledPin1 = 4;   // Salida led 
int ledPin2 = 5;   // Salida led 
int ledPin3 = 6;   // Salida led 
int ledPin4 = 7;   // Salida led 
int ledPin5 = 8;   // Salida led 
int ledPin6 = 9;   // Salida led 
int ledPin7 = 10;  // Salida led 
int ledPin8 = 11;  // Salida led 
int ledPin9 = 12;  // Salida led 
int inputPin1 = 2; // pulsador 1 encendido
int inputPin2 = 3; // pulsador 2 apagado
 
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(ledPin8, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(inputPin1, INPUT);
pinMode(inputPin2, INPUT);
}
 
void loop(){
if (digitalRead(inputPin1) == HIGH) {
digitalWrite(ledPin1, HIGH);
delay(30000);
digitalWrite(ledPin2, HIGH);
delay(30000);
digitalWrite(ledPin3, HIGH);
delay(30000);
digitalWrite(ledPin4, HIGH);
delay(30000);
digitalWrite(ledPin5, HIGH);
delay(30000);
digitalWrite(ledPin6, HIGH);
delay(30000);
digitalWrite(ledPin7, HIGH);
delay(30000);
digitalWrite(ledPin8, HIGH);
delay(30000);
digitalWrite(ledPin9, HIGH);
delay(30000);

}
else if (digitalRead(inputPin2) == HIGH) {
digitalWrite(ledPin1, LOW);
delay(30000)
digitalWrite(ledPin2, LOW);
delay(30000)
digitalWrite(ledPin3, LOW);
delay(30000)
digitalWrite(ledPin4, LOW);
delay(30000)
digitalWrite(ledPin5, LOW);
delay(30000)
digitalWrite(ledPin6, LOW);
delay(30000)
digitalWrite(ledPin7, LOW);
delay(30000)
digitalWrite(ledPin8, LOW);
delay(30000)
digitalWrite(ledPin9, LOW);
delay(30000)
}
}

algo asi?

byte ledPin[9] = {4,5,6,7,8,9,10,11,12}; // Salidas led
byte inputPin1 = 2; // pulsador 1 encendido
byte inputPin2 = 3; // pulsador 2 apagado
unsigned long TiemposEncendido[9] = {1000,1500,2000,2500,3000,3500,4000,4500,5000};
unsigned long TiemposApagado[9] = {5000,4500,4000,3500,3000,2500,2000,1500,1000};

void setup()
{
for (int i = 0; i < 9; i++)
{
pinMode(ledPin*, OUTPUT);*

  • }*
  • pinMode(inputPin1, INPUT);*
  • pinMode(inputPin2, INPUT);*
    }

void loop()
{

  • if (digitalRead(inputPin1) == HIGH)*
  • {*
  • for (int i = 0; i < 9; i++)*
  • {*
    _ digitalWrite(ledPin*, HIGH);_
    _ delay(TiemposEncendido);
    }
    }
    else if (digitalRead(inputPin2) == HIGH)
    {
    for (int i = 0; i < 9; i++)
    {
    digitalWrite(ledPin, LOW);
    delay(TiemposApagado);
    }
    }
    }[/quote]*_

Muchas Gracias ....lo voy a probar ya que soy muy novato.
Es para encender (leds) para iluminar las casitas de mi belén.
Cuando el pulsador de encendido da un pulso alto ó se mantiene en alto...se empiezan a encender los leds con distintos tiempos...esto es para el atardecer y cuando el pulsador de apagado da un pulso alto o se mantiene en alto...los leds encendidos se tienen que apagar con distintos tiempos esto es para el amanecer.
Espero haberme explicado mejor..
Salu2
( Para mi estas muy adelantado en programacion y me cuesta mucho entender...pero bueno espero que con el tiempo vaya aprendiendo algo más.)

Lo compilo y me dan estos errores....:
sketch_oct08a.ino: In function 'void setup()':
sketch_oct08a:12: error: invalid conversion from 'byte*' to 'uint8_t'
sketch_oct08a:12: error: initializing argument 1 of 'void pinMode(uint8_t, uint8_t)'
sketch_oct08a.ino: In function 'void loop()':
sketch_oct08a:24: error: invalid conversion from 'byte*' to 'uint8_t'
sketch_oct08a:24: error: initializing argument 1 of 'void digitalWrite(uint8_t, uint8_t)'
sketch_oct08a:25: error: invalid conversion from 'long unsigned int*' to 'long unsigned int'
sketch_oct08a:25: error: initializing argument 1 of 'void delay(long unsigned int)'
sketch_oct08a:32: error: invalid conversion from 'byte*' to 'uint8_t'
sketch_oct08a:32: error: initializing argument 1 of 'void digitalWrite(uint8_t, uint8_t)'
sketch_oct08a:33: error: invalid conversion from 'long unsigned int*' to 'long unsigned int'
sketch_oct08a:33: error: initializing argument 1 of 'void delay(long unsigned int)'

Muchos errores veo voy marcando en rojo
Todos los errores asociados con los vectores que definen y no usan.

byte ledPin[9] = {4,5,6,7,8,9,10,11,12}; // Salidas led
byte inputPin1 = 2; // pulsador 1 encendido
byte inputPin2 = 3; // pulsador 2 apagado
unsigned long TiemposEncendido[9] = {1000,1500,2000,2500,3000,3500,4000,4500,5000};
unsigned long TiemposApagado[9] = {5000,4500,4000,3500,3000,2500,2000,1500,1000};

void setup()
{
for (int i = 0; i < 9; i++)
{
pinMode(ledPin*, OUTPUT);*

  • }*
  • pinMode(inputPin1, INPUT);*
  • pinMode(inputPin2, INPUT);*
    }

void loop()
{

  • if (digitalRead(inputPin1) == HIGH)*
  • {*
  • for (int i = 0; i < 9; i++)*
  • {*
  • digitalWrite(ledPin[ i ], HIGH);*
  • delay(TiemposEncendido[ i ]);*
  • }*
  • }*
  • else if (digitalRead(inputPin2) == HIGH)*
  • {*
  • for (int i = 0; i < 9; i++)*
  • {*
  • digitalWrite(ledPin[ i ], LOW);*
  • delay(TiemposApagado[ i ]);*
  • }*
  • }*
    }
    }
    Bueno dos recomendaciones:
    1) no se porque cuando se pastea un codigo entre corchetes y se pone como [ code ] [/ code ] los corchetes y su interior desaparecen.
    2) lo que ves en rojo va sin espacios. Corchete i corchete

Surbyte & Marcia.........no se si lo he realizado de forma correcta..pero me siguen dando errores....lo siento.....no entinedo muy bien que hay que poner dentro de los corchetes...... :
sketch_oct09a.cpp: In function 'void setup()':
sketch_oct09a:11: error: invalid conversion from 'byte*' to 'uint8_t'
sketch_oct09a:11: error: initializing argument 1 of 'void pinMode(uint8_t, uint8_t)'
sketch_oct09a.cpp: At global scope:
sketch_oct09a:36: error: expected declaration before '}' token

byte ledPin[9] = {4,5,6,7,8,9,10,11,12};   // Salidas led
byte inputPin1 = 2; // pulsador 1 encendido
byte inputPin2 = 3; // pulsador 2 apagado
unsigned long TiemposEncendido[9] = {1000,1500,2000,2500,3000,3500,4000,4500,5000};
unsigned long TiemposApagado[9] = {5000,4500,4000,3500,3000,2500,2000,1500,1000};

 
void setup()
{
  for (int i = 0; i < 9; i++)
  {
    pinMode(ledPin, OUTPUT);
  }
  pinMode(inputPin1, INPUT);
  pinMode(inputPin2, INPUT);
}
 
void loop()
{
  if (digitalRead(inputPin1) == HIGH)
  {
    for (int i = 0; i < 9; i++)
    {
      digitalWrite(ledPin[i], HIGH);
      delay(TiemposEncendido[i]);
    }
  }
  else if (digitalRead(inputPin2) == HIGH)
  {
    for (int i = 0; i < 9; i++)
    {
      digitalWrite(ledPin[i], LOW);
      delay(TiemposApagado[i]);
    }
  }
}
}

Encender 9 leds con tiempos diferentes al pulsar el pulsador de "encendido" y que se apaguen con tiempos diferentes al pulsar el pulsador de "apagado"
Adjunto código. Gracias

A ver: ¿el código que posteas (el inicial) te funciona?

Saludos

No funciona...Gracias

No funciona...Gracias

¿Da errores al compilar o no va en la placa?

Saludos

Da errores al compilar..Gracias.

Francisco x dios, hablamos español no?
Bueno dos recomendaciones:
lo que ves en rojo va sin espacios. Corchete i corchete
Esto es corchete [
esto es corchete que cierra ]
el indice i va entre corches SIN ESPACIOS pero cuando lo escribo junto aca, no se ve
asi deben ponerse

[i]
o sea ledpin[i]

bueno te adjunté el archivo, lo descargas y lo pruebas.
Si me dices que no anda viajo a españa y te acogoto, jajajaja

LedFrancisco.ino (803 Bytes)

Da errores al compilar..Gracias.

Coño, postea los errores, hombre . . .!

PERDON por mi torpeza...a todos.

vffgaston:

Da errores al compilar..Gracias.

Coño, postea los errores, hombre . . .!

pero si los ha posteado, son todos aquellos vectores que no tiene el indice
esto puso en su ultimo codigo donde puso el indice entre corchetes pero en algunos no lo puso y enotros lo hizo con espacios y eso que le puse SIN ESPACIOS

sketch_oct09a.cpp: In function 'void setup()':
sketch_oct09a:11: error: invalid conversion from 'byte*' to 'uint8_t'
sketch_oct09a:11: error: initializing argument 1 of 'void pinMode(uint8_t, uint8_t)'
sketch_oct09a.cpp: At global scope:
sketch_oct09a:36: error: expected declaration before '}' token

Muchas gracias por vuestra paciencia y gran ayuda.
Surbyte.... de nuevo mis GRACIAS (Mira cuando puedas el privado). El código adjunto, que me pone Surbyte, funciona perfectamente ( mi nuevo Belén iluminado ..je...je....)ahora me toca ver todo los errores que he cometido ...que no son pocos.....
Su Surbyte biene a Tenerife....Tomariamos cervezas ...seguro...y despues se iría
amargado por tantas pregunta que le haría...je...je....
De nuevo y a todos muy agradecido...intentando mejorar ...pero voy demasiado poco a poco...PACIENCIA.....debo tener.
Salu2

<perdona Francisco2v, no llegue a compilarlo y no vi que faltaban los indices en los vectores :blush:

pero si los ha posteado, son todos aquellos vectores que no tiene el indice
esto puso en su ultimo codigo donde puso el indice entre corchetes pero en algunos no lo puso y enotros lo hizo con espacios y eso que le puse SIN ESPACIOS

Me da la sensación de que al código inicial le faltaban los ";" en una serie de líneas (que, por lo demás, estaba muy ordenadito y "limpio"); luego alguien propuso una sofisticación del código que, funcione o no, para un principiante que iba tan bien como mínimo despista.

Yo, con lo de que "postee el código" seguía el método socrático.

Saludos a todos.

Muchas GRACIAS de nuevo a todos....
Salu2

Prueben lo que les digo.
Si escriben un código entre corchetes sin ponerle los delimitadores de código [ code ][ / code ] entonces no sale
vean esto

lendpin[i]

como ven esto se ve porque esta entre delimitadores de código peroooo francisco inicio o copió su código sin los delimitadores entonces repito el mismo codigo ledpin[ i ] pero ahora en la siguiente linea verán que ocurre

lendpin
les repito lo he escrito asi ledpin[ i ] claro que sin espacios, pero al verse queda invisible la parte de corchetes