Description :
Écrit une valeur analogique ( PWM wave ) sur une broche. Peut être utilisé pour allumer une LED à différentes luminosités ou entraîner un moteur à différentes vitesses. Après un appel à analogWrite()
, la broche générera une onde rectangulaire stable du cycle de service spécifié jusqu’au prochain appel à analogWrite()
(ou un appel à digitalRead()
ou digitalWrite()
) sur la même broche.
CONSEIL | BROCHES PWM | FRÉQUENCE PWM |
---|---|---|
Uno, Nano, Mini |
3, 5, 6, 9, 10, 11 |
490 Hz (pins 5 and 6: 980 Hz) |
Mega |
2 – 13, 44 – 46 |
490 Hz (pins 4 and 13: 980 Hz) |
Leonardo, Micro, Yún |
3, 5, 6, 9, 10, 11, 13 |
490 Hz (pins 3 and 11: 980 Hz) |
Uno WiFi Rev2, Nano Every |
3, 5, 6, 9, 10 |
976 Hz |
MKR boards * |
0 – 8, 10, A3, A4 |
732 Hz |
MKR1000 WiFi * |
0 – 8, 10, 11, A3, A4 |
732 Hz |
Zero * |
3 – 13, A0, A1 |
732 Hz |
Nano 33 IoT * |
2, 3, 5, 6, 9 – 12, A2, A3, A5 |
732 Hz |
Nano 33 BLE/BLE Sense |
1 – 13, A0 – A7 |
500 Hz |
Due ** |
2-13 |
1000 Hz |
101 |
3, 5, 6, 9 |
pins 3 and 9: 490 Hz, pins 5 and 6: 980 Hz |
* En plus des capacités PWM sur les broches indiquées ci-dessus, les cartes MKR, Nano 33 IoT et Zero ont une véritable sortie analogique lorsqu’elles sont utilisées analogWrite()
sur la broche DAC0
( A0
).
** En plus des capacités PWM sur les broches indiquées ci-dessus, le Due a une véritable sortie analogique lorsqu’il est utilisé analogWrite()
sur les broches DAC0
et DAC1
.
Vous n’avez pas besoin d’appeler pinMode()
pour définir la broche comme sortie avant d’appeler analogWrite()
.
La analogWrite
fonction n’a rien à voir avec les broches analogiques ou la analogRead
fonction.
Syntaxe :
analogWrite(pin, value)
Paramètres :
pin
: la broche Arduino à laquelle écrire. Types de données autorisés : int
.
value
: le rapport cyclique : entre 0 (toujours éteint) et 255 (toujours allumé). Types de données autorisés : int
.
Retour :
Rien
Exemple de code :
Définit la sortie de la LED proportionnellement à la valeur lue par le potentiomètre.
Remarques et avertissements :
Les sorties PWM générées sur les broches 5 et 6 auront des cycles de service plus élevés que prévu. Cela est dû aux interactions avec les fonctions millis()
et delay()
, qui partagent la même minuterie interne utilisée pour générer ces sorties PWM. Cela se remarquera principalement sur les paramètres de cycle d’utilisation bas (par exemple 0 – 10) et peut entraîner une valeur de 0 ne désactivant pas complètement la sortie sur les broches 5 et 6.
Source : https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/