Définition et principe
Les signaux numériques ont toujours une valeur
LOW ou HIGH, donc les sorties numériques ne nous permettent pas, par exemple,
de régler la luminosité de la LED, ou de faire varier la vitesse de rotation d’un moteur. Pour pouvoir faire
cela, il serait nécessaire de pouvoir disposer de sorties permettant des
tensions intermédiaires entre LOW et HIGH : La PWM, pour Pulse Width Modulation, ou MLI en français pour Modulation de largeur d’impulsion.
Les
micro-contrôleurs proposent donc des dispositifs permettant de disposer de PWM
autonomes où le signal voulu est engendré indépendamment de l’exécution du
programme. Toutes les broches ne sont pas utilisables. Le tableau ci-dessous
résume la disponibilité des PWM sur les cartes Arduino.
En ce
qui concerne la programmation, la fonction permettant de fixer le rapport cyclique de la PWM est la
fonction analogWrite(...).
• Le premier argument
de analogWrite(...) est la broche concernée.
• Le second argument
est le rapport cyclique.
➔ Le pourcentage de
temps passé à l’état HIGH sur la période du signal est appelé le rapport
cyclique. Il varie donc de 0%, le signal est tout le temps LOW, à 100%, le
signal est tout le temps HIGH.
➔ Le rapport cyclique
n’est pas donné de 0 à 100 mais de 0 à 255. Il faut donc faire une règle de 3
pour calculer la valeur à appliquer pour le rapport cyclique voulu.
Exemple
La valeur à appliquer pour un rapport
cyclique de 75% sera égal à 0,75 x 255 = 191.
analogWrite(3, 191); // éclaire notre DEL à 75%
0 Comments