Cours:ChenillardShield
Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser un chenillard.
Matériel nécessaire
Nous utiliserons :
- 1 carte arduino nano
- 1 plaque à essais
- 1 sachet fils M-M
- 6 leds de même couleur
- 6 résistances de 330Ω
- 1 potentiomètre avec fils M
- 1 interrupteur
- 1 bouton poussoir (carré gris)
- 2 résistances de 10kΩ
Câblage
Vous ferez le câblage des différents composants en respectant les contraintes suivantes
Composants | numéro de broche arduino | direction | Fonction |
---|---|---|---|
6 leds | 8 à 13 | sortie ! | affichage du chenillard |
1 potentiomètre | A1 | entrée | modification de la vitesse |
1 bouton poussoir | 2 | entrée | start/stop |
1 interrupteur | A3 | entrée | changement du sens |
Remarques :
- les leds seront connectées en cathodes communes (cf figure)
- on utilisera une résistance de 330Ω avec les leds
- pour le bouton et l'interrupteur, on mettra une résistance de pull-up de 10kΩ
- pour retrouver le câblage d'une résistance de tirage, lire cette page
- se référer à l'image ci-contre pour le câblage d'un potentiomètre (valeur analogique !!)
Programmation
Gestion des leds
Notion de port
En observant attentivement la figure ci-contre, on constate que les pattes utilisées pour commander les leds n'ont pas été choisies au hasard.
En effet, nous utilisons les pattes 8 à 13, qui correspondent pour le µcontrôleur au PORTB (PB0, PB1, PB2, ...).
Ainsi, il devient possible de modifier l'état de toutes ces sorties/leds, en une seule instruction :
void setup()
{
// déclarer toutes les pattes en sortie :
}
void loop()
{
//mettre toutes les sorties à '1'
PORTB = 0b00111111;
delay(200);
//mettre toutes les sorties à '0'
PORTB = 0b00000000; // ou PORTB = 0x00; ou encore PORTB = 0;
delay(200);
}
Utilisation
En vous inspirant du programme précédent, faire un programme affichant successivement ces 2 motifs pendant 0,5s.
Chenillard
Écrire le programme du chenillard
Il s'agit d'allumer une seule led et de faire en sorte qu'elle se "déplace" de droite à gauche :
Remarque : Rappelez-vous qu'il y a déjà une "boucle" dans votre programme .... la fonction loop !
Pour réaliser un chenillard simple, nous devons envoyer successivement les valeurs suivantes sur le port :
Remarque : Une solution élégante consiste à utiliser les opérateurs de décalage |
Changer la vitesse
Modifier votre programme pour que la vitesse du chenillard dépende du potentiomètre
Remarque : il s'agit bien évidemment de faire une lecture analogique.
Changer le sens de "rotation"
Modifier votre programme pour que le sens de rotation dépende de la position de l'interrupteur
Mise en route/arrêt
On souhaite pouvoir arrêter/démarrer le chenillard à chaque appui sur le bouton poussoir.
Faire les modifications nécessaires pour répondre à ce nouveau cahier des charges.
Allons plus loin
Pour les 2 programmes suivants, en cas de besoin, vous pouvez chercher des informations sur cette page.
Chenillard double
Pour un chenillard double, 2 leds se déplacent en sens opposé.
Écrire le programme correspondant.
Chenillard à entassement
un chenillard à entassement est un chenillard simple avec une led qui se déplace, mais une fois arrivée à l'extrémité la led reste allumée et on en rajoute une au départ, qui se déplace et s'empile sur la précédente ....
Écrire le programme correspondant.
Plusieurs mode
Faire en sorte que chaque appui sur le bouton poussoir change le type de chenillard :
- arrêté
- simple
- double
- entassement