Cours:Shieldinfo : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m
m (Principe d'utilisation)
Ligne 130 : Ligne 130 :
 
void loop()
 
void loop()
 
{
 
{
 +
    char i;
 +
    for (i=8;i<=13;i++) digitalWrite(i,HIGH); // Les Leds s'allument
 
     delay(500);                              // Attente pendant 500ms
 
     delay(500);                              // Attente pendant 500ms
 +
    for (i=8;i<=13;i++) digitalWrite(i,LOW); // Les Leds s'éteignent
 
     delay(500);                              // Attente pendant 500ms
 
     delay(500);                              // Attente pendant 500ms
 +
 
}
 
}
  

Version du 18 juin 2013 à 21:59

Lien enseignants

Composition

Boutons

description

Le shield comporte 4 boutons, dont 2 possèdent une interruption spécifique comme indiqué dans le tableau suivant :

Bouton Position Arduino Pin Port Interruption Résistance de tirage
bp0 Bas Gauche 2 PD2 0 Pull Up
bp1 Haut Gauche 3 PD3 1 Pull Up
bp2 Bas Droite A0 PC0 Pull Down
bp3 Haut Droite A1 PC1 Pull Down

Principe d'utilisation

const char bpPin[4]={2,3,A0,A1};               // Position physique des boutons
char bpEtat[4];
char bpAncien[4];

void setup()
{
    char i;
    for (i=0;i<4;i++) pinMode(bpPin[i],INPUT); // Déclaration des 4 entrées
}

void loop()
{
    char i;
    for (i=0;i<4;i++)
    {
        bpAncien[i]=bpEtat[i];                 // Conservation des états précédents
        bpEtat[i]=digitalRead(bpPin[i]);       // Lecture des nouveaux états
    }
    if ((bpEtat[0]==0)&&(bpAncien[0]==1))      // En cas d'appui sur bp0
    {
          ......
    }
    .....
}

Leds

Description

6 leds connectées en "cathodes communes" sont présentes sur la carte. Attention, le commutateur permet de choisir entre les Leds et les afficheurs 7 segments. Leur position et couleur sont données dans le tableau suivant

Numéro l5 l4 l3 l2 l1 l0
Couleur r o v r o v
Arduino Pin 13 12 11 10 9 8
Port PB5 PB4 PB3 PB2 PB1 PB0

Principe d'utilisation

void setup()
{
    char i;
    for (i=8;i<=13;i++) pinMode(i,OUTPUT);    // Déclaration des 6 sorties
}

void loop()
{
    char i;
    for (i=8;i<=13;i++) digitalWrite(i,HIGH); // Les Leds s'allument
    delay(500);                               // Attente pendant 500ms
    for (i=8;i<=13;i++) digitalWrite(i,LOW); // Les Leds s'éteignent
    delay(500);                               // Attente pendant 500ms
}

Afficheurs 7 segments

Description

Les 2 afficheurs ne peuvent pas être utilisés simultanément. L'état de la sortie mux (arduino port 4 ou PD4) permet de sélectionner l'un ou l'autre. En allumant successivement l'un puis l'autre rapidement, on a l'illusion qu'ils sont tous 2 allumés.

Les segments des afficheurs sont câblés de façon analogue comme décrit ci dessous :

Segment a b c d e f g pt
Arduino Pin 13 12 6 7 8 10 9 11
Port PB5 PB4 PD6 PD7 PB0 PB2 PB1 PB3

Principe d'utilisation

const char pinMux = 4;
const char pinAff[8]={13,12,6,7,8,10,9,11};

void setup()
{
    char i;
    for (i=0;i<8;i++) pinMode(pinAff[i],OUTPUT);    // Déclaration des 8 sorties des afficheurs
    pinMode(pinMux,OUTPUT);                         // + sortie de multiplexage (choix de l'afficheur)
}

void loop()
{
    char i;
    for (i=8;i<=13;i++) digitalWrite(i,HIGH); // Les Leds s'allument
    delay(500);                               // Attente pendant 500ms
    for (i=8;i<=13;i++) digitalWrite(i,LOW); // Les Leds s'éteignent
    delay(500);                               // Attente pendant 500ms
 
}

Documents

Media:ArduinoBoard.brd


Media:shieldinfo.sch