Pages: [1]   Go Down
Author Topic: ¿Ejecutar codigo una sola vez?  (Read 934 times)
0 Members and 1 Guest are viewing this topic.
Buenos Aires, Argentina
Offline Offline
Newbie
*
Karma: 0
Posts: 28
kill kill!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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?
Logged

Donostia
Offline Offline
God Member
*****
Karma: 3
Posts: 744
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Onda
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
This is personal...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
}
Logged

---
Saludos,
José Chorva
www.pepechorva.com
@pepechorva on twitter

Pages: [1]   Go Up
Jump to: