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?
Weiteres Beispiel: Der
analogRead
Block gibt einen Zahlenwert von 540 aus. Welche Spannung liegt am Eingang an?
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:
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 );
}