Hur man gör ett brädspel med Arduino (4 / 7 steg)
Steg 4: Förbereda krets med Arduino Duemilanove
För hjälp att komma igång med Arduino, besök: http://arduino.cc/en/Guide/HomePage. Se till att konfigurationen fungerar, prova att köra exemplet "Blink": http://www.arduino.cc/en/Tutorial/Blink
Upptäcka en knapptryckning.
Ändra koden för "Blink" så att digital stift 6 ligger högt och mata 5 volt. Hitåt, när banan är stängd med en knapptryckning, läses spänningen från stift 5. När knappen inte är intryckt, banan är öppen och analoga stift 5 läser 0.
int ledPin = 13. LED är ansluten till digital stift 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analog 5
int btnValue = 0;
int prevValue = 0;
boolean isPressed = false;
void setup() / / kör en gång, när skissen startar
{
pinMode (ledPin, produktionen); / / sätter digital PIN-koden som utgång
pinMode (btnPin, ingång); / / ta 5V i, vidarebefordra det till stift 5
Serial.BEGIN(9600);
}
void loop() / / kör om och om igen
{
digitalWrite (powerPin, hög); / / skicka 5V
btnValue = analogRead(btnPin);
om (btnValue > 512 & & prevValue < 512) {
Serial.println("Pressed");
digitalWrite (ledPin, hög);
Delay(500);
}
annars om (btnValue < 512 & & prevValue > 512) {
Serial.println("Released");
digitalWrite (ledPin, låg);
}
annat {
digitalWrite (ledPin, låg);
}
prevValue = btnValue;
}
Lägga till led i din krets, en i taget, och ändra din kod för att se till att du kan styra var och en individuellt när knappen trycks.
int ledPin = 13. LED är ansluten till digital stift 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analog 5
int btnValue = 0;
int prevValue = 0;
boolean isPressed = false;
lång randomPin = 0;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int threashold = 700;
void setup() / / kör en gång, när skissen startar
{
pinMode (ledPin, produktionen); / / sätter digital PIN-koden som utgång
pinMode (btnPin, ingång); / / ta 5V i, passera den på stift 5
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
Serial.BEGIN(9600);
}
void loop() / / kör om och om igen
{
digitalWrite (powerPin, hög); / / skicka 5V
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
om (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, låg);
}
annars om (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
om (prevValue - btnValue > 50) {
Serial.println ("ledde");
randomPin = random (2, 5); / / 2, 3, 4
Serial.println(randomPin);
digitalWrite (randomPin, hög);
Delay(1000);
}
digitalWrite (randomPin, låg);
}
prevValue = btnValue;
digitalWrite (randomPin, låg);
Delay(50);
}
Fortsätta att ändra koden så att nu en random tänds när du trycker på knappen.
int ledPin = 13. LED är ansluten till digital stift 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analog 5
int btnValue = 0;
int prevValue = 0;
boolean isPressed = false;
lång randomPin = 0;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int threashold = 700;
int prevRandom = 0;
void setup() / / kör en gång, när skissen startar
{
pinMode (ledPin, produktionen); / / sätter digital PIN-koden som utgång
pinMode (btnPin, ingång); / / ta 5V i, passera den på stift 5
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
Serial.BEGIN(9600);
}
void loop() / / kör om och om igen
{
digitalWrite (powerPin, hög); / / skicka 5V
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
om (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, låg);
}
annars om (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
om (prevValue - btnValue > 50) {
Serial.println ("ledde");
slå på lysdioder slumpmässigt
för (int jag = 0; jag < 5; i ++) {
digitalWrite (2, hög).
Delay(200);
digitalWrite (2, låg).
Delay(100);
digitalWrite (3, hög).
Delay(200);
digitalWrite (3, låg).
Delay(100);
digitalWrite (4, hög).
Delay(200);
digitalWrite (4, låg).
Delay(100);
}
Delay(1000);
Aktivera korrigera/random PIN-koden
randomPin = random (2, 5); / / 2, 3, 4
Serial.println(randomPin);
digitalWrite (randomPin, hög);
Delay(5000);
}
digitalWrite (randomPin, låg);
}
prevValue = btnValue;
digitalWrite (randomPin, låg);
Delay(50);
}
Ändra din kod ytterligare så att nu, lysdioderna blinka vid en stund innan upplysande en slumpmässigt valda LED. Denna LED anger hur många blanksteg en spelare kan flytta sin spelpjäs.
int ledPin = 13. LED är ansluten till digital stift 13
int powerPin = 14. / / digital 6
int btnPin = 2; / / analog 5
int btnValue = 0;
int prevValue = 0;
boolean isPressed = false;
lång randomPin = 0;
int threashold = 700;
int prevRandom = 0;
/ / Lysdioder 19, 10 11
int led1 = 19,
int led2 = 10,
int led3 = 11.
void setup() / / kör en gång, när skissen startar
{
pinMode (btnPin, ingång); / / ta 5V i, passera den på stift 5
pinMode (powerPin, produktionen);
pinMode (led1, produktionen);
pinMode (led2, produktionen);
pinMode (led3, produktionen);
Serial.BEGIN(9600);
}
void loop() / / kör om och om igen
{
digitalWrite (powerPin, hög); / / skicka 5V
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
om (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, låg);
}
annars om (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
om (prevValue - btnValue > 50) {
Serial.println ("ledde");
slå på lysdioder slumpmässigt
för (int jag = 0; jag < 5; i ++) {
digitalWrite (led1, hög);
Delay(200);
digitalWrite (led1, låg);
Delay(100);
digitalWrite (led2, hög);
Delay(200);
digitalWrite (led2, låg);
Delay(100);
digitalWrite (led3, hög);
Delay(200);
digitalWrite (led3, låg);
Delay(100);
}
Delay(1000);
Aktivera korrigera/random PIN-koden
randomPin = random (1, 4); / / 1, 2, 3
Serial.println(randomPin);
om (randomPin == 1) {
randomPin = led1;
}
annat if (randomPin == 2) {
randomPin = led2;
}
annat {
randomPin = led3;
}
digitalWrite (randomPin, hög);
Delay(5000);
}
digitalWrite (randomPin, låg);
}
prevValue = btnValue;
digitalWrite (randomPin, låg);
Delay(50);
}