Note

Bonjour et bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Découvrez plus en profondeur le monde de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des conseils et des tutoriels pour développer vos compétences.

  • Aperçus exclusifs : Profitez d’un accès anticipé aux nouvelles annonces de produits et aux avant-premières.

  • Réductions spéciales : Bénéficiez de remises exclusives sur nos nouveaux produits.

  • Promotions festives et concours : Participez à des concours et à des promotions de saison.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

1.3 Écriture Analogique

Aperçu

Vous pouvez générer une onde PWM sur la broche en utilisant analogWrite(). Cette méthode peut être utilisée pour ajuster la luminosité d’une LED, changer la couleur d’une LED RGB, ajuster la vitesse d’un moteur, etc. Ici, nous allons prendre l’exemple d’une LED pour obtenir une variation progressive de sa luminosité.

Composants requis

../_images/list_1.3.png

※ Modulation de largeur d’impulsion

La modulation de largeur d’impulsion, ou PWM, est une technique permettant d’obtenir des résultats analogiques par des moyens numériques. Le contrôle numérique est utilisé pour créer une onde carrée, un signal qui alterne entre marche et arrêt. Ce motif marche-arrêt peut simuler des tensions entre l’état allumé (5 Volts) et éteint (0 Volts) en modifiant la durée de l’état actif par rapport à l’état inactif. Cette durée d’activation est appelée largeur d’impulsion. En modifiant cette largeur, on obtient des valeurs analogiques variables. Par exemple, si ce motif est appliqué suffisamment vite avec une LED, le résultat est comme si la LED était commandée par une tension stable entre 0 et 5 V, modulant ainsi sa luminosité.

Un appel à analogWrite() se fait sur une échelle de 0 à 255, de sorte que analogWrite(255) correspond à un cycle de travail de 100 % (toujours activé), tandis que analogWrite(127) correspond à un cycle de travail de 50 % (activé la moitié du temps).

../_images/image402.png

Circuit Fritzing

Dans cet exemple, nous utilisons la broche PWM 9 pour commander la LED. Connectez une extrémité de la résistance à la broche 9, puis la patte longue (anode) de la LED à l’autre extrémité de la résistance. Reliez la patte courte (cathode) de la LED au GND.

Note

Les broches PWM de la carte Mega2560 sont les suivantes : 2 à 13, 44 à 46.

../_images/image30.png

Schéma électronique

../_images/image401.png

Code

Note

  • Vous pouvez ouvrir directement le fichier 1.3_analogWrite.ino situé dans le dossier sunfounder_vincent_kit_for_arduino\code\1.3_analogWrite.

  • Ou copier ce code dans l’IDE Arduino.

Après avoir téléversé le code sur la carte Mega2560, vous pourrez voir que la LED s’illumine progressivement puis s’éteint progressivement.

Analyse du Code

Déclarez la broche 9 en tant que ledPin.

int ledPin = 9;

Dans loop(), analogWrite() assigne à ledPin une valeur analogique (onde PWM) entre 0 et 255 pour modifier la luminosité de la LED.

analogWrite(ledPin, value);

En utilisant une boucle for, la valeur de analogWrite() peut être modifiée progressivement entre la valeur minimale (0) et la valeur maximale (255).

for (int value = 0 ; value <= 255; value += 5) {
    analogWrite(ledPin, value);
}

Pour voir clairement le phénomène expérimental, un délai (delay(30)) est ajouté dans la boucle for afin de contrôler la vitesse de variation de la luminosité.

void loop() {
for (int value = 0 ; value <= 255; value += 5) {
    analogWrite(ledPin, value);
    delay(30);
}
}

Image du Phénomène

../_images/image36.jpeg