Reference   Language | Libraries | Comparison | Changes

analogReadResolution()

Beschreibung

analogReadResolution() ist eine Erweiterung der Analog API für den Arduino Due.

Setzt die Größe (in Bit) des Werts der von analogRead() zurückgegeben wird. Standardmäßig sind das 10 Bit (Rückgabewerte zwischen 0-1023) Für Rückwärtskompatiblität mit AVR basierten Boards.

Der Due verfügt über 12-Bit ADC Fähigkeiten auf welche zugegriffen werden kann, indem man die Auflösung zu 12 ändert. Das resultiert in Rückgabewerten von analogRead() zwischen 0 und 4095.

Syntax

analogReadResolution(bits)

Parameter

bits: Legt die Auflösung (in Bit) des Rückgabewerts der Methode analogRead() fest. Man kann Werte von 1 bis 32 zuweisen. Werte höher als 12 Bit werden approximiert. Siehe unten für Details.

Rückgabewert

None.

Achtung

Wenn die analogReadResolution höher als die Fähigkeiten des Boards gesetzt wird, wird der Arduino nur Rückgabewerte in seiner maximalen Auflösung zurückgeben. Die Bits zuviel werden mit Nullen belegt.

Beispiel: Die Anwendung von analogReadResolution(16) beim Due wird einen approximierten 16-Bit Wert mit den ersten 12 Bit den tatsächlichen Wert und die restlichen 4 Bit Nullen enthaltend zurückgeben.

Wenn mit analogReadResolution() ein Wert niedriger als die Fähigkeiten des Boards gesetzt wird, werden beim Rückgabe Wert die niedrigwertigsten Bits abgeschnitten.

Wenn eine 16 Bit Auflösung verwendet wird (oder jede Auflösung höher als die momentanen Hardware Fähigkeiten) können Sketches geschrieben werden, die automatisch die besseren Fähigkeiten von zukünftigen Boards nutzen, ohne eine Zeile Code ändern zu müssen.

Beispiel

void setup() {
  // open a serial connection
  Serial.begin(9600);
}

void loop() {
  // read the input on A0 at default resolution (10 bits)
  // and send it out the serial connection
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // change the resolution to 12 bits and read A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 16 bits and read A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 8 bits and read A0
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // a little delay to not hog serial monitor
  delay(100);
}

Weitere Informationen

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share