0 Daumen
1,4k Aufrufe

Aufgabe:

Programmiere einen Dämmerungschalter. Bei einsetzender Dämmerung soll eine LED angehen. Lass Dir, um den Schaltpunkt zu bestimmen, die Helligkeitswerte am seriellen Monitor zeigen.


Ansatz/Problem:

Mein Code und meine Schaltung bezüglich der Dämmerung sind vermutlich nicht richtig.


Code:

int sensor=A0;
int messwert;

void setup(){
Serial.begin(9600);
}
void loop(){
messwert=analogRead(sensor);
Serial.println(messwert);
delay(500);
}

3.3.JPG

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Dämmerungsschalter programmieren - LED - Schaltpunkt

Für die Programmierung eines Dämmerungsschalters, der eine LED bei einsetzender Dämmerung anschaltet, sind einige Anpassungen und Erweiterungen deines Codes notwendig. Außerdem wirst du eine LED (und eventuell einen geeigneten Vorwiderstand) in deine Schaltung integrieren müssen.

Zunächst benötigen wir die Schaltung, die einen Helligkeitssensor (z.B. einen Fotowiderstand oder LDR) und eine LED enthält. Ich gehe davon aus, dass du bereits einen Helligkeitssensor am Pin A0 angeschlossen hast. Jetzt solltest du noch eine LED hinzufügen. Die LED verbinden wir mit einem digitalen Pin des Mikrocontrollers, beispielsweise mit Pin 9, und fügen in den Stromkreis einen geeigneten Vorwiderstand (etwa 220 Ohm) ein, um die LED zu schützen.

Hier ist die aktualisierte Version deines Codes, der die LED bei Unterschreitung eines bestimmten Helligkeitswertes anschaltet. Dieser Helligkeitswert repräsentiert den "Schaltpunkt" und sollte auf Basis der Ausgabe im seriellen Monitor und der Bedingungen in deiner Umgebung angepasst werden.

cpp
int sensorPin = A0;  // Der Sensor ist an Pin A0 angeschlossen
int messwert;
int ledPin = 9;      // Die LED ist an Pin 9 angeschlossen
int schaltpunkt = 500; // Schwellenwert für Dämmerung (anpassen!)

void setup(){
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);  // Den Pin, an dem die LED angeschlossen ist, als Ausgang definieren
}

void loop(){
  messwert = analogRead(sensorPin);  // Helligkeitswert lesen
  Serial.println(messwert);          // Wert im seriellen Monitor anzeigen
  
  // Prüfe, ob der Helligkeitswert unter dem Schaltpunkt liegt
  if(messwert < schaltpunkt){
    digitalWrite(ledPin, HIGH);  // LED einschalten, wenn es dunkel ist
  }else{
    digitalWrite(ledPin, LOW);   // LED ausschalten, wenn es hell ist
  }
  
  delay(500);  // Kurze Verzögerung, um die Anzahl der Anzeigewerte zu begrenzen
}


Schritte, um den Schaltpunkt zu bestimmen:
1. Lade den Standard-Teil des Codes (ohne die LED-Steuerung) auf deinen Mikrocontroller hoch.
2. Öffne den seriellen Monitor und notiere die Helligkeitswerte unter verschiedenen Beleuchtungsbedingungen (z.B. Tageslicht, künstliches Licht, Dämmerung).
3. Wähle einen Wert, der die Grenze zwischen "hell" und "dunkel" (Dämmerung) gut repräsentiert, als Schaltpunkt.
4. Füge die LED-Steuerung in deinen Code ein und setze den Schaltpunkt auf den ausgewählten Wert.
5. Teste dein System, um sicherzustellen, dass die LED wie gewünscht bei einsetzender Dämmerung angeht.

Beachte, dass du den Schaltpunkt je nach den Lichtverhältnissen in deiner Umgebung und der Empfindlichkeit deines Helligkeitssensors anpassen musst.
Avatar von 4,6 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community