Le chenillard est un ensemble de DEL dont le programme présenté ci-après contrôle leur allumage et leur extinction les unes à la suite des autres.
Une des applications réelles sur un réseau peut être les feux dans un virage serré.
. Par :
, , . URL : https://www.locoduino.org/spip.php?article1Le chenillard est un ensemble de DEL dont le programme présenté ci-après contrôle leur allumage et leur extinction les unes à la suite des autres.
Une des applications réelles sur un réseau peut être les feux dans un virage serré.
Une petite vidéo pour mieux comprendre :
Vous pouvez très bien arrêter votre lecture à ce stade pour essayer de faire comme l’animation pour vous entraîner à coder et à brancher correctement. Vous pourrez ensuite comparer votre code avec celui ci-dessous.
Le code est écrit pour un Arduino Uno, mais facilement transposable à un autre type d’arduino. Il est toutefois écrit avec la commande Delay() ce qui nécessite une adaptation pour rajouter d’autres effets par exemple de lumière.
Pour cette animation, il faut :
Si vous ne savez pas ce que c’est ces bidules, « Un minimum pour jouer rapidement avec un Arduino » vous aidera.
Où les acheter, jetez un œil à « Où acheter ? ».
Pour le prototypage, les branchements sont réalisés sur une breadboard. « Les indispensables du prototypage » explique comment utiliser une breadboard.
La figure 1 montre le montage à réaliser.
Le programme ci-après est à recopier dans l’interface de l’IDE d’Arduino. Il y a même un bouton télécharger à la fin.
/*
* Programme pour arduino uno
* Projet APTE Loco-Revue
* par C. Bézanger Octobre 2013
* Licence GNU GPLv3
*
* Ce programme réalise un chenillard.
* Il fait flasher successivement six DEL oranges relées aux sorties 4 à 9
* Puis il réalise une pause de 500 millisecondes avant de recommencer
*/
// Initialisation des lignes 4 à 9 en sortie
void setup () {
pinMode (4, OUTPUT) ;
pinMode (5, OUTPUT) ;
pinMode (6, OUTPUT) ;
pinMode (7, OUTPUT) ;
pinMode (8, OUTPUT) ;
pinMode (9, OUTPUT) ;
}
// Fonction loop
void loop () {
// Extinction de toutes les DEL au départ du programme
for (byte i = 4 ; i <= 9 ; i++) {
digitalWrite (i, LOW) ; // éteint la DEL reliée à la broche i
}
// Boucle pour faire flasher les DEL
for (byte i = 4 ; i <= 9 ; i++) {
digitalWrite (i, HIGH) ; // allume la DEL sur broche i
delay (50) ; // durée du flash 50 millisecondes
digitalWrite (i, LOW) ; // éteint la DEL
}
// délai de 500 millisecondes
delay (500) ;
// Recommence la séquence
}