analogWriteResolution()
Description :
analogWriteResolution() est une extension de l’API Analog permettant de définir la résolution de la fonction analogWrite(). Sa valeur par défaut est de 8 bits (valeurs comprises entre 0 et 255) pour assurer la rétrocompatibilité avec les cartes AVR.
Syntaxe :
Utilisez la fonction suivante pour exploiter toute la gamme des sorties DAC et PWM :
analogWriteResolution(bits)
Paramètres :
La fonction accepte le paramètre suivant :
bits : détermine la résolution (en bits) des valeurs utilisées dans la fonction analogWrite(). Cette valeur peut être comprise entre 1 et 32. Si vous choisissez une résolution supérieure ou inférieure aux capacités matérielles de votre carte, la valeur utilisée dans analogWrite() sera soit tronquée si elle est trop élevée, soit complétée par des zéros si elle est trop faible. Voir la remarque ci-dessous pour plus de détails.
Retours
La fonction ne renvoie rien.
Exemple de code :
void setup() { // ouvrir une connexion série Serial.begin(9600); // faire de notre broche numérique une sortie pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void loop() { // lire l'entrée sur A0 et la mapper sur une broche PWM // avec une LED attachée int sensorVal = analogRead(A0); Serial.print("Analog Read : "); Serial.print(sensorVal); // la résolution PWM par défaut analogWriteResolution(8); analogWrite(11, map(sensorVal, 0, 1023, 0, 255)); Serial.print(" , 8-bit PWM value : "); Serial.print(map(sensorVal, 0, 1023, 0, 255)); // changer la résolution PWM à 12 bits analogWriteResolution(12); analogWrite(12, map(sensorVal, 0, 1023, 0, 4095)); Serial.print(" , 12-bit PWM value : "); Serial.print(map(sensorVal, 0, 1023, 0, 4095)); // changer la résolution PWM à 4 bits analogWriteResolution(4); analogWrite(13, map(sensorVal, 0, 1023, 0, 15)); Serial.print(", 4-bit PWM value : "); Serial.println(map(sensorVal, 0, 1023, 0, 15)); delay(5); }
Remarques et avertissements :
Capacités des cartes
- Les cartes avec une résolution PWM de 8 bits sont capables de diviser le cycle de service PWM en 255 étapes.
- Les cartes avec une résolution PWM de 10 bits sont capables de diviser le cycle de service PWM en 1024 étapes.
- Les cartes avec une résolution PWM de 12 bits sont capables de diviser le cycle de service PWM en 4095 étapes.
- Les cartes avec une résolution PWM de 16 bits sont capables de diviser le cycle de service PWM en 65536 étapes.
Autres considérations
Si vous définissez la valeur analogWriteResolution() sur une valeur supérieure aux capacités de votre carte, l’Arduino supprimera les bits supplémentaires.
Si vous définissez la valeur analogWriteResolution() sur une valeur inférieure aux capacités de votre carte, les bits manquants seront complétés par des zéros pour atteindre la taille matérielle requise.
Source : https://docs.arduino.cc/language-reference/en/functions/analog-io/analogWriteResolution/