Table of Contents

Jalon 1: La classe DimmableLed

Retour à la séance 7

Pour ce TD, nous allons partir du code qui est présent dans l'archive que vous télécharger à partir de ce lien.

L'objectif est d'étendre la classe Led en implantant une classe DimmableLed, la différence entre la classe Led et la classe DimmableLed, c'est que la classe DimmableLed autorise de contrôler la tension que nous délivrons à la classe diode. Plus la tension est élevée, plus l'intensité lumineuse de la diode est importante.

Phase 1

Brancher votre diode blanche en la mettant entre la terre et un port de la carte ARDUINO parmi les ports allants de 8 à 12.

Phase 2

Tester le bon branchement de votre diode en écrivant un petit programme qui peut ressembler au programme suivant :

const int ledPin = 8; // J'ai pris le port 8 pour la Diode.
 
void setup() {
  pinMode(ledPin, OUTPUT);  
  digitalWrite(ledPin, HIGH);
}
 
void loop() {}

Normalement votre led doit s'allumer.

Phase 3

Maintenant, nous allons nous intéresser au squelette de la classe DimmableLed. Ce squelette propose des fonctions nouvelles par rapport à la classe Led :

A côté de ces fonctions nouvelles, nous devons modifier les anciennes fonctions :

Ensuite, vous pouvez ajouter des fonctions complémentaires si vous le souhaitez :

Etape 1

Désormais, nous ne sommes pas en tout ou rien. C'est pour cela que nous n'utilisons pas la commande digitalWrite mais la commande analogWrite(pin, value) qui prend deux valeurs :

analogWrite(ledPort, 0) revient à éteindre la led, analogWrite(ledPort, 255) revient à mettre la led au maximun de son intensité.

Compléter le code de la classe DimmableLed en définissant d'abord les fonctions :

Tester si cela fonctionne bien.

Etape 2

Compléter les fonctions :

et tester enfin avec un programme dont la boucle du programme qui allume la diode et diminue progressivement l'intensité. Une fois la diode éteinte, il rallume la diode et diminue progressivement l'intensité.

Navigation

Suivant: Jalon 2: Détecter les appuis courts, longs et très longs sur le bouton poussoir