Étape 6: programmation
Pour mon programme, j’ai pris l’exemple de commutateur ( http://www.arduino.cc/en/Tutorial/SwitchCase2 ) et modifié un peu./*
Instruction switch avec entrée périodique
Illustre l’utilisation d’une instruction switch. Le commutateur
déclaration vous permet de choisir parmi un ensemble de valeurs discrètes
d’une variable. C’est comme une série de cas relevés.
Voir cette esquisse en action, ouvrir le Serial monitor et envoyer n’importe quel caractère.
Les caractères a, b, c, d et e, seront allume les LEDs. N’importe quel caractère tournera
les LEDs au large.
Le circuit :
* 5 LEDs attachés à broches numériques 2 à 6 par l’intermédiaire de résistances de 220 ohms
Il s’agit d’une version modifiée de l’exemple 2 cas Swith sur le site arduino.cc. (http://www.arduino.cc/en/Tutorial/SwitchCase2)
*/
int analogOutPinG = 9 ;
int analogOutPinB = 10 ;
int analogOutPinR = 11 ;
void setup() {}
initialiser la communication série :
Serial.Begin(9600) ;
initialiser les broches de la LED :
pinMode (analogOutPinG, sortie) ;
pinMode (analogOutPinB, sortie) ;
pinMode (analogOutPinR, sortie) ;
}
void loop() {}
lire le capteur :
Si (Serial.available() > 0) {}
int inByte = Serial.read() ;
faire quelque chose de différent en fonction de la réception du caractère.
L’instruction switch s’attend à des valeurs de numéro unique pour chaque cas ;
dans cet exemple, cependant, que vous utilisez des guillemets simples pour dire
le contrôleur pour obtenir la valeur ASCII du caractère. Pour
exemple « a » = 97, « b » = 98 et ainsi de suite :
Switch (inByte) {}
case « a » :
analogWrite (analogOutPinG, 255) ;
analogWrite (analogOutPinB, 0) ;
analogWrite (analogOutPinR, 0) ;
rupture ;
case « b » :
analogWrite (analogOutPinG, 255) ;
analogWrite (analogOutPinB, 220) ;
analogWrite (analogOutPinR, 0) ;
rupture ;
case « c » :
analogWrite (analogOutPinG, 0) ;
analogWrite (analogOutPinB, 255) ;
analogWrite (analogOutPinR, 0) ;
rupture ;
affaire aurait ":
analogWrite (analogOutPinG, 0) ;
analogWrite (analogOutPinB, 200) ;
analogWrite (analogOutPinR, 255) ;
rupture ;
Case « e » :
analogWrite (analogOutPinG, 0) ;
analogWrite (analogOutPinB, 0) ;
analogWrite (analogOutPinR, 255) ;
rupture ;
case « f » :
analogWrite (analogOutPinG, 200) ;
analogWrite (analogOutPinB, 0) ;
analogWrite (analogOutPinR, 255) ;
rupture ;
case « g » :
analogWrite (analogOutPinG, 120) ;
analogWrite (analogOutPinB, 0) ;
analogWrite (analogOutPinR, 255) ;
rupture ;
case « h » :
analogWrite (analogOutPinG, 0) ;
analogWrite (analogOutPinB, 0) ;
analogWrite (analogOutPinR, 0) ;
rupture ;
}
}
}