Alarm­an­la­ge mit einem Fotowiderstand

Lese­zeit: 4 Minu­ten

Lösung
Seite als PDF

Eine Foto­wi­der­stand (LDR = Light Depen­dent Resis­tor) ist ein Halb­lei­ter, des­sen Wider­stands­wert licht­ab­hän­gig ist. Fällt Licht auf das Halb­lei­ter­ma­te­ri­al, dann wird es leit­fä­hi­ger und der Wider­stand wird klei­ner, der hin­durch­flie­ßen­de Strom wird grö­ßer und die dar­an abfal­len­de Span­nung wird klei­ner.
Je nach der Men­ge des ein­fal­len­den Lichts wird die LED ein- oder aus­ge­schal­tet, gleich­zei­tig spielt der Laut­spre­cher einen Ton.

So sieht es aus:

Benö­tig­te Bauteile:

  • LED
  • Foto­wi­der­stand
  • Wider­stand 10 kΩ (4 Rin­ge: braun schwarz oran­ge)
    bei einem klei­ne­ren Wider­stand muss der Wert für Schwel­leDun­kel­heit ange­passt werden
  • Wider­stand 220 Ω
  • Lei­tungs­dräh­te

Beach­te die ➨Vor­wi­der­stän­de ver­schie­de­ner LEDs

Baue die Schal­tung auf.
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Der fes­te Wider­stand (10kΩ) und der varia­ble Wider­stand sind in Rei­he geschal­tet. Die Gesamt­span­nung von 5 Volt am Ardui­no teilt sich zwi­schen den bei­den Wider­stän­den auf. Weil die Ver­bin­dung zwi­schen den Wider­stän­den zu GND geführt wird, bezeich­net man die Rei­hen­schal­tung als Spannungsteiler.

Set­ze die Varia­blen:
Der Foto­wi­der­stand ist am ana­lo­gen Pin A0 angeschlossen.

Der Foto­wi­der­stand ist am ana­lo­gen Pin A0 angeschlossen.

int Fotowiderstand = A0; 
int LED = 7; 
int Lautsprecher = 5;

// der Wert für SchwelleDunkelheit 
// kann an die gewünschte "Dunkelheit" 
// (den Zeitpunkt, an dem die LED leuchten soll)
// angepasst werden
int SchwelleDunkelheit = 400;

Lege den Modus der LED als OUTPUT fest. In der Zei­le Serial.begin(9600); wird der ➨Seri­el­le Moni­tor gestar­tet.
Er soll dazu die­nen, den digi­ta­len Wert der Span­nung am Pin A0 anzuzeigen.

void setup()  
{ 
  pinMode(LED, OUTPUT); 
  Serial.begin(9600); 
}

Im loop-Teil wird der Foto­wi­der­stand ausgelesen:

void loop()   
{ 
  // digitaler Wert der gelesenen Spannung am Pin A0
  int SensorWert = analogRead(Fotowiderstand); 
  
  // Kommentarzeichen in den Zeilen 26 und 27 entfernen 
  // um den digitalen Wert der ausgelesenen Spannung am Pin A0 anzuzeigen
  // Serial.print("Ausgelesener Wert: ");       
  // Serial.println(SensorWert); 

  // Serial.print("Ausgelesener Wert: ");       
  // Serial.println(SensorWert); 

  if (SensorWert < SchwelleDunkelheit)  
  {
    // LED einschalten, Ton abspielen  
    digitalWrite(LED, HIGH);  
    tone(Lautsprecher, 1000);   
  } 
  else   
  {   
    // LED und Lautsprecher ausschalten
    digitalWrite(LED, LOW);
    noTone(Lautsprecher);   
  }
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Aufgaben:


Letzte Aktualisierung: 20. Feb 2024 @ 18:45