Cours:ChenillardShield : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m ({{Rouge|Composants et position}})
Ligne 1 : Ligne 1 :
 
Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser [https://fr.wikipedia.org/wiki/Chenillard un chenillard].
 
Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser [https://fr.wikipedia.org/wiki/Chenillard un chenillard].
  
={{Rouge|Cahier des charges}}=
+
={{Rouge|Fabrication de la carte}}=
 +
=={{Bleu|Cahier des charges}}==
  
 
Cette carte aura pour contraintes de :
 
Cette carte aura pour contraintes de :
Ligne 11 : Ligne 12 :
  
  
={{Rouge|Composants et position}}=
+
=={{Bleu|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
 
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
Ligne 27 : Ligne 28 :
 
| 1 interrupteur || A5 || changement du sens
 
| 1 interrupteur || A5 || changement du sens
 
|}
 
|}
 +
 +
 +
 +
={{Rouge|Programmation}}=
 +
 +
=={{Bleu|Gestion des leds}}==
 +
 +
==={{Vert|Notion de port}}===
 +
 +
[[Fichier:ArduinoPinout.png|right|400px]]
 +
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|Ainsi, il devient possible de modifier l'état de toutes ces sorties/leds, en une seule instruction :}}
 +
 +
<source lang=c>
 +
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);
 +
}
 +
</source>
 +
 +
 +
==={{Vert|Utilisation}}===
 +
 +
{| class="wikitable"
 +
|-
 +
||[[Fichier:Leda.png]]||[[Fichier:Leda.png]]||[[Fichier:Lede.png]]||[[Fichier:Lede.png]]||[[Fichier:Lede.png]]||[[Fichier:Lede.png]]||[[Fichier:Leda.png]]||[[Fichier:Leda.png]]
 +
|-
 +
||[[Fichier:Leda.png]]||[[Fichier:Lede.png]]||[[Fichier:Leda.png]]||[[Fichier:Leda.png]]||[[Fichier:Leda.png]]||[[Fichier:Leda.png]]||[[Fichier:Lede.png]]||[[Fichier:Leda.png]]
 +
|}
 +
 +
{{Question|En vous inspirant du programme précédent, faire un programme affichant successivement ces 2 motifs pendant 0,5s.}}

Version du 16 novembre 2015 à 09:37

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.