Arduino rocker spelet (3 / 3 steg)
Steg 3: Ladda upp koden
Börja med ett ögonblick utan dröjsmål exempel för att förstå slutprojektet.
En gång gjort, ladda slutprojektet. Se till att korrekt styrelsen väljs! Du har tre liv, varje gång du klickar på knappen när ljuset inte är på mellersta LED, förlorar du ett liv. När du får slut på liv, spelet startar om. När du klickar på knappen när ljuset är på mitten LED, ljus rock snabbare. Tack och lycka till!
Här är koden
int LEDpos = 1;
int lysdioder [] = {1,2,3,4,5,6,7,8,9}. int ledStateA = låg; int var = 10; int status = 0; int knappen = 13. int liv = 3;
ledState används för att ange LED långa previousMillis = 0; kommer att lagra förra gången LED uppdaterades
långa intervall = 500. intervall som blinka (millisekunder)
void setup() {//All lysdioder är ange för (int en = 2; en < 11; a ++) {pinMode (a, utgång);} pinMode (knapp, indata); Serial.BEGIN(9600); }
void loop() {if(lives==0) //Setting start intervall {intervall = 500;}
Upptäcka om knappen trycks if(digitalRead(button) == låg) {Serial.println("pressed"); if(LEDpos==6) / / knappen trycktes på mellersta LED! {intervall / = 1,5; / / minska intervall; LED blinkar snabbare //Blink mellersta LED två gånger för användaren märker han vann! digitalWrite(6,HIGH); Delay(200); digitalWrite(6,LOW); Delay(200); digitalWrite(6,HIGH); Delay(200); digitalWrite(6,LOW); Serial.println ("LEVEL UP"); } annat / / knappen var tryckte men inte på mitten ledde :( {delay(200); digitalWrite (LED [1], hög); liv--; / / användaren förlorat ett liv} if(lives==0) {intervall = 500. Serial.println ("GAME OVER"); {}} osignerade långa currentMillis = millis();
om (currentMillis - previousMillis > intervall) {if(status==0) {om (LEDpos > 9) status = 1; annat LEDpos ++;} if(status==1) //Reached början {om (LEDpos < 3) status = 0; annat {LEDpos--; if(LEDpos == 2) status = 0;}} / / spara den senaste gången du blinkade LED previousMillis = currentMillis; //Turn av alla lysdioder för (int x = 2; x < = 10; x ++) {digitalWrite (x, låg);}
Slå på LED digitalWrite (LEDpos, hög); }
}