Sommaire |
Vous connaissez surement la série TV K2000 et sa célèbre voiture KITT. L'une des particularités de cette dernière est son affichage lumineux sur la calandre avant. Nous allons reproduire cette séquence d'affichage.
int pin2 = 2; int pin3 = 3; int pin4 = 4; int pin5 = 5; int pin6 = 6; int pin7 = 7; int pin8 = 8; int pin9 = 9; int etatInterrupteur=12; int timer = 50;
void setup(){
pinMode(pin2, OUTPUT); pinMode(pin3, OUTPUT); pinMode(pin4, OUTPUT); pinMode(pin5, OUTPUT); pinMode(pin6, OUTPUT); pinMode(pin7, OUTPUT); pinMode(pin8, OUTPUT); pinMode(pin9, OUTPUT);
pinMode(12,INPUT);
}
void loop() {
etatInterrupteur = digitalRead(12);
if ( etatInterrupteur == HIGH) { digitalWrite(pin2, HIGH); delay(timer); digitalWrite(pin2, LOW); delay(timer);
digitalWrite(pin3, HIGH); delay(timer); digitalWrite(pin3, LOW); delay(timer);
digitalWrite(pin4, HIGH); delay(timer); digitalWrite(pin4, LOW); delay(timer);
digitalWrite(pin5, HIGH); delay(timer); digitalWrite(pin5, LOW); delay(timer);
digitalWrite(pin6, HIGH); delay(timer); digitalWrite(pin6, LOW); delay(timer);
digitalWrite(pin7, HIGH); delay(timer); digitalWrite(pin7, LOW); delay(timer);
digitalWrite(pin8, HIGH); delay(timer); digitalWrite(pin8, LOW); delay(timer);
digitalWrite(pin9, HIGH); delay(timer); digitalWrite(pin9, LOW); delay(timer); digitalWrite(pin8, HIGH); delay(timer); digitalWrite(pin8, LOW); delay(timer);
digitalWrite(pin7, HIGH); delay(timer); digitalWrite(pin7, LOW); delay(timer);
digitalWrite(pin6, HIGH); delay(timer); digitalWrite(pin6, LOW); delay(timer);
digitalWrite(pin5, HIGH); delay(timer); digitalWrite(pin5, LOW); delay(timer);
digitalWrite(pin4, HIGH); delay(timer); digitalWrite(pin4, LOW); delay(timer);
digitalWrite(pin3, HIGH); delay(timer); digitalWrite(pin3, LOW); delay(timer);
digitalWrite(pin2, HIGH); delay(timer); digitalWrite(pin2, LOW); delay(timer);
}
if ( etatInterrupteur == LOW) { digitalWrite(pin2, HIGH); digitalWrite(pin9,HIGH); delay(timer); delay(timer); digitalWrite(pin2, LOW); digitalWrite(pin9,LOW); delay(timer); delay(timer);
digitalWrite(pin3, HIGH); digitalWrite(pin8,HIGH); delay(timer); delay(timer); digitalWrite(pin3, LOW); digitalWrite(pin8,LOW); delay(timer); delay(timer);
digitalWrite(pin4, HIGH); digitalWrite(pin7,HIGH); delay(timer); delay(timer); digitalWrite(pin4, LOW); digitalWrite(pin7,LOW); delay(timer); delay(timer); digitalWrite(pin5, HIGH); digitalWrite(pin6,HIGH); delay(timer); delay(timer); digitalWrite(pin5, LOW); digitalWrite(pin6,LOW); delay(timer); delay(timer); digitalWrite(pin4, HIGH); digitalWrite(pin7,HIGH); delay(timer); delay(timer); digitalWrite(pin4, LOW); digitalWrite(pin7,LOW); delay(timer); delay(timer); digitalWrite(pin3, HIGH); digitalWrite(pin8,HIGH); delay(timer); delay(timer); digitalWrite(pin3, LOW); digitalWrite(pin8,LOW); delay(timer); delay(timer);
} }
Le programme est alors chargé sur la carte.
Les 8 LED s'allument et s'éteignent successivement suivant la séquence prévue dans le code. A chaque appuie sur le bouton poussoir la séquence change.
Deux séquences d'affichage sont enregistrées dans le code :
Nous allons ici expliquer ce que fait le code :
Si l'interrupteur n'est pas actionné, il est au niveau bas, cette condition est testée par if ( etatInterrupteur == LOW). La première séquence est alors activée. Dans le cas contraire, s'il on appuie sur l'interrupteur, il est alors à niveau haut, cela est testé par la commande if ( etatInterrupteur == HIGH) et la seconde séquence est activée.
Chaque opération est effectuée après un délai timer fixé au début du programme lors de la déclaration des variables. Cela est réalisé par la ligne delay(timer);
On peut facilement trouver le lien avec des appareils tels que les guirlandes électriques par exemples ; bien que le langage de codage utilisé ne soit pas forcément le même, le principe reste globalement le même !
A réaliser en intérieur. (Éviter les endroits humides) Observer le résultat dans l'obscurité pour un meilleur rendu !
Penser à fixer les disciplines scientifiques qui correspondent à l'expérience. Remplacer "à classer" par la discipline correspondante.
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique