Aller au contenu

Projet 2- Faire varier l'intensité d'une LED

Objectifs

L'objectif de ce projet est de faire varier une LED via le code en utilisant une broche PWM et via un potentiomètre.

Composants utilisés

Composant Quantité
Arduino Uno R3 1
Potentiomètre 250 kΩ 1
Résistance 120 Ω 1
LED Rouge 1

Qu'est ce qu'un potentiomètre ?

Pour faire très simple, un potentiomètre est une "résistance variable". Il possède trois bornes :

  • Les deux bornes aux extrémités : Elles sont connectées aux deux bouts d'une piste résistive fixe.
  • La borne centrale : Elle est reliée à un curseur mobile (une sorte de contact glissant). Lorsque vous tournez le bouton ou déplacez le curseur, ce contact se déplace le long de la piste résistive.

La résistance de la piste résistive totale est notée \(R_{totale}\). Si l'on applique une tension d'entrée \(V_{entree}\)​ entre les deux bornes d'extrémité et que l'on mesure la tension de sortie \(V_{sortie}\)​ entre le curseur et la masse, alors le composant se comporte comme deux résistances en série (\(R1\) et \(R2\)) dont la somme reste constante \(R1​+R2​=R_{totale}​\).

\[V_{sortie} = V_{entree} \cdot \frac{R1}{R1 + R2}\]
\[V_{sortie} = V_{entree} \cdot \frac{R1}{R_{totale}}\]

En déplaçant le curseur, on fait varier le rapport de proportionnalité, ce qui permet d'obtenir une tension \(V_{sortie}\)​ variant de \(V_{sortie}\) à \(V_{entree}\)​.

Le schéma

Il suffit de tourner la molette du potentiomètre pour déplacer le curseur sur la piste résistif pour faire varier la résistance.

  • On choisit la broche 9 car elle est capable de faire du PWM (ou "modulation de largeur d'impulsions", représentée par un symbole ~ sur la carte), ce qui permet de faire varier la luminosité d'une LED et pas seulement de l'allumer ou de l'éteindre.
  • On utilise la broche A0 car c'est une entrée analogique capable de mesurer les variations de tension progressives du potentiomètre, contrairement aux broches numériques qui ne comprennent que le "tout ou rien" (\(0\) ou \(5V\))

Lire la valeur du potentiomètre

Le but est de lire la position d'un potentiomètre et d'ajuster l'intensité lumineuse d'une LED en conséquence, tout en affichant la valeur lue sur l'ordinateur :

int ledPin = 9;     // La LED est connectée à la broche numérique 9
int analogPin = 0;  // Le potentiomètre est connecté à la broche analogique A0
int val = 0;        // Variable pour stocker la valeur lue (entre 0 et 1023)

void setup() { 
    pinMode(ledPin, OUTPUT); // On configure la broche 9 comme une SORTIE (elle envoie du courant) 
    Serial.begin(9600); // On ouvre la communication série à une vitesse de 9600 bauds 
}

void loop()
{
    val = analogRead(analogPin); // 1. Lecture de la valeur
    Serial.print("Valeur du potentiometre : ");
    Serial.println(val); // 2. Affichage sur l'ordinateur
    analogWrite(ledPin, val / 4); // 3. Ajustement de la LED
    delay(100); // 4. Pause
}

Quelques explications :

  • Serial.begin(9600) : Permet à l'Arduino de "parler" à votre ordinateur via le câble USB. Cela permet d'utiliser le Moniteur Série pour voir ce qu'il se passe.
  • analogRead(analogPin) : L'Arduino mesure la tension sur la broche A0. Il convertit cette tension (entre 0V et 5V) en un nombre entier compris entre 0 et 1023. Cette valeur est stockée dans val. Mais la fonction analogWrite (qui gère la luminosité de la LED) n'accepte que des valeurs de 0 à 255. En divisant val par 4 (\(1023 / 4 \approx 255\)), on adapte le signal du potentiomètre pour que la LED passe d'éteinte (0) à sa luminosité maximale (255).
    • L'Arduino code la mesure de analogPin sur 10 bits (\(2^{10} = 1024\) possibilités), ce qui lui permet de diviser la tension de 0 à 5V 1024 valeurs possibles numérotées de 0 à 1023.

A noter que nous n'utilisons pas directement la résistance du potentiomètre pour faire varier notre LED. On lit la valeur sur la broche \(A0\) pour piloter la valeur de la broche PWM \(9\).