Clignotement de LEDs

Exercice 1 : faire clignoter une LED

Téléversement du microgiciel

  • blink_tabOuvrir le croquis ; depuis le menu, faire :

Fichier > Exemples > 01.Basics > Blink

  • Vérifier le programme : bouton_compil
  • Téléverser le programme : bouton_televerse

 

Le programme s’exécute sur la carte automatiquement après le téléversement :

la LED clignote !led_13

 

 

 

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 :led_13

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)

Resistance_220

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.

en cas de problème ...
Si la LED ne s’allume pas :

  • vérifier le câblage, et notamment que les « pattes » des composants sont bien insérées dans la breadboard, et dans les bonnes rangées de connecteurs (voir les bases du câblage)
  • vérifier que le circuit est bien connecté au port n°13, et que le port 13 est bien initialisé dans le programme,
  • vérifier que la LED (dipôle polarisé !! voir les LED) est branchée à l’endroit : les ports numériques à l’état haut sont au potentiel +5V.

Si la LED ne s’allume pas :

  • vérifier que le micrologiciel a bien été téléversé (et que le téléversement s’est bien déroulé)

 

 


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

  • blink_tabOuvrir le croquis ; depuis le menu, faire :

Fichier > Exemples > 03.Analog > AnalogInOutSerial

  • Vérifier le programme : bouton_compil
  • Téléverser le programme : bouton_televerse

Lire les articles :

Matériel nécessaire :

  • une LED et sa résistance 220Ω (Rouge – Rouge – Marron)

Resistance_220

  • 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

en cas de problème ...
Si la LED ne s’allume pas :

  • vérifier le câblage, et notamment que les « pattes » des composants sont bien insérées dans la breadboard, et dans les bonnes rangées de connecteurs (voir les bases du câblage)
  • vérifier que le circuit de la LED est bien connecté au port n°13, et que le port 13 est bien initialisé dans le programme,
  • vérifier que la LED (dipôle polarisé !! voir les LED) est branchée à l’endroit : les ports numériques à l’état haut sont au potentiel +5V.

Si l’intensité de la LED ne varie pas :

  • vérifier que les bornes du potentiomètres sont bien connectées, et notamment la borne liée au curseur qui doit être connectée au port A0.
  • vérifier que le microgiciel a bien été téléversé (et que le téléversement s’est bien déroulé)

 

 

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é :

varia_sketch

 


Exercice 3 : les vases communicants

Lire les articles :

Matériel nécessaire :

Resistance_220Resistance_220

  • 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.
en cas de problème ...
Si les LEDs ne s’allument pas :

  • vérifier le câblage, et notamment que les « pattes » des composants sont bien insérés dans la breadboard, et dans les bonnes rangées de connecteurs
  • vérifier que le circuit est bien connecté au port n°13
  • vérifier que les LED (dipôles polarisés !!) sont branchées à l’endroit : le + est du coté du port numérique

 

D’autres exercices …

 

Vous aimerez aussi...

1 réponse

  1. Gilles dit :

    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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code