Mis à jour le mercredi 30 novembre 2016
  • 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Solutions des exercices

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Exercice sur la LED 13

Solution : Il vous suffit de remplacer le mot clé HIGH par LOW dans le programme.

Exercice sur le moniteur série

Solution : Il faut ajouter la commande suivante avant la fin de la boucle  loop() :

delay(2000);

Exercice sur le programme "Arduino compte seul"

Solution : L'idée est simple. Comme on ne souhaite qu'un passage de la boucle, on supprime le test d'affichage et on met le tout dans le  setup() qui je vous le rappelle n'est lu qu'une fois. Ce qui donne :

int numPin;

void setup()
{
  numPin = 13;
  pinMode(numPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("*** Debut du programme ***");
  for (int compteur = 1; compteur <= 20; compteur++)
  {
    Serial.println(compteur);
    //boucle de clignotement
    //compteur sert de limite à la boucle
    //donc le nombre de clignotements augmente à chaque tour
    for (int nbClignote = 0; nbClignote < compteur; nbClignote++)
    {
      //allume
      digitalWrite(numPin, HIGH);
      delay(250);
      //eteind
      digitalWrite(numPin, LOW);
      delay(250);
    }
    delay(1000); //attente de 1s
  }
  Serial.println("*** Ayé ! ***");
}

void loop()
{

}

Exercice sur la connexion d'une LED à un pin

Solution : Pour le branchement, il suffit de brancher le fil non pas sur la sortie 13 mais sur la sortie 7. Puis de modifier la valeur dans la définition de la variable. Voici le code :

int pinLed=7; //variable pour le numéro du pin utilisé

void setup()
{
    pinMode(pinLed,OUTPUT); //le pin 13 en mode sortie de courant
}

void loop()
{
    digitalWrite(pinLed,HIGH); // on passe le pin à +5V
    delay (1000);
    digitalWrite(pinLed,LOW); // on passe le pin à 0V
    delay(1000);
}

Vous voyez ici tout l'intérêt des variables ! Il n'y a qu'une toute petite partie du programme à modifier. Tout le reste est inchangé. 

Exercice : un programme pour tester vos LED

//définition des variables de pin pour chaque LED
int ledHautGauche = 2;
int ledBasGauche = 3;
int ledCentre = 4;
int ledHautDroite = 6;
int ledBasDroite = 5;

void setup() {
  //initialisation des pins
  for (int l = 2; l < 7; l++) { // boucle de 2 à 6
    pinMode(l, OUTPUT); // mode OUTPUT
    digitalWrite(l, LOW); // tout est éteint
  }
}
void loop() {
  for (int l = 0; l < 6; l++) {
    if (l == 0) {
      //affichage des diodes en forme de 0
      digitalWrite(ledHautGauche, LOW);
      digitalWrite(ledBasGauche, LOW);
      digitalWrite(ledCentre, LOW);
      digitalWrite(ledHautDroite, LOW);
      digitalWrite(ledBasDroite, LOW);
    }
    if (l == 1) {
      //affichage des diodes en forme de 1
      digitalWrite(ledHautGauche, LOW);
      digitalWrite(ledBasGauche, LOW);
      digitalWrite(ledCentre, HIGH);
      digitalWrite(ledHautDroite, LOW);
      digitalWrite(ledBasDroite, LOW);
    }
    if (l == 2) {
      //affichage des diodes en forme de 2
      digitalWrite(ledHautGauche, HIGH);
      digitalWrite(ledBasGauche, LOW);
      digitalWrite(ledCentre, LOW);
      digitalWrite(ledHautDroite, LOW);
      digitalWrite(ledBasDroite, HIGH);
    }
    if (l == 3) {
      //affichage des diodes en forme de 3
      digitalWrite(ledHautGauche, LOW);
      digitalWrite(ledBasGauche, HIGH);
      digitalWrite(ledCentre, HIGH);
      digitalWrite(ledHautDroite, HIGH);
      digitalWrite(ledBasDroite, LOW);
    }
    if (l == 4) {
      //affichage des diodes en forme de 4
      digitalWrite(ledHautGauche, HIGH);
      digitalWrite(ledBasGauche, HIGH);
      digitalWrite(ledCentre, LOW);
      digitalWrite(ledHautDroite, HIGH);
      digitalWrite(ledBasDroite, HIGH);
    }
    if (l == 5) {
      //affichage des diodes en forme de 5
      digitalWrite(ledHautGauche, HIGH);
      digitalWrite(ledBasGauche, HIGH);
      digitalWrite(ledCentre, HIGH);
      digitalWrite(ledHautDroite, HIGH);
      digitalWrite(ledBasDroite, HIGH);
    }
    delay(1000); //attente d'une seconde
  }
  // à répéter à l'infini
}
Exemple de certificat de réussite
Exemple de certificat de réussite