|

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/

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *