Input

analogRead

analogRead-Block
Für Erklärung auf einzelne Komponenten klicken.

Block

Mit dem analogRead Block können die analogen Pins des Microcontrollers ausgelesen werden.

Das heißt man kann Spannungen an den analogen Pins A0 bis A5 zwischen 0 und 5 Volt gegen das Potential am GND Pin messen und mit diesen dann Rechenoperationen ausführen oder diese Ausgeben. Die meisten analoge Sensoren geben ihr Messergebnis als eine Strom- oder Spannungsgröße zurück. Beides kann mit der analogRead Funktion erfasst werden. Bei Stromgrößen muss man hier die Spannung über einen bekannten Widerstand messen, durch den der entsprechende Strom fließt, um dessen Betrag zu errechnen zu können. Der analogRead Block nimmt dabei nicht genau den Spannungswert an, sondern einen Wert zwischen 0 (bei 0 Volt Spannung) und 1023 (bei 5 Volt Spannung), da der Eingang eine 10 Bit Auflösung hat. (10 Bit: 210 = 1024 Werte)

Beispiel: Es liegt eine Spannung von 1 Volt am Eingang an. Welchen Wert gibt der analogRead Block zurück?

1023 · 1 Volt 5 Volt
≈ 205


Weiteres Beispiel: Der analogRead Block gibt einen Zahlenwert von 540 aus. Welche Spannung liegt am Eingang an?
5 Volt · 540 1023
≈ 2,64 Volt

Pin

Ein wählbarer Parameter dabei ist der Pin. Wie der Name schon vermuten lässt, kann man durch diesen Parameter den Pin wählen, der ausgelesen weden soll. Die Nummer des jeweiligen Pins kann auf dem Arduino selbst abgelesen werden, wo die Benennung aufgedruckt ist. Es können die analogen Pins A0 bis A5 gewählt werden. Die digitalen Pins 0 bis 13 sind nicht geeignet. Die Pinbezeichnung ist in aller Regel auf die Platine des Arduinos aufgedruckt.

Beispiel

In diesem Beispiel soll eine LED in Abhängigkeit des Eingangssignals an Pin A0 angesteuert werden. Die LED ist über einen Vorwiderstand an den digitalen Pin 5 angeschlossen. Wenn am Pin A0 eine Spannung von über 1 Volt anliegt, soll die LED Blinken. Wenn eine geringere Spannung anliegt, dann soll die LED normal durchgehend leuchten. Hier wird der falls und sonst Block verwendet, welche eine Bedingung überprüfen und anhand dieser dann einen Code entweder ausführen oder überspringen. Zudem wird der Vergleichsoperator "<=" verwendet. Dieser ist true, wenn der analoge Wert des analogRead Blockes den Wert von 205 übersteigt.

In ArduBlock könnte diese Funktion dann folgendermaßen aussehen:

Beispiel zum analogRead Block

Code

Im Code wird der Block mit der Funktion analoglRead(Pin) realisiert. Wobei für Pin hier die entsprechende Pinnummer eingetragen wird.

Im Code würde das Beispiel folgendermaßen aussehen:

if (205 <= analogRead(0)) {
  digitalWrite( 5 , HIGH );
  delay( 1000 );
  digitalWrite( 5 , LOW );
  delay( 1000 );
}
else {
  digitalWrite( 5 , HIGH );
}