Encender un LED con el sensor de luminosidad TEMT6000

FunduinoÚltima actualización el

Bei Dunkelheit eine LED automatisch einschalten

Wird es dunkel, geht die LED an – wird es hell, geht sie wieder aus. Genau so arbeiten Dämmerungsschalter an Hauseingängen und Straßenlaternen.

In dieser Anleitung liest du den Helligkeitssensor TEMT6000 am analogen Eingang aus, ermittelst im seriellen Monitor deinen Schwellenwert und schaltest damit eine LED.

Der Helligkeitssensor TEMT6000 auf seiner Platine

Der Helligkeitssensor TEMT6000

Der Helligkeitssensor TEMT6000 schaltet eine LED: Wird es dunkel, geht die LED an, wird es wieder hell, geht sie aus.

Der Sensor gibt eine Spannung aus, die mit der Helligkeit steigt. Der Mikrocontroller misst sie am analogen Eingang A0 und wandelt sie in einen Zahlenwert zwischen 0 und 1023 um.

Der Helligkeitssensor TEMT6000 auf seiner Platine

Der Schaltplan

  • Signal des TEMT6000 an A0
  • LED über einen 220-Ω-Widerstand an Pin 8
  • VCC und GND des Sensors an 5V und GND des Mikrocontrollers

In der Bauteilliste steht „Mikrocontroller mit passendem USB-Kabel (hier NANO)“, verlinkt ist aber der Funduino UNO R3. Der Sketch läuft auf beiden.

Schaltplan: TEMT6000 an A0, LED mit Vorwiderstand an Pin 8

Das Programm

Im seriellen Monitor siehst du die gemessenen Helligkeitswerte. Decke den Sensor ab und beobachte, wie der Wert fällt. Den Wert, ab dem die LED leuchten soll, trägst du in die Variable SchwelleDunkelheit ein.

Hast du den passenden Wert gefunden, kannst du die Ausgabe im seriellen Monitor und die Pause auskommentieren.

Der Kommentar im Sketch verweist auf „Zeilen 15 und 16“. Im Sketch, wie er im Artikel steht, sind die Ausgabe und die Pause die Zeilen 13 und 14 – vermutlich sind bei der Übernahme Leerzeilen verloren gegangen.

Der serielle Monitor zeigt die gemessenen Helligkeitswerte
LED mit dem TEMT6000 schalten
int TEMT6000 = A0;
int LED = 8;
int SchwelleDunkelheit = 30;
void setup()
{
 Serial.begin(9600);
 pinMode(LED, OUTPUT);
}
void loop()
{
  // Zeilen 15 und 16 als Kommentar setzen,
  // wenn der gewünschte Wert für "Dunkelheit" festgelegt wurde
  Serial.println("Gelesener Wert TEMT6000: " + String(analogRead(TEMT6000)));
  delay(500);
  if (analogRead(TEMT6000) < SchwelleDunkelheit)
  {
    digitalWrite(LED, HIGH);
  }
  else digitalWrite(LED, LOW);
}
Calificar la guía

Comentarios

Haz una pregunta o comparte tu experiencia

Schreib uns, wenn etwas nicht funktioniert. Nenne dabei dein Board und die Fehlermeldung.

Revisamos cada comentario antes de publicarlo. Tu dirección de correo electrónico permanece con nosotros.