Presentación de un novato y problema con bucle for
hola todos.
hace poco me han regalado una placa arduino uno, y falta de otro hardware, de momento, y con unas nociones muy básicas de c, estoy dedicándome enredar con el pin 13 y su led.
mi idea es modificar el programa blink para incrementar el tiempo de encendido y apagado por ejemplo en un segundo en cada ciclo. me resultó fácil hacerlo con uno de los valores del delay, dejando el otro constante, pero después de muchos intentos y búsquedas no encuentro la forma de hacerlo en ambos valores.
he llegado esto:
/* incremento del tiempo de encendido y apagado en 100 ms en cada ciclo*/
int tiempo;
int tiempo2;
void setup() {
serial.begin(9600);
pinmode(13,output);
}
void loop() {
for(int i=1; i<=1000; i=i+100) { //incremento en 100ms en cada ciclo.
tiempo=i;
}
for(int e=2; e<=1000; e=e+100) { // lo hago =2 para distinguirlo de cuando compruebe sus valores.
tiempo2=e;
}
digitalwrite(13,high);
delay(tiempo);
serial.println(tiempo); // compruebo el valor de i.
digitalwrite(13,low);
delay(tiempo2);
serial.println(tiempo2); // compruebo el valor de e.
}
pero sólo consigo valores de un segundo. ¿cuál es mi fallo?
un saludo y gracias por la atención.
hace poco me han regalado una placa arduino uno, y falta de otro hardware, de momento, y con unas nociones muy básicas de c, estoy dedicándome enredar con el pin 13 y su led.
mi idea es modificar el programa blink para incrementar el tiempo de encendido y apagado por ejemplo en un segundo en cada ciclo. me resultó fácil hacerlo con uno de los valores del delay, dejando el otro constante, pero después de muchos intentos y búsquedas no encuentro la forma de hacerlo en ambos valores.
he llegado esto:
/* incremento del tiempo de encendido y apagado en 100 ms en cada ciclo*/
int tiempo;
int tiempo2;
void setup() {
serial.begin(9600);
pinmode(13,output);
}
void loop() {
for(int i=1; i<=1000; i=i+100) { //incremento en 100ms en cada ciclo.
tiempo=i;
}
for(int e=2; e<=1000; e=e+100) { // lo hago =2 para distinguirlo de cuando compruebe sus valores.
tiempo2=e;
}
digitalwrite(13,high);
delay(tiempo);
serial.println(tiempo); // compruebo el valor de i.
digitalwrite(13,low);
delay(tiempo2);
serial.println(tiempo2); // compruebo el valor de e.
}
pero sólo consigo valores de un segundo. ¿cuál es mi fallo?
un saludo y gracias por la atención.
al final de los bucles, las variables tiempo y tiempo 2 siempre terminan valiendo los mismo, por eso no te cambia el tiempo de parpadeo.
para que el tiempo sea variable, tienes que poner la parte de encendido/apagado del led dentro del bucle for. mira este ejemplo con el mismo tiempo de encendido y apagado.
para que el tiempo sea variable, tienes que poner la parte de encendido/apagado del led dentro del bucle for. mira este ejemplo con el mismo tiempo de encendido y apagado.
code: [select]
void loop()
{
for(int tiempo=1; tiempo<=1000; tiempo=tiempo+100)
{
digitalwrite(13,high);
delay(tiempo);
digitalwrite(13,low);
delay(tiempo);
}
}
Arduino Forum > International > Español (Moderators: surbyte, Hector_A) > Presentación de un novato y problema con bucle for
arduino
Comments
Post a Comment