Cours:ChenillardShield

De troyesGEII
Aller à : navigation, rechercher

Retour à la liste des Tps

Éléments de correction

ArduinoNanoPinout.png

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

CathodesCommunes.png

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

PotentiometreArduino.png

Todo.jpg 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, ...).

Info.jpg 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

Lede.png Lede.png Lede.png Lede.png Leda.png Leda.png
Leda.png Leda.png Leda.png Leda.png Lede.png Leda.png

Question.jpg En vous inspirant du programme précédent, faire un programme affichant successivement ces 2 motifs pendant 0,5s.

Chenillard

Question.jpg É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 :

Lede.png Lede.png Lede.png Lede.png Lede.png Leda.png
Lede.png Lede.png Lede.png Lede.png Leda.png Lede.png
...
Leda.png Lede.png Lede.png Lede.png Lede.png Lede.png

Remarque : Rappelez-vous qu'il y a déjà une "boucle" dans votre programme .... la fonction loop !

Bluebg.png
Aidesmall.png
À propos de cette image

Une boucle bien sûr !


Pour réaliser un chenillard simple, nous devons envoyer successivement les valeurs suivantes sur le port :

Binaire Décimal
val1 = 0 0 0 0 0 0 0 1 1
val2 = 0 0 0 0 0 0 1 0 2
val3 = 0 0 0 0 0 1 0 0 4
val4 = 0 0 0 0 1 0 0 0 8
val5 = 0 0 0 1 0 0 0 0 16
val6 = 0 0 1 0 0 0 0 0 32

Remarque : Une solution élégante consiste à utiliser les opérateurs de décalage

Changer la vitesse

Question.jpg 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"

Question.jpg 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.

Question.jpg 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é.

Question.jpg É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 ....

Question.jpg Écrire le programme correspondant.


Plusieurs mode

Question.jpg Faire en sorte que chaque appui sur le bouton poussoir change le type de chenillard :

  • arrêté
  • simple
  • double
  • entassement