LBotics.at

An den sechs analogen Eingängen A0, ... , A5 können Spannungen zwischen 0V und 5V gemessen werden. Es könnte zum Beispiel ein Sensor angeschlossen werden, der an seinem Ausgang Spannungen in diesem Bereich ausgibt, die es zu ermitteln und weiter zu verarbeiten gilt.

Im dem Mikrocontoller am Arduino Board befindet sich ein ADC (Analog Digital Converter), der den gemessenen Spannungswerten ganzzahlige Werte zwischen 0 und 1023 zuordnet. Diese Zahlen zwischen 0 und 1023 repräsentieren den Spannungsbereich zwischen 0V und 5V und können in einem Programm verwendet werden, um auf entsprechende unterschiedliche Spannungswerte zu reagieren.

In diesem Beispiel wird ein Potentiometer verwendet, mit dem man an PIN A3 variable Spannungen zwischen 0V und 5V erzeugen kann. Die beiden äußeren Anschlüsse des regelbaren Widerstandes werden mit dem 5V PIN und der Masseleitung GND verbunden. Der mittlere Anschluss des Potentiometers wird mit dem analogen Eingang A3 verbunden.

Aufbau und Material
  • 1 Potentiometer 10k

Programmierbeispiel

Dieses Programm liest den digitalen Wert des Analog Digital Wandlers aus, der der Spannung an PIN A3 entspricht. Ist dieser Wert größer als 511 (entspricht ungefähr 2,5V) so wird die LED an PIN 13 eingeschaltet, liegt der Wert darunter, soll die LED nicht brennen.

void setup()
{
pinMode(13, OUTPUT); // Pin 13 wird als digitaler Ausgang festgelegt
}
void loop()
{
int AnalogWert = analogRead(A3); // auslesen des Werts an Pin A3 und ablegen in der Integervariable AnalogWert
if (AnalogWert>511) // Abfrage, ob der Wert der Variable AnalogWert größer als 511 ist
{
digitalWrite(13, HIGH); // ist der Wert der Variable AnalogWert größer als 511, dann Ausgang Pin 13 auf HIGH
}
else
{
digitalWrite(13, LOW); // ist der Wert der Variable AnalogWert kleiner oder gleich 511, dann Ausgang Pin 13 auf LOW
}
}
Erklärungen zu diesem Programmierbeispiel

pinMode(pin, mode)

Mit dieser Funktion wird das Verhalten eines der 14 I/O PINs festgelegt.

pin: 0, ..., 13

mode: OUTPUT, INPUT, INPUT_PULLUP

analogRead(pin)

Diese Funktion dient zum Auslesen des Werts eines analogen Eingangs. Der Rückgabewert dieser Funktion ist eine Integerzahl zwischen 0 und 1023.

pin: A0, ..., A5

return: 0, ..., 1023

digitalWrite(pin, value)

Diese Funktion dient zum Setzen des Zustands wenn ein Pin als Ausgang konfiguriert ist.

pin: 0, ..., 13

value: LOW, HIGH (bei LOW liegen am Pin 0V, bei HIGH liegen am Pin 5V an)