Ecrit une valeur analogique ( de forme PWM ) 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 va générer une onde carrée constante du cycle de travail précis jusqu'à ce que le prochain appel à analogWrite () (ou un appel à digitalRead () ou digitalWrite () sur la même broche). La fréquence du signal PWM sur la plupart des broches est d'environ 490 Hz. Sur les Uno et similaires, les broches 5 et 6 ont une fréquence d'environ 980 Hz. Pins 3 et 11 sur le Leonardo également fonctionner à 980 Hz.

Sur la plupart des cartes Arduino (ceux avec les ATmega168 ou ATmega328), cette fonction fonctionne sur les broches 3, 5, 6, 9, 10 et 11. Sur l'Arduino Mega, il travaille sur les broches 2-13 et 44 - 46. ancien Arduino planches avec un ATmega8 ne supportent que analogWrite () sur les broches 9, 10, et 11.

L'Arduino Due soutient analogWrite () sur les broches 2 à 13, plus broches DAC0 et DAC1. Contrairement aux broches PWM, DAC0 et DAC1 sont Convertisseurs numériques-analogiques, et agissent comme de véritables sorties analogiques.

Vous ne devez pas appeler pinMode () pour définir la broche comme sortie avant d'appeler analogWrite ().

La fonction de analogWrite n'a rien à voir avec les broches analogiques ou la fonction analogRead. Syntaxe

analogWrite (broche, valeur) Paramètres :broches: la broche d'écrire à.

valeur: le cycle de service: entre 0 (toujours éteint) et 255 (toujours sur). Résultats : rien

Notes et problèmes connus

Les sorties PWM générés sur les broches 5 et 6 auront cycles de droits plus élevés que prévu. Ce est parce que des interactions avec les millis () et retard () fonctions, qui partagent la même horloge interne utilisée pour générer ces sorties PWM. On se en aperçoit surtout sur les paramètres faibles duty-cycle (par exemple 0-10) et peut résulter en une valeur de 0 pas entièrement désactiver la sortie sur les broches 5 et 6. Exemple

Définit la sortie à la proportionnelle LED à la valeur lue par le potentiomètre.

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

void setup () { pinMode (ledPin, OUTPUT); // met la broche en sortie }

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

Share