Reference   Language | Libraries | Comparison | Changes

analogWriteResolution()

Beschreibung

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

analogWriteResolution() setzt die Auflösung der analogWrite() Funktion. Der Standardwert beträgt 8 Bit (Werte zwischen 0 und 255) um eine Abwärtskompatibilität mit AVR basierten Boards zu erreichen.

Der Due hat die folgende Hardwareressourcen:

  • 12 pins mit 8-bit PWM (wie bei anderen AVR basierten Boards)
  • 2 pins mit 12-bit DAC (Digital-to-Analog Converter)

Wenn die Schreibgenauigkeit (Auflösung) auf 12 gesetzt wird, kann analogWrite() mit Werten zwischen 0 und 4095 verwendet werden, um die maximale Genauigkeit des DAC auszunutzen oder das PWM Signal ohne Überlauf einzustellen.

Syntax

analogWriteResolution(bits)

Parameter

bits: bezeichnet die Auflösung (in Bits) des Wertes, der in der analogWrite() Funktion verwendet wird. Der Wert darf zwischen 0 und 32 liegen. Bei größeren oder kleineren Werten wird der in der analogWrite-Funktion verwendete Wert entweder abgeschnitten (wenn zu hoch) oder mit Nullen aufgefüllt (wenn zu klein).Beachten Sie die Hinweise weiter unten.

Rückgaben

Keine.

Hinweis

Wenn in analogWrite() ein Wert verwendet wird, der höher ist, als die Leistungsmerkmale des Boards vorgeben, werden die überzähligen Bits abgeschnitten. Beispiel: Wenn der Befehl analogWriteResolution(16) beim Due auf einem 12-Bit DAC Pin anwendet wird, werden bei analogWrite() die ersten 12 Bits benutzt und die 4 überzähligen Bits verworfen.

Wenn in analogWrite() ein Wert verwendet wird, der kleiner ist, als die Leistungsmerkmale des Boards vorgeben, werden die fehlenden Bits mit Nullen aufgefüllt. Beispiel: Wenn der Befehl analogWriteResolution(8) beim Due auf einem 12-Bit DAC Pin anwendet wird, wird der Arduino 4 Null-Bits dem 8-Bit-Wert hinzufügen, um die geforderten 12 Bits bei analogWrite() zu erreichen.

Beispiel

void setup(){
  // öffnen einer seriellen Verbindung
  Serial.begin(9600);
  // digitale Pins werden als Ausgang deklariert
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop(){
  // lesen des Einganges an A0 und einem PWM Pin
  // mit angeschlossener LED zuordnen
  int sensorVal = analogRead(A0);
  Serial.print("Analog Read) : ");
  Serial.print(sensorVal);

  // Standardauflösung für PWM
  analogWriteResolution(8);
  analogWrite(11, map(sensorVal, 0, 1023, 0 ,255));
  Serial.print(" , 8-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0 ,255));

  // Änderung der Auflösung auf 12 bits
  // die volle 12-Bit Auflösung wird nur beim Due
  // unterstützt
  analogWriteResolution(12);
  analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
  Serial.print(" , 12-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 4095));

  // Änderung der Auflösung auf 4 bits
  analogWriteResolution(4);
  analogWrite(13, map(sensorVal, 0, 1023, 0, 127));
  Serial.print(", 4-bit PWM value : ");
  Serial.println(map(sensorVal, 0, 1023, 0, 127));

  delay(5);
}

Siehe auch

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