Étape 4: Préparation du Circuit avec Arduino Duemilanove
De l’aide pour commencer avec Arduino, visitez : http://arduino.cc/en/Guide/HomePage. Pour vous assurer que votre configuration ne fonctionne, essayez d’exécuter l’exemple de « Blink »: http://www.arduino.cc/en/Tutorial/Blink
Détecter un bouton.
Modifiez le code pour « Blink » ainsi que la broche numérique 6 gestion familiale est implantée et est sortie 5 volts. De cette façon, lorsque le circuit est fermé par un bouton, la tension est lue à partir de broche 5. Lorsque la touche pas, le circuit est ouvert et broche analogique 5 lit 0.
int ledPin = 13 ; LED connectée à la broche numérique 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analogique 5
int btnValue = 0;
prevValue int = 0;
booléen isPressed = false ;
void setup() / / exécuter une seule fois, au démarrage de l’esquisse
{
pinMode (ledPin, sortie); / / définit la broche numérique en sortie
pinMode (btnPin, INPUT); / / prendre 5V, transmettre à la broche 5
Serial.Begin(9600) ;
}
void loop() / / run maintes et maintes fois
{
digitalWrite (powerPin, HIGH); / / envoie les 5V
btnValue = analogRead(btnPin) ;
si (btnValue > 512 & & prevValue < 512) {
Serial.println("Pressed") ;
digitalWrite (ledPin, HIGH) ;
Delay(500) ;
}
ElseIf (btnValue < 512 & & prevValue > 512) {
Serial.println("Released") ;
digitalWrite (ledPin, basse) ;
}
else {
digitalWrite (ledPin, basse) ;
}
prevValue = btnValue ;
}
Ajouter des LEDs à votre circuit, un à la fois et modifiez votre code pour faire en sorte que vous pouvez contrôler chacun individuellement lorsque le bouton est enfoncé.
int ledPin = 13 ; LED connectée à la broche numérique 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analogique 5
int btnValue = 0;
prevValue int = 0;
booléen isPressed = false ;
long randomPin = 0;
DEL2 int = 2;
int DEL3 = 3;
int led4 = 4;
int threashold = 700 ;
void setup() / / exécuter une seule fois, au démarrage de l’esquisse
{
pinMode (ledPin, sortie); / / définit la broche numérique en sortie
pinMode (btnPin, INPUT); / / prendre 5V, passez-la sur broche 5
pinMode (led2, OUTPUT);
pinMode (sortie DEL3,);
pinMode (sortie led4,);
Serial.Begin(9600) ;
}
void loop() / / run maintes et maintes fois
{
digitalWrite (powerPin, HIGH); / / envoie les 5V
btnValue = analogRead(btnPin) ;
/ / Serial.println(btnValue) ;
si (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed") ;
digitalWrite (randomPin, basse) ;
}
ElseIf (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released") ;
si (prevValue - btnValue > 50) {
Serial.println (« allumée ») ;
randomPin = aléatoire (2, 5); / / 2, 3, 4
Serial.println(randomPin) ;
digitalWrite (randomPin, HIGH) ;
Delay(1000) ;
}
digitalWrite (randomPin, basse) ;
}
prevValue = btnValue ;
digitalWrite (randomPin, basse) ;
Delay(50) ;
}
Continuer à modifier votre code afin que maintenant un aléatoire LED s’allume lorsque le bouton est enfoncé.
int ledPin = 13 ; LED connectée à la broche numérique 13
int powerPin = 6; / / digital 6
int btnPin = 5; / / analogique 5
int btnValue = 0;
prevValue int = 0;
booléen isPressed = false ;
long randomPin = 0;
DEL2 int = 2;
int DEL3 = 3;
int led4 = 4;
int threashold = 700 ;
int prevRandom = 0;
void setup() / / exécuter une seule fois, au démarrage de l’esquisse
{
pinMode (ledPin, sortie); / / définit la broche numérique en sortie
pinMode (btnPin, INPUT); / / prendre 5V, passez-la sur broche 5
pinMode (led2, OUTPUT);
pinMode (sortie DEL3,);
pinMode (sortie led4,);
Serial.Begin(9600) ;
}
void loop() / / run maintes et maintes fois
{
digitalWrite (powerPin, HIGH); / / envoie les 5V
btnValue = analogRead(btnPin) ;
/ / Serial.println(btnValue) ;
si (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed") ;
digitalWrite (randomPin, basse) ;
}
ElseIf (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released") ;
si (prevValue - btnValue > 50) {
Serial.println (« allumée ») ;
LED s’allume au hasard
pour (int i = 0; i < 5; i ++) {
digitalWrite (2, haut) ;
Delay(200) ;
digitalWrite (2, basse) ;
Delay(100) ;
digitalWrite (3, élevée) ;
Delay(200) ;
digitalWrite (3, faible) ;
Delay(100) ;
digitalWrite (4, élevée) ;
Delay(200) ;
digitalWrite (4, faible) ;
Delay(100) ;
}
Delay(1000) ;
tourner sur la broche de corriger/aléatoire
randomPin = aléatoire (2, 5); / / 2, 3, 4
Serial.println(randomPin) ;
digitalWrite (randomPin, HIGH) ;
Delay(5000) ;
}
digitalWrite (randomPin, basse) ;
}
prevValue = btnValue ;
digitalWrite (randomPin, basse) ;
Delay(50) ;
}
Modifiez votre code plus loin alors que maintenant, les LEDs clignotent pendant quelques instants avant un illuminant au hasard sélectionné LED. Cette LED indique le nombre d’espaces un joueur peut déplacer son pion.
int ledPin = 13 ; LED connectée à la broche numérique 13
int powerPin = 14; / / digital 6
int btnPin = 2; / / analogique 5
int btnValue = 0;
prevValue int = 0;
booléen isPressed = false ;
long randomPin = 0;
int threashold = 700 ;
int prevRandom = 0;
/ / LED 19, 10 11
int led1 = 19 ;
DEL2 int = 10 ;
int DEL3 = 11 ;
void setup() / / exécuter une seule fois, au démarrage de l’esquisse
{
pinMode (btnPin, INPUT); / / prendre 5V, passez-la sur broche 5
pinMode (powerPin, sortie);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (sortie DEL3,);
Serial.Begin(9600) ;
}
void loop() / / run maintes et maintes fois
{
digitalWrite (powerPin, HIGH); / / envoie les 5V
btnValue = analogRead(btnPin) ;
/ / Serial.println(btnValue) ;
si (btnValue > = threashold & & prevValue < = threashold) {
/ / Serial.println("Pressed") ;
digitalWrite (randomPin, basse) ;
}
ElseIf (btnValue < threashold & & prevValue > threashold) {
/ / Serial.println("Released") ;
si (prevValue - btnValue > 50) {
Serial.println (« allumée ») ;
LED s’allume au hasard
pour (int i = 0; i < 5; i ++) {
digitalWrite (led1, HIGH) ;
Delay(200) ;
digitalWrite (led1, faible) ;
Delay(100) ;
digitalWrite (led2, HIGH) ;
Delay(200) ;
digitalWrite (led2, faible) ;
Delay(100) ;
digitalWrite (DEL3, HIGH) ;
Delay(200) ;
digitalWrite (DEL3, faible) ;
Delay(100) ;
}
Delay(1000) ;
tourner sur la broche de corriger/aléatoire
randomPin = aléatoire (1, 4); / / 1, 2, 3
Serial.println(randomPin) ;
si (randomPin == 1) {
randomPin = led1 ;
}
combinaison else if (randomPin == 2) {
randomPin = led2 ;
}
else {
randomPin = DEL3 ;
}
digitalWrite (randomPin, HIGH) ;
Delay(5000) ;
}
digitalWrite (randomPin, basse) ;
}
prevValue = btnValue ;
digitalWrite (randomPin, basse) ;
Delay(50) ;
}