Go Down

Topic: ¿Ejecutar codigo una sola vez? (Read 1 time) previous topic - next topic

thevjfla

Hola, estoy intentando que una parte de codigo se ejecute una vez sola, en este caso el "blink" que solo lo haga un par de veces

Code: [Select]
void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
}

void loop() {
  int var = 0;
  while(var < 2){
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
  var++;
  }
}


¿El led de el pin 13, no tendria que apagarse y prenderse dos veces?

ionhs

Mete todo el codigo en setup. En loop se repite una y otra vez lo que hay dentro. Salu2

PepeChorva

Lo que estás haciendo es asignar el valor 0 a "var" cada vez que repites el loop y, por tanto, repitiendo el blink siempre.
Pon "int var = 0;" en setup o, como dice ionhs, ponlo todo en setup.

Una forma para verlo claro es crearte el blink como una función void, por ejemplo;
Code: [Select]
void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
  blink();
  blink();
}

void loop()
{}
void blink(){
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}
---
Saludos,
José Chorva
www.pepechorva.com
@pepechorva on twitter

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy