Stap 4: Voorbereiden Circuit met Arduino Duemilanove
Voor hulp aan de slag met Arduino, bezoek: http://arduino.cc/en/Guide/HomePage. Om ervoor te zorgen dat uw configuratie werkt, probeert u het voorbeeld van "Blink": http://www.arduino.cc/en/Tutorial/Blink
Het detecteren van een druk op de knop.
Wijzig de code voor "Blink" dus dat digitale pin 6 hoog is ingesteld en 5 volt is outputting. Deze manier, wanneer het circuit is gesloten door een druk op de knop, de spanning wordt gelezen pin 5. Wanneer de knop niet is ingedrukt, het circuit is geopend en analoge pin 5 is het lezen van 0.
int ledPin = 13; LED aangesloten op digital pin 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analog 5
int btnValue = 0;
int prevValue = 0;
Boole isPressed = false;
void setup / / run eenmaal in, wanneer de schets wordt gestart
{
pinMode (ledPin, OUTPUT); / / Hiermee stelt u de digitale pen als uitvoer
pinMode (btnPin, INPUT); / / 5V deelnemen, doorgeven aan pin 5
Serial.begin(9600);
}
void loop / / run over en weer
{
digitalWrite (powerPin, hoge); / / 5V afgeven
btnValue = analogRead(btnPin);
als (btnValue > 512 & & prevValue < 512) {
Serial.println("pressed");
digitalWrite (ledPin, hoge);
Delay(500);
}
else if (btnValue < 512 & & prevValue > 512) {
Serial.println("Released");
digitalWrite (ledPin, laag);
}
anders {
digitalWrite (ledPin, laag);
}
prevValue = btnValue;
}
Toevoegen van LEDs aan uw circuit, tegelijkertijd, en pas je code om ervoor te zorgen dat u elk afzonderlijk controleren kunt wanneer de knop wordt gedrukt.
int ledPin = 13; LED aangesloten op digital pin 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analog 5
int btnValue = 0;
int prevValue = 0;
Boole isPressed = false;
lange randomPin = 0;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int threashold = 700;
void setup / / run eenmaal in, wanneer de schets wordt gestart
{
pinMode (ledPin, OUTPUT); / / Hiermee stelt u de digitale pen als uitvoer
pinMode (btnPin, INPUT); / / 5V deelnemen, doorgeven op pin 5
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
Serial.begin(9600);
}
void loop / / run over en weer
{
digitalWrite (powerPin, hoge); / / 5V afgeven
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
als (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, laag);
}
else if (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
als (prevValue - btnValue > 50) {
Serial.println ("bracht op");
randomPin = willekeurige (2, 5); / / 2, 3, 4
Serial.println(randomPin);
digitalWrite (randomPin, hoge);
Delay(1000);
}
digitalWrite (randomPin, laag);
}
prevValue = btnValue;
digitalWrite (randomPin, laag);
Delay(50);
}
Pas je code aan zodat nu een willekeurige LED gaat branden wanneer de knop wordt ingedrukt blijven.
int ledPin = 13; LED aangesloten op digital pin 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analog 5
int btnValue = 0;
int prevValue = 0;
Boole isPressed = false;
lange randomPin = 0;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int threashold = 700;
int prevRandom = 0;
void setup / / run eenmaal in, wanneer de schets wordt gestart
{
pinMode (ledPin, OUTPUT); / / Hiermee stelt u de digitale pen als uitvoer
pinMode (btnPin, INPUT); / / 5V deelnemen, doorgeven op pin 5
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
Serial.begin(9600);
}
void loop / / run over en weer
{
digitalWrite (powerPin, hoge); / / 5V afgeven
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
als (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, laag);
}
else if (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
als (prevValue - btnValue > 50) {
Serial.println ("bracht op");
leds willekeurig inschakelen
voor (int i = 0; ik < 5; i ++) {
digitalWrite (2, HIGH);
Delay(200);
digitalWrite (2, laag);
Delay(100);
digitalWrite (3, hoge);
Delay(200);
digitalWrite (3, laag);
Delay(100);
digitalWrite (4, HIGH);
Delay(200);
digitalWrite (4, laag);
Delay(100);
}
delay(1000);
het corrigeren/random pin inschakelen
randomPin = willekeurige (2, 5); / / 2, 3, 4
Serial.println(randomPin);
digitalWrite (randomPin, hoge);
Delay(5000);
}
digitalWrite (randomPin, laag);
}
prevValue = btnValue;
digitalWrite (randomPin, laag);
Delay(50);
}
Wijzig uw code verder zodat nu, de LED's voor een paar momenten knipperen voordat LED verlichting van een willekeurig geselecteerd. Deze LED zal aangeven hoeveel spaties een speler kan bewegen haar spel stuk.
int ledPin = 13; LED aangesloten op digital pin 13
int powerPin = 14; / / digital 6
int btnPin = 2; / / analog 5
int btnValue = 0;
int prevValue = 0;
Boole isPressed = false;
lange randomPin = 0;
int threashold = 700;
int prevRandom = 0;
/ / LEDs 19, 10 11
int led1 = 19;
int led2 = 10;
int led3 = 11;
void setup / / run eenmaal in, wanneer de schets wordt gestart
{
pinMode (btnPin, INPUT); / / 5V deelnemen, doorgeven op pin 5
pinMode (powerPin, OUTPUT);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
Serial.begin(9600);
}
void loop / / run over en weer
{
digitalWrite (powerPin, hoge); / / 5V afgeven
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
als (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, laag);
}
else if (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
als (prevValue - btnValue > 50) {
Serial.println ("bracht op");
leds willekeurig inschakelen
voor (int i = 0; ik < 5; i ++) {
digitalWrite (led1, hoge);
Delay(200);
digitalWrite (led1, laag);
Delay(100);
digitalWrite (led2, hoge);
Delay(200);
digitalWrite (led2, laag);
Delay(100);
digitalWrite (led3, hoge);
Delay(200);
digitalWrite (led3, laag);
Delay(100);
}
delay(1000);
het corrigeren/random pin inschakelen
randomPin = willekeurige (1, 4); / / 1, 2, 3
Serial.println(randomPin);
als (randomPin == 1) {
randomPin = led1;
}
else if (randomPin == 2) {
randomPin = led2;
}
anders {
randomPin = led3;
}
digitalWrite (randomPin, hoge);
Delay(5000);
}
digitalWrite (randomPin, laag);
}
prevValue = btnValue;
digitalWrite (randomPin, laag);
Delay(50);
}