analogWrite()

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 DAC0A0).
** 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.

int ledPin = 9;      // LED connectée à la broche numérique 99
int analogPin = 3;   // potentiomètre connecté à la broche analogique 3
int val = 0;         // variable pour stocker la valeur lue

void setup() {
  pinMode(ledPin, OUTPUT);  // définit la broche comme sortie
}

void loop() {
  val = analogRead(analogPin);  // lire la broche d'entrée
  analogWrite(ledPin, val / 4); // les valeurs analogRead vont de 0 à 1023, 
                                // les valeurs analogWrite vont de 0 à 255
}

 

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/

 

Laisser un commentaire