Arduino - Erweiterte E / A-Funktion

In diesem Kapitel lernen wir einige erweiterte Eingabe- und Ausgabefunktionen kennen.

analogReference () Funktion

Konfiguriert die Referenzspannung, die für den Analogeingang verwendet wird (dh den Wert, der als oberster Bereich des Eingangsbereichs verwendet wird). Die Optionen sind -

  • DEFAULT - Die standardmäßige analoge Referenz von 5 Volt (auf 5-V-Arduino-Karten) oder 3,3 Volt (auf 3,3-V-Arduino-Karten)

  • INTERNAL - Eine eingebaute Referenz, die 1,1 Volt am ATmega168 oder ATmega328 und 2,56 Volt am ATmega8 entspricht (nicht verfügbar beim Arduino Mega)

  • INTERNAL1V1 - Eine eingebaute 1,1-V-Referenz (nur Arduino Mega)

  • INTERNAL2V56 - Eine eingebaute 2,56-V-Referenz (nur Arduino Mega)

  • EXTERNAL - Die an den AREF-Pin angelegte Spannung (nur 0 bis 5 V) wird als Referenz verwendet

analogReference () Funktionssyntax

analogReference (type);

type - kann jede Art von Folgendem verwenden (STANDARD, INTERN, INTERNAL1V1, INTERNAL2V56, EXTERN)

Verwenden Sie nicht weniger als 0 V oder mehr als 5 V für die externe Referenzspannung am AREF-Pin. Wenn Sie eine externe Referenz am AREF-Pin verwenden, müssen Sie die analoge Referenz auf EXTERNAL setzen, bevor Sie dieanalogRead()Funktion. Andernfalls schließen Sie die aktive Referenzspannung (intern erzeugt) und den AREF-Pin kurz und beschädigen möglicherweise den Mikrocontroller auf Ihrer Arduino-Platine.

Alternativ können Sie die externe Referenzspannung über einen 5K-Widerstand mit dem AREF-Pin verbinden und so zwischen externen und internen Referenzspannungen umschalten.

Beachten Sie, dass der Widerstand die Spannung ändert, die als Referenz verwendet wird, da sich am AREF-Pin ein interner 32K-Widerstand befindet. Die beiden wirken als Spannungsteiler. Zum Beispiel ergeben 2,5 V, die über den Widerstand angelegt werden, 2,5 * 32 / (32 + 5) = ~ 2,2 V am AREF-Pin.

Example

int analogPin = 3;// potentiometer wiper (middle terminal) connected to analog pin 3 
int val = 0; // variable to store the read value

void setup() {
   Serial.begin(9600); // setup serial
   analogReference(EXTERNAL); // the voltage applied to the AREF pin (0 to 5V only) 
      // is used as the reference.
}

void loop() {
   val = analogRead(analogPin); // read the input pin
   Serial.println(val); // debug value
}