Activité 4 – Sorties analogiques

Régler la luminosité d’une DEL avec un potentiomètre

 

. Objectif

Notre circuit d’apprentissage, dispose d’un potentiomètre dont le « point milieu » est relié à la broche A0 de l’Arduino. Suivant la position du « point milieu », nous avons vu que la tension appliquée à la broche A0 varie entre 0 et 5 V. On peut donc utiliser le potentiomètre pour régler la luminosité de la DEL rouge.

En effet, la DEL est connectée sur une broche PWM et contrairement aux sorties numériques qui ne peuvent avoir que deux valeurs 0 ou 1 (0 ou 5V), une sortie analogique (ou plutôt PWM) permet d’obtenir une tension entre 0 et 5 V (les broches 3, 5, 6, 9, 10 et 11 peuvent être configurés en sortie analogique).

Nous allons donc apprendre à utiliser une sortie PWM.

 

. Gestion des sorties analogiques

Pour utiliser une broche de l’Arduino en sortie analogique (mode PWM), il faut au préalable la déclarer en sortie avec la fonction pinMode().

La tension de la broche déclarée en sortie analogique est réglable en modifiant le rapport cyclique du signal PWM à l’aide de la fonction :

analogWrite()

. Syntaxe :

analogWrite(broche, valeur)

. Paramètres :

broche: la broche utilisée pour « écrire » l’impulsion. Celle-ci devra être une broche ayant la fonction PWM (broches 3, 5 ,6 ,9 ,10 ou 11).

valeur: rapport cyclique du signal PWM, c’est à dire la proportion de l’onde carrée qui est au niveau HAUT, valeur entre 0 (0% HAUT donc toujours au niveau BAS) et 255 (100% HAUT donc toujours au niveau HAUT).

 

. Le programme

Le programme de l’activité lit la valeur de la broche A0 et applique cette tension sur la broche de la DEL rouge. La luminosité de la DEL est alors modifiée.


Déroulement du programme
 :

– Déclaration des constantes et variables :

. const int PinLED = 9  (constante nombre entier correspondant au n° de la broche sur laquelle la DEL est connectée)

. const int PinPOT = 0  (constante nombre entier correspondant au n° de la broche sur laquelle le potentiomètre est connecté)

. int ValPot = 0  (variable nombre entier pour stocker la valeur de la broche du potentiomètre)


– Initialisation des entrées et sorties :

. La broche de la DEL est initialisée en sortie digitale. Des données seront donc envoyés depuis le microcontrôleur vers cette broche :
pinMode(PinLed, OUTPUT)


– Fonction principale en boucle :

. Lecture de la valeur de la tension de l’entrée analogique du potentiomètre : ValPot = analogRead(PinPot)

. règlage la luminosité de la DEL rouge en appliquant cette valeur sur la broche de la DEL : analogWrite(PinLED, int(ValPot/4))

. Attente de 100 ms avant une nouvelle mesure


Remarque :

La valeur lue de la broche A0 est un nombre entier compris entre 0 et 1023.

Cependant la fonction « analogWrite() » n’accepte que des valeurs entre 0 et 255. Il faut donc diviser par 4 la valeur lue de la broche A0 avant de l’appliquer sur la broche de la DEL (Le résultat de la division est d’abord converti en entier avec la fonction « int() » )