Clignotement de LEDs
Exercice 1 : faire clignoter une LED
Téléversement du microgiciel
Fichier > Exemples > 01.Basics > Blink
Le programme s’exécute sur la carte automatiquement après le téléversement :
la LED clignote !
Quelques explications
La plupart des cartes Arduino ont une LED intégrée. Sur le modèle UNO, elle est liée au port numérique 13 et elle est orange.
Modifier le programme « Blink » pour faire clignoter la LED intégrée selon le rythme suivant :
0.1 s allumée … 0.8 s éteinte …
Modifier à nouveau le programme pour envoyer un S.O.S. en code morse : · · · — — — · · ·
Câblage d’une LED externe
RAPPEL : avant tout câblage électrique, débrancher le microcontrôleur !
Lire les articles :
Matériel nécessaire :
- une LED et sa résistance 220Ω (Rouge – Rouge – Marron)
Schéma :
À l’aide de la platine de prototypage (breadboard), réaliser le câblage de la LED externe, de sorte qu’elle soit elle aussi pilotés par le port numérique 13.
Vérifier qu’elle s’allume (et clignote !) après le mise sous tension de l’Arduino.
Exercice 2 : faire varier l’intensité d’une LED
L’objectif est de faire varier l’intensité de la LED en utilisant un petit potentiomètre.
Téléversement du microgiciel
Fichier > Exemples > 03.Analog > AnalogInOutSerial
Lire les articles :
Matériel nécessaire :
- une LED et sa résistance 220Ω (Rouge – Rouge – Marron)
- un potentiomètre 10kΩ
Schéma :
La LED est câblée comme dans l’exercice précédent.
Le potentiomètre est relié à un port analogique, afin de permettre acquisition de la consigne d’intensité de la part de l’utilisateur :
RAPPEL : avant tout câblage électrique, débrancher le microcontrôleur !
En utilisant le shield de prototypage (avec breadboard), réaliser le montage de la LED et du potentiomètre.
Tester le bon fonctionnement du montage
Comment ça marche ?
Acquisition de la consigne
Le potentiomètre est utilisé pour acquérir la consigne de l’utilisateur : monté en diviseur de tension, la tension sur son connecteur central (relié au curseur) varie ainsi de 0V à 5V.
Le port analogique utilisé est le port A0, valeur stockée pour ce programme dans une constante de type int appelée analogInPin) :
const int analogInPin = A0;
Dans la boucle principale, la tension sur le connecteur A0 est convertie en nombre grâce la fonction analogRead(), puis affectée à une variable sensorValue :
sensorValue = analogRead(analogInPin);
Variation de l’intensité lumineuse
En principe, un port numérique ne peut délivrer qu’une information « tout ou rien » : allumé/éteint.
Mais grâce à la technique PWM, le port numérique choisi est capable de délivrer une information (presque) analogique.
L’instruction
analogWrite(analogOutPin, outputValue);
génère un signal PWM de valeur outputValue sur le port numérique analogOutPin .
Adaptation des valeurs
La valeur sensorValue , obtenue via le port analogique, est comprise entre 0 (0V sur la broche) et 1023 (5V sur la broche).
La valeur attendue par la fonction analogWrite() , outputValue , doit être comprise entre 0 et 255.
Il faut opérer un « changement d’échelle », ce qui est réalisé par l’instruction :
outputValue = map(sensorValue, 0, 1023, 0, 255);
En résumé :
Exercice 3 : les vases communicants
Lire les articles :
Matériel nécessaire :
- deux LED et leurs résistances (voir les bases du câblage)
- 1 potentiomètre 100 kΩ
- Ajouter une autre LED au circuit de manière à ce que les deux LED puissent êtres commandées indépendamment (les deux LED doivent donc être pilotées par des ports numériques différents !).
- Modifier le programme de telle sorte qu’à la rotation du potentiomètre, l’intensité lumineuse d’une des deux LED augmente tandis que celle de l’autre diminue.
D’autres exercices …
Bonjour,
Je viens de faire ce qui suit :
http://p5030.phpnet.org/portail_sii/books/_ext/tinkercad/index.php?url=accueil
Perfectible à coup sûr (et je suis mécanicien, pas elec).
Si ça peut servir (donner des idées pourquoi pas)
Salutation
Gilles