Der Arduino besitzt die Analog-Pins A0 bis A5. Mit diesen Pins kann man Spannungen von 0V bis 5V messen. Der entsprechende Pin muss lediglich mit dem Befehl pinMode(Pinnummer,INPUT) auf INPUT gestellt werden.
Der Befehl analogRead(Pinnummer) liefert dann ganzzahlige Werte (vom typ int) von 0 bis 1023.
Bei 0V liefert analogRead(Pinnummer) 0 und bei 5V 1023.
Die Idee ist eine Spannungsteilerschaltung bestehend aus einem Widerstand und einer in Sperrichtung geschalteten Photodiode.
Fällt auf die Photodiode kein oder sehr wenig Licht, so sperrt die Photodiode. Ihr Widerstand ist sehr hoch. Am Pin A0 liegt eine Spannung von 0V an. Damit liefert analogRead(A0) den Wert 0.
Je mehr Licht auf die Photodiode fällt, desto besser leitet sie. Im Extremfall liegen dann am Analog-Pin 5V an und analogRead(A0) liefert 1023.
Je mehr Licht auf die Photodiode fällt, desto besser leitet sie. Im Extremfall liegen dann am Analog-Pin 5V an und analogRead(A0) liefert 1023.
Im folgenden Beispiel wird der Wert von analogRead(A0) auf den PC übertragen und kann dort mit dem "seriellen Monitor" beobachtet werden. Nähere Informationen können hier nachgelesen werden.
Programmbeispiel:
void setup() { Serial.begin(9600); // Aufbau einer seriellen Datenübertragung pinMode(A0,INPUT); } void loop() { Serial.println(analogRead(A0)); // Der Wert von analogRead(A0) wird ausgegeben delay(100); }