Cours:ChenillardShield

De troyesGEII
Révision datée du 16 novembre 2015 à 10:03 par Bjacquot (discussion | contributions) ({{Bleu|Chenillard}})
Aller à : navigation, rechercher

Retour à la liste des Tps

Éléments de correction


Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser un chenillard.

Fabrication de la carte

Cahier des charges

Cette carte aura pour contraintes de :

  • permettre la programmation d'un chenillard sur 8 leds
  • permettre de changer le sens de défilement
  • proposer un moyen d’arrêter/démarrer le défilement
  • permettre de changer la vitesse


Composants et position

Nous trouverons sur la carte les composants suivants, avec le numéro de patte (pin) arduino associée permettrant d'observer/modifier l'état du capteur/actionneur

Composants position arduino Fonction
8 leds pattes 0 à 7 affichage du chenillard
1 résistance ajustable A3 modification de la vitesse
1 bouton poussoir A4 start/stop
1 interrupteur A5 changement du sens


Programmation

Gestion des leds

Notion de port

ArduinoPinout.png

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 0 à 7, qui correspondent pour le µcontrôleur au PORTD (PD0, PD1, PD2, ...).

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'
   PORTD = 0b11111111;  // ou PORTD = 0xFF; ou encore PORTD = 255;
   delay(200);
   //mettre toutes les sorties à '0'
   PORTD = 0b00000000;  // ou PORTD = 0x00; ou encore PORTD = 0;
   delay(200);
}


Utilisation

Leda.png Leda.png Lede.png Lede.png Lede.png Lede.png Leda.png Leda.png
Leda.png Lede.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 Lede.png Lede.png Leda.png
Lede.png Lede.png Lede.png Lede.png Lede.png Lede.png Leda.png Lede.png
...
Lede.png Leda.png Lede.png Lede.png Lede.png Lede.png Lede.png Lede.png
Leda.png Lede.png Lede.png Lede.png Lede.png Lede.png Lede.png Lede.png
Bluebg.png
Aidesmall.png
À propos de cette image

Un 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
val7 = 0 1 0 0 0 0 0 0 64
val8 = 1 0 0 0 0 0 0 0 128

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