analogReadResolution()
Description :
analogReadResolution() est une extension de l’API Analog qui permet de définir la résolution (en bits) de la valeur renvoyée par analogRead(). La valeur par défaut est de 10 bits (valeurs de retour comprises entre 0 et 1023) pour une compatibilité ascendante avec les cartes AVR.
Les cartes Arduino proposent différentes résolutions, permettant différentes plages :
10 bits : valeurs comprises entre 0 et 1023 ; 12 bits : valeurs comprises entre 0 et 4095 ; 14 bits : valeurs comprises entre 0 et 16383 ; 16 bits : valeurs comprises entre 0 et 65535.
Syntaxe :
Utilisez la fonction suivante pour définir la résolution ADC de votre carte :
analogReadResolution(bits)
Paramètres :
La fonction admet le paramètre suivant :
- bits : détermine la résolution (en bits) de la valeur renvoyée par la fonction analogRead().
Vous pouvez définir cette valeur entre 1 et 32. Vous pouvez définir des résolutions supérieures aux 12 ou 16 bits pris en charge, mais les valeurs renvoyées par analogRead() seront approximatives. Voir la note ci-dessous pour plus de détails.
Retours
La fonction ne renvoie rien.
Exemple de code :
Le code montre comment utiliser l’ADC avec différentes résolutions.
void setup() { // ouvrir une connexion série Serial.begin(9600); } void loop() { // lire l'entrée sur A3 à la résolution par défaut (10 bits) // et l'envoyer via la connexion série analogReadResolution(10); Serial.print("ADC 10-bit (default) : "); Serial.print(analogRead(A3)); // changer la résolution à 12 bits et lire A3 analogReadResolution(12); Serial.print(", 12-bit : "); Serial.print(analogRead(A3)); // changer la résolution à 16 bits et lire A3 analogReadResolution(16); Serial.print(", 16-bit : "); Serial.print(analogRead(A3)); // changer la résolution à 8 bits et lire A3 analogReadResolution(8); Serial.print(", 8-bit : "); Serial.println(analogRead(A3)); // un petit délai pour ne pas monopoliser Serial Monitor delay(100); }
Remarques et avertissements :
Si vous définissez la valeur analogReadResolution() sur une valeur supérieure aux capacités de votre carte, la carte Arduino ne renvoie qu’à sa résolution maximale, en complétant les bits supplémentaires par des zéros.
Par exemple, utiliser l’UNO R4 avec analogReadResolution(16) vous donnera un nombre approximatif de 16 bits, les 14 premiers bits contenant la valeur réelle du CAN et les 2 derniers étant complétés par des zéros.
Si vous définissez la valeur analogReadResolution() sur une valeur inférieure aux capacités de votre carte, les bits de poids faible supplémentaires lus par le CAN seront ignorés.
L’utilisation d’une résolution de 16 bits (ou de toute résolution supérieure aux capacités matérielles réelles) vous permet d’écrire des croquis qui gèrent automatiquement les périphériques dotés d’un CAN de résolution supérieure, dès leur disponibilité sur les futures cartes, sans modifier une seule ligne de code.
Source : https://docs.arduino.cc/language-reference/en/functions/analog-io/analogReadResolution/