Paso 4: Preparar el circuito con Arduino Duemilanove
Ayuda para empezar con Arduino, visite: http://arduino.cc/en/Guide/HomePage. Para asegurarse de que su configuración está trabajando, intente ejecutar el ejemplo de "Parpadear": http://www.arduino.cc/en/Tutorial/Blink
Detectar una pulsación.
Modifique el código para "Parpadear" por lo que ese pin digital 6 está situado y es la salida de 5 voltios. Así, cuando el circuito está cerrado por una prensa del botón, la tensión se lee desde el pin 5. Cuando el botón no está pulsado, el circuito está abierto y pin analógico 5 lectura 0.
int ledPin = 13; LED conectado al pin digital 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analógica 5
int btnValue = 0;
int prevValue = 0;
isPressed boolean = false;
void setup() / / ejecuta una vez, cuando comienza el bosquejo
{
pinMode (ledPin, salida); / / pone el pin digital como salida
pinMode (btnPin, entrada); / / tomar 5V, pasarlo a pin 5
Serial.Begin(9600);
}
void loop() / / ejecuta una y otra vez
{
digitalWrite (powerPin, HIGH); / / enviar 5V
btnValue = analogRead(btnPin);
si (> 512 btnValue & & prevValue < 512) {
Serial.println("pressed");
digitalWrite (ledPin, HIGH);
Delay(500);
}
else if (btnValue < 512 & & prevValue > 512) {
Serial.println("Released");
digitalWrite (ledPin, LOW);
}
else {
digitalWrite (ledPin, LOW);
}
prevValue = btnValue;
}
Añadir LEDs a tu circuito, uno por uno y modifique el código para asegurarse de que usted puede controlar cada uno individualmente cuando se presiona el botón.
int ledPin = 13; LED conectado al pin digital 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analógica 5
int btnValue = 0;
int prevValue = 0;
isPressed boolean = false;
randomPin largo = 0;
int led2 = 2;
int led3 = 3;
led4 int = 4;
int threashold = 700;
void setup() / / ejecuta una vez, cuando comienza el bosquejo
{
pinMode (ledPin, salida); / / pone el pin digital como salida
pinMode (btnPin, entrada); / / tomar 5V, pasar a pin 5
pinMode (led2, salida);
pinMode (led3, salida);
pinMode (led4, salida);
Serial.Begin(9600);
}
void loop() / / ejecuta una y otra vez
{
digitalWrite (powerPin, HIGH); / / enviar 5V
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
si (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, LOW);
}
else if (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
si (prevValue - btnValue > 50) {
Serial.println ("llevado");
randomPin = al azar (2, 5); / / 2, 3, 4
Serial.println(randomPin);
digitalWrite (randomPin, HIGH);
Delay(1000);
}
digitalWrite (randomPin, LOW);
}
prevValue = btnValue;
digitalWrite (randomPin, LOW);
Delay(50);
}
Siguen modificar su código para que ahora un LED al azar se enciende cuando se presiona el botón.
int ledPin = 13; LED conectado al pin digital 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analógica 5
int btnValue = 0;
int prevValue = 0;
isPressed boolean = false;
randomPin largo = 0;
int led2 = 2;
int led3 = 3;
led4 int = 4;
int threashold = 700;
int prevRandom = 0;
void setup() / / ejecuta una vez, cuando comienza el bosquejo
{
pinMode (ledPin, salida); / / pone el pin digital como salida
pinMode (btnPin, entrada); / / tomar 5V, pasar a pin 5
pinMode (led2, salida);
pinMode (led3, salida);
pinMode (led4, salida);
Serial.Begin(9600);
}
void loop() / / ejecuta una y otra vez
{
digitalWrite (powerPin, HIGH); / / enviar 5V
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
si (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, LOW);
}
else if (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
si (prevValue - btnValue > 50) {
Serial.println ("llevado");
encender leds aleatoriamente
para (int i = 0; i < 5; i ++) {
digitalWrite (2, alto);
Delay(200);
digitalWrite (2, bajo);
Delay(100);
digitalWrite (3, alto);
Delay(200);
digitalWrite (3, bajo);
Delay(100);
digitalWrite (4, alto);
Delay(200);
digitalWrite (4, bajo);
Delay(100);
}
Delay(1000);
Encienda el pin correcto/al azar
randomPin = al azar (2, 5); / / 2, 3, 4
Serial.println(randomPin);
digitalWrite (randomPin, HIGH);
Delay(5000);
}
digitalWrite (randomPin, LOW);
}
prevValue = btnValue;
digitalWrite (randomPin, LOW);
Delay(50);
}
Modifique el código más que ahora, los LEDs parpadean unos instantes antes de iluminar uno aleatoriamente había seleccionado LED. Este LED indica cuántos espacios un jugador podrá mover su pieza del juego.
int ledPin = 13; LED conectado al pin digital 13
int powerPin = 14; / / digital 6
int btnPin = 2; / / analógica 5
int btnValue = 0;
int prevValue = 0;
isPressed boolean = false;
randomPin largo = 0;
int threashold = 700;
int prevRandom = 0;
/ / LED 19, 10 11
int led1 = 19;
int led2 = 10;
int led3 = 11;
void setup() / / ejecuta una vez, cuando comienza el bosquejo
{
pinMode (btnPin, entrada); / / tomar 5V, pasar a pin 5
pinMode (powerPin, salida);
pinMode (led1, salida);
pinMode (led2, salida);
pinMode (led3, salida);
Serial.Begin(9600);
}
void loop() / / ejecuta una y otra vez
{
digitalWrite (powerPin, HIGH); / / enviar 5V
btnValue = analogRead(btnPin);
/ / Serial.println(btnValue);
si (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed");
digitalWrite (randomPin, LOW);
}
else if (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released");
si (prevValue - btnValue > 50) {
Serial.println ("llevado");
encender leds aleatoriamente
para (int i = 0; i < 5; i ++) {
digitalWrite (LED 1, HIGH);
Delay(200);
digitalWrite (LED 1, bajo);
Delay(100);
digitalWrite (led2, HIGH);
Delay(200);
digitalWrite (led2, LOW);
Delay(100);
digitalWrite (LED 3, alto);
Delay(200);
digitalWrite (LED 3, bajo);
Delay(100);
}
Delay(1000);
Encienda el pin correcto/al azar
randomPin = al azar (1, 4); / / 1, 2, 3
Serial.println(randomPin);
si (randomPin == 1) {
randomPin = led1;
}
else if (randomPin == 2) {
randomPin = led2;
}
else {
randomPin = led3;
}
digitalWrite (randomPin, HIGH);
Delay(5000);
}
digitalWrite (randomPin, LOW);
}
prevValue = btnValue;
digitalWrite (randomPin, LOW);
Delay(50);
}