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语句,但我无法弄清楚哪一个