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
}