1. Einführung

Aufgabe: Eine LED soll leuchten, wenn es dunkel wird bzw. wenn ein Fotowiderstand abgedeckt wird.

Der Mikrocontroller soll mithilfe eines Fotowiderstands die Helligkeit messen. Das funktioniert aufgrund eines einfachen physikalischen Prinzips. In einem Stromkreis, in dem zwei Verbraucher hintereinander geschaltet sind (Reihenschaltung), teilen sie sich die anliegende Spannung.

Nehmen wir an, wir haben zwei identische Lampen in Reihe geschaltet und legen eine Spannung von 6 Volt an. Dann zeigt ein Spannungsmessgerät an, dass an jeder Lampe nur 3 Volt anliegen. Wenn wir zwei ungleiche Lampen anschließen (eine mit einem geringeren Widerstand), können wir unterschiedliche Spannungen an den beiden Lampen messen, zum Beispiel 1,5 Volt und 4,5 Volt.



Ein Fotowiderstand verändert seinen Widerstand je nach Lichtstärke. Diesen Effekt nutzen wir, um anhand der Spannung einen Wert für Helligkeit oder Dunkelheit abzulesen. Um eine Spannungsteilung zu ermöglichen, verbinden wir den Fotowiderstand und einen Widerstand (1–10 K Ohm, abhängig vom Fotowiderstand) in Reihe und verbinden sie mit 5 Volt und Ground (GND).

Das Mikrocontroller-Board kann analoge Signale (Spannung) über die analogen Eingänge messen und verarbeiten. Der gemessene Spannungswert wird in eine Zahl umgewandelt. 0 Volt entsprechen der Zahl 0 und der höchste Messwert von 5 Volt entspricht der Zahl 1023 (10 Bit).

 

Zum Beispiel: Wenn wir eine Spannung von 2,5 Volt messen, liefert der Mikrocontroller den Wert 512 (1024 : 2).

1.1.Der serielle Monitor "serial monitor"

Der serielle Monitor ist ein wichtiger Teil der Arduino-Software. Über ihn können wir am PC Daten anzeigen, die das Mikrocontroller-Board sendet. Das ist besonders nützlich, wenn kein LCD-Display am Mikrocontroller angeschlossen ist.

In diesem Sketch wird der serielle Monitor genutzt, um die Werte des Fotowiderstands anzuzeigen. Das hilft uns dabei, die Helligkeit zu verstehen und das Programm entsprechend anzupassen. Zum Beispiel könnten wir die LED erst bei beginnender Dunkelheit einschalten. Dafür müssten wir festlegen: "Wenn der Wert des Fotowiderstands den Wert x unterschreitet, soll die LED leuchten." Durch das Auslesen und Anzeigen des Fotowiderstandswerts im seriellen Monitor können wir diesen Schwellenwert ermitteln.

2.Der Schaltplan



 

Die Code


// Der Analogpin A1 wird als Eingang für den Fotowiderstand definiert.
int eingang = A1;

// Der Pin 10 wird als Ausgang für die LED definiert.
int LED = 6;

// Die Variable sensorWert wird mit einem Startwert von 0 initialisiert.
int sensorWert = 0;

// Hier beginnt das Setup.
void setup() {
  // Die serielle Kommunikation mit einer Baudrate von 9600 wird gestartet.
  Serial.begin(9600);

  // Der Pin 10, an dem die LED angeschlossen ist, wird als Ausgang festgelegt.
  pinMode(LED, OUTPUT);
}

// Hier beginnt der Loop-Teil.
void loop() {
  // Der aktuelle Wert des Fotowiderstands wird am Analogpin A0 ausgelesen.
  sensorWert = analogRead(eingang);

  // Der Sensorwert wird im Serial Monitor angezeigt.
  Serial.print("Sensorwert = ");
  Serial.println(sensorWert);

  // Wenn der Sensorwert über 512 liegt, soll die LED leuchten.
  if (sensorWert > 512) {
    digitalWrite(LED, HIGH);
  } else {
    // Andernfalls soll die LED ausgeschaltet werden.
    digitalWrite(LED, LOW);
  }

  // Kurze Pause von 50 Millisekunden, in der die LED an oder aus ist.
  delay(50);
}
// Hiermit wird der Loop-Teil geschlossen.

Zusammengefasst: Der Code liest den Wert des Fotowiderstands am Analogpin A0 aus und zeigt ihn im Serial Monitor an. Wenn der Sensorwert über 512 liegt, wird die LED eingeschaltet, ansonsten bleibt sie ausgeschaltet. Der Code enthält auch eine kurze Verzögerung von 50 Millisekunden zwischen den Schleifen. Du kannst den Sensorwert anpassen und im Serial Monitor überprüfen, um die Reaktion der LED bei unterschiedlichen Lichtverhältnissen zu testen.