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)
}
}
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)'
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?
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
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
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.
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