(→Allons plus loin dans l'explication) |
(→Allons plus loin dans l'explication) |
||
Ligne 236 : | Ligne 236 : | ||
=== '''Allons plus loin dans l'explication''' === | === '''Allons plus loin dans l'explication''' === | ||
+ | |||
Nous allons ici expliquer ce que fait le code : | Nous allons ici expliquer ce que fait le code : | ||
* Grâce aux instructions du type <font color="#1468e3">''int pin2 = 2;''</font> , on déclare les différentes variables du programme. | * Grâce aux instructions du type <font color="#1468e3">''int pin2 = 2;''</font> , on déclare les différentes variables du programme. | ||
- | * Dans un second temps, la fonction <font color="#1468e3">''void setup()''</font> permet de déclarer les entrées et sorties. Exemple : <font color="#1468e3">''pinMode(pin2, OUTPUT);''</font> | + | * Dans un second temps, la fonction <font color="#1468e3">''void setup()''</font> permet de déclarer les entrées et sorties. Une entrée permet de recevoir une information de la carte alors qu'un sortie lui envoie une information. Exemple : <font color="#1468e3">''pinMode(pin2, OUTPUT);''</font> pour une entrée ou <font color="#1468e3">'' pinMode(12,INPUT);''</font> |
- | * Ensuite, la fonction <font color="#1468e3">''void loop()''</font> | + | * Ensuite, la fonction <font color="#1468e3">''void loop()''</font> représente une boucle tout au long de laquelle l'état de l'interrupteur est vérifié par la commande <font color="#1468e3">''etatInterrupteur = digitalRead(12);''</font>. |
+ | Si l'interrupteur n'est pas actionné, il est au niveau bas, cette condition est testée par <font color="#1468e3">''if ( etatInterrupteur == LOW)''</font>. 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 <font color="#1468e3">''if ( etatInterrupteur == HIGH)''</font> et la seconde séquence est activée. | ||
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.
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);
} }
Indiquer ici les expériences de Wikidébrouillard.
Autres expériences avec le même concept, recherche sur internet (indiquer les liens).
C'est de la culture, ça aide à comprendre le monde !! N'hésitez pas à lancer la discussion de votre fiche (après l'avoir sauvegarder !) afin de trouver de l'aide pour la compléter
Indiquer ici des lieux où tout le matériel nécessaire pour réaliser cette expérience est disponible.
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