如何在arduino uno上为我的二进制游戏添加一个while语句给这段代码

时间:2016-12-16 14:00:50

标签: arduino-uno

this is my code

const int buttonPin = 2;   // de pin van het knopje 
const int ledPin =  4;     // ledjes 1 tm 4
const int ledPin2=  6;
const int ledPin3=  8;
const int ledPin4= 10;
const int ledPinGOED= 12;  // de ledpin die aangeeft of het antwoord goed of fout is



int buttonState = LOW;        // staat van de buttonpin
int x = 0;                    // aan x word een willekeurige waarde toegekend die in binair word weergegeven 
int teller = 0;               // teller is de waarde die bijhoudt hoeveel er op de knop gedrukt is
int LastbuttonState = LOW;    // de laatste status van de button 

void setup() {
  randomSeed(analogRead(0)); // Start de randomseed generator

  pinMode(ledPin, OUTPUT);   // Zet de ledpins op output
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPinGOED, OUTPUT);
   // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT); // Zet de button op input 
}
void loop(){


if (x == 0) {     // als int getal op 0 staat word er een nieuw random getal gekozen
   x = random(1, 16);
}

if (x >= 8) {         // als x gelijk of groter is dan 8 gaat het ledje branden
   digitalWrite(ledPin4, HIGH);
   x=x-8;
}if(x >= 4) {        // als x gelijk of groter is dan 4 gaat het ledje branden
   digitalWrite(ledPin3, HIGH);
   x=x-4;
}if(x >= 2) {        // als x gelijk of groter is dan 2 gaat het ledje branden
   digitalWrite(ledPin2, HIGH);
   x=x-2;
}if(x = 1) {        // als x gelijk is aan 1 gaat het ledje branden
   digitalWrite(ledPin, HIGH);
   x=x-1;
}




if 
 (unsigned long start = millis ()) { // lange variabele die geen negatieven opslaat, start waarde is de timer vanaf wanneer de knop voor het laatst ingedrukt is uitgedrukt in millis
  while (millis() - start <=2000){   // als er 2 seconden voorbij zijn dan gaat de statement door naar de volgende if statements
  buttonState = digitalRead(buttonPin); // de knop word gelezen vanuit pin 2 
  delay(100);                           // er word 100ms gewacht tussen de read en de if statement om misreads te voorkomen (werkt niet perfect)
  if (LastbuttonState == LOW and buttonState == HIGH){ // als de knop ingedrukt word 
  LastbuttonState = buttonState;        // Lastbuttonstate word buttonstate
  teller=teller+1;                      // er word 1 bij teller opgeteld 
  start = millis();}                    // startwaarde word gereset 

else { (LastbuttonState = buttonState); // anders blijft de lastbuttonstate hetzelfde 
} 
  } 



if (teller==x) {    // als teller gelijk is aan het getal gaan de 4 ledjes uit en brand het goede ledje voor 2 seconden
digitalWrite(ledPin, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPinGOED, HIGH);
delay (2000);
digitalWrite(ledPinGOED, LOW);
x=0;               // x word gereset naar 0 (dit triggert de loop)
teller=0;              // teller word gereset naar 0
}

else if (teller<=getal or teller>=getal){    // als teller kleiner of groter is dan het getal gaan de 4 ledjes uit en knippert het goede ledje 
 digitalWrite(ledPin, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPinGOED, HIGH);
delay (500);
digitalWrite(ledPinGOED, LOW);
delay (500);
digitalWrite(ledPinGOED, HIGH);
delay (500);
digitalWrite(ledPinGOED, LOW);
x=0;                // x word gereset naar 0 (dit triggert de loop)
teller=0;              // teller word gereset naar 0

}


} }

我在哪里可以使用while语句?

我已经接近尾声,但老师说它应该用在代码的二进制部分,我可能能够改变一个if语句,但我无法弄清楚哪一个

0 个答案:

没有答案