Smart board-spel (11 / 21 steg)
Steg 11: BuzzWire modul: koden
Modulen bör se ut så här. Om du vill skapa hela spelet modulen kan du hoppa över detta steg. Programvaran för full modulen kommer att vara lite ytterligare i detta instructable. Om du vill bygga denna modul kan bara du hålla läsa.
En sak som är mycket viktigt att notera är att koppar är mycket känsliga. Det kommer att plocka upp några elektriska fält nära genom. På grund av detta har koden dess om uttalande programmerad för högre än 1000. Även så här koden är fortfarande mycket instabil, föreslår jag att inte spela det här spelet medan du har en hel del elektrisk utrustning i närheten av någon anledning verkar det att plocka upp det elektriska fältet från utrustningen.
Detta är koden för den buzzwire modulen som en fristående:
int wireRodPin = A3; int wireFeedbackPin = 53;
int BuzzHit = 0;
void setup() {
pinMode (wireRodPin, ingång);
pinMode (wireFeedbackPin, produktionen);
}
void loop() {
BuzzHit = analogRead(wireRodPin);
om (BuzzHit > 1000) {
digitalWrite (wireFeedbackPin, hög);
Delay(1500);
digitalWrite (wireFeedbackPin, låg);
} annat {
digitalWrite (wireFeedbackPin, låg);
}
currentButtonState = digitalRead(buttonGCPin);
om (currentButtonState == hög & & lastButtonState == låg) {
}
lastButtonState = currentButtonState;
}
Koden för den BuzzWire modulen är mycket simpeler än koden för simon säger modul. Men grunderna är desamma. Först definiera vi vars,
int wireRodPin = A3;
int wireFeedbackPin = 53;
int BuzzHit = 0;
Än setup:
pinMode (wireRodPin, ingång);
pinMode (wireFeedbackPin, produktionen);
Än den spela funktion som kallas av spelet loopen:
////////////////////////////////////////////////////////////////////////
// //
BuzzWire funktioner / /
// //
////////////////////////////////////////////////////////////////////////
void buzzwire() {
BuzzHit = analogRead(wireRodPin);
om (BuzzHit > 1000) {
digitalWrite (wireFeedbackPin, hög);
Delay(1500);
digitalWrite (wireFeedbackPin, låg);
liv--;
} annat {
digitalWrite (wireFeedbackPin, låg);
}
currentButtonState = digitalRead(buttonGCPin);
om (currentButtonState == hög & & lastButtonState == låg) {
bor = 5;
}
lastButtonState = currentButtonState;
}
Som ni kan se den verkliga funktionen är ganska enkel. Vi kontrollerar i princip bara om staven vidrör koppar ramen. Om det händer förlorar du ett liv. Om du gör det du måste trycka på kommer att en knapp och ditt liv ställas in till 5, än spelet vet att spelaren har vunnit.
Det finns en ganska bra anledning varför vi valde att göra win villkor en knapp. Vi har försökt att göra det så att i slutet av Förkopprabinda hade en annan tråd atached om som skulle vidröras med stav du skulle vinna. Även tho trådarna där inte röra vi inte kunde få det att fungera. Av någon anledning de två kablarna falsade störa varandra så vi skrapade den del och whent för en knapp.