Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Der ALS-PT19: Einfacher Lichtsensor für Arduino-Projekte

Posted on 22. November 202422. November 2024 by Stefan Draeger

Der ALS-PT19 Lichtsensor ist ein einfacher und zuverlässiger Sensor, der sich ideal für Arduino-Projekte eignet. Mit seiner Fähigkeit, Lichtstärken präzise zu messen, ist er besonders für Einsteiger eine hervorragende Wahl, um in die Welt der Elektronik und Programmierung einzutauchen. In diesem Beitrag zeige ich, wie der Sensor funktioniert, wie er angeschlossen wird und welche spannenden Anwendungen damit möglich sind.

Der ALS-PT19: Einfacher Lichtsensor für Arduino-Projekte
Dieses Video auf YouTube ansehen.

Der ALS-PT19 Lichtsensor ist nicht nur einfach in der Anwendung, sondern auch extrem kostengünstig. Ich habe diesen Sensor für nur wenige Cent auf AliExpress.com bestellt. Im Vergleich dazu verlangen Händler in Deutschland oft bis zu 8 €, was den Preis deutlich in die Höhe treibt. Hier lohnt es sich, ein wenig Geduld aufzubringen, um durch den Direktkauf beim internationalen Anbieter ordentlich zu sparen.

Inhaltsverzeichnis

  • Aufbau des analogen Lichtsensors ALS-PT19
  • Aufbau der Schaltung – ALS-PT19 am Arduino
  • Programmieren des kleinen Sensors in der Arduino IDE
  • Lichtsensor & Laserdiode als Lichtschranke
    • Schaltung – Lichtschranke mit ALS-PT19 und Laserdiode am Arduino
      • Programmieren in der Arduino IDE
    • Schaltung – Zähler mit Lichtschranke & Segmentanzeige, ALS-PT19 und Laserdiode am Arduino
      • Programmieren in der Arduino IDE
  • Downloads
  • Vergleich – ALS-PT19 und Fotowiderstand

Aufbau des analogen Lichtsensors ALS-PT19

Der analoge Lichtsensor ALS-PT19 ist eine ideale Wahl, um Projekte mit Lichtmessung oder Lichtschranken zu erweitern. Besonders praktisch ist, dass der Sensor RoHS-konform ist und eine spektrale Reaktion besitzt, die der Wahrnehmung des menschlichen Auges sehr nahekommt. Dies wird durch ein hohes Ablehnungsverhältnis gegenüber Infrarotstrahlung ermöglicht.

Der Aufbau ist dabei äußerst simpel:

  • Der – Pin wird mit Masse (GND) verbunden.
  • Der + Pin erhält eine Stromversorgung von 2,5V bis 5,5V.
  • Am OUT-Pin wird die analoge Spannung ausgegeben, die proportional zur einfallenden Lichtmenge steigt.

Dank dieser einfachen Handhabung lässt sich der ALS-PT19 schnell und problemlos in unterschiedlichste Projekte integrieren.

Aufbau - ALS-PT19 analoger Lichtsensor
Aufbau – ALS-PT19 analoger Lichtsensor

Im Beitrag „Arduino Lektion 4: LED mit Fotowiderstand„ habe ich dir bereits eine kleine Schaltung mit einem ähnlichen Bauteil vorgestellt: dem Fotowiderstand. Dieser ist zwar deutlich größer als der ALS-PT19, liefert aber ebenso zuverlässig die Werte der Helligkeit. Beide Bauteile bieten einfache Möglichkeiten, Lichtstärken zu messen, wobei der ALS-PT19 durch seine kompakte Bauweise besticht.

Aufbau der Schaltung – ALS-PT19 am Arduino

Durch seinen einfachen Aufbau lässt sich der ALS-PT19 Lichtsensor schnell und einfach mit einem Arduino verbinden. Für die Schaltung benötigst du lediglich folgende Bauteile:

  • 1x ALS-PT19 Lichtsensor*
  • 1x Arduino* (z. B. Uno, Nano oder Mega)
  • 3x Jumper-Kabel* (für die Verbindungen)
  • Optional: Steckbrett* (Breadboard) für eine flexible Verdrahtung

Mit diesen wenigen Komponenten kannst du die Lichtmessung in kürzester Zeit starten.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

In der nachfolgenden Schaltung integriere ich zusätzlich eine 5 mm LED* welche über einen 220 Ohm Vorwiderstand* an einen digitalen Pin angeschlossen wird.

Schaltung - ALS-PT19 am Arduino mit LED
Schaltung – ALS-PT19 am Arduino mit LED

Programmieren des kleinen Sensors in der Arduino IDE

Der kleine Sensor verfügt über einen analogen Ausgang, welcher mit einem der sechs analogen Eingänge (A0 bis A5) des Mikrocontrollers verbunden wurde und somit mit wenigen Zeilen Code ausgelesen werden kann.

Zusätzlich habe ich noch wie erwähnt eine 5 mm LED an einen digitalen PWM Pin angeschlossen. Diese LED leuchtet um so stärker, je weniger der Sensor beleuchtet wird.

//analoger Lichtsensor ALS-PT19 am
//analogen Pin A0 angeschlossen
#define sensor A0
//LED am digitalen PWM Pin D3 angeschlossen
#define led 3

void setup() {
  //beginn der seriellen Kommunikation mit 115200 Baud
  Serial.begin(9600);
  //der Pin des Sensors wird als Eingang definiert
  pinMode(sensor, INPUT);
  //der Pin der LED wird als Ausgang definiert
  pinMode(led, OUTPUT);
}

void loop() {
  //auslesen des Sensorwertes
  unsigned int value = analogRead(sensor);
  //mappen des Wertes welcher zwischen 0 und 1023 sein kann
  //auf den gültigkeitbereich eines PWM Signals (0 bis 255)
  byte brightness = map(value, 0, 1023, 0,255);
  //schreiben der Helligkeit an die LED mit einem PWM Signal
  analogWrite(led, brightness);
  //ausgeben des Sensorwertes auf der seriellen Schnittstelle
  Serial.println(value);
  //einlegen einer kleinen Pause von 50 Millisekunden
  delay(50);
}

Lichtsensor & Laserdiode als Lichtschranke

Eine der einfachsten Anwendungen des analogen Lichtsensors ALS-PT19 ist die Verwendung in Kombination mit einer Laserdiode als Lichtschranke. Hierbei wird der Laserstrahl auf den Sensor gerichtet, und solange der Strahl nicht unterbrochen wird, misst der Sensor eine konstante Lichtintensität. Sobald der Strahl unterbrochen wird, erkennt der Sensor den Abfall der Lichtintensität, was zur Auslösung eines Signals genutzt werden kann. Diese einfache, aber effektive Technik eignet sich hervorragend für Projekte wie Sicherheitsvorrichtungen, Zählmechanismen oder automatische Türen.

Für den Aufbau benötigst du:

  • einen analogen Lichtsensor ALS-PT19*,
  • eine Laserdiode*,
  • einige Jumper-Kabel*,
  • einen Arduino*

Je nach Abstand kann auch eine ultrahelle LED ausreichend sein!

Da ich die Laserdiode sowie den Sensor auf einem Breadboard stecken möchte, habe ich mir zwei 3fach Buchsenleisten mit langen Beinchen genommen und diese mit einer Flachzange um 90° abgewinkelt.

Vorsicht bei der Nutzung der Laserdiode (650 nm)

Laser können gefährlich sein, wenn sie falsch verwendet werden. Hier ein paar wichtige Hinweise, um dich und andere zu schützen:

  • Schau niemals in den Laserstrahl – ernsthafte Augenschäden drohen!
  • Nutze eine Schutzbrille und halte den Laser von Kindern fern.
  • Handle verantwortungsvoll, die Nutzung erfolgt auf eigenes Risiko.

Schaltung – Lichtschranke mit ALS-PT19 und Laserdiode am Arduino

Mit einer starken Laserdiode* kann man eine Lichtschranke aufbauen und damit eine Tür oder ähnliches Überwachen.

Schaltung - ALS-PT19 mit Laserdiode am Arduino
Schaltung – ALS-PT19 mit Laserdiode am Arduino
Arduino UNO R3
ALS-PT19
–GND
OUTAO
+3.3V
Piezo Buzzer
Pin 1D3
Pin 2GND
Laserdiode
–GND
+5V
SD8

Programmieren in der Arduino IDE

Die Laserdiode benötigt einen digitalen Pin über welchen wir diese aktivieren und deaktivieren können. In der Funktion setup wird dieser Pin einfach auf HIGH gesetzt.

//analoger Lichtsensor ALS-PT19 am
//analogen Pin A0 angeschlossen
#define sensor A0
//der Pin der Laserdiode ist am digitalen Pin D8 angeschlossen
#define laserDiode 8
//der Pin des Piezo Buzzers ist am digitalen Pin D3 angeschlossen
#define buzzer 3

//Wert für den Alarm, bei unterschreiten soll ein Alarmton
//über den Piezo Buzzer erzeugt werden
const unsigned int ALARM_THRESHOLD = 600;


void setup() {
  //beginn der seriellen Kommunikation mit 115200 Baud
  Serial.begin(9600);
  //der Pin des Sensors wird als Eingang definiert
  pinMode(sensor, INPUT);
  //der Pin der Laserdiode wird als Ausgang definiert
  pinMode(laserDiode, OUTPUT);
  //der Pin des Piezo Buzzers wird als Ausgang definiert
  pinMode(buzzer, OUTPUT);
  //aktivieren der Laserdiode
  digitalWrite(laserDiode, HIGH);
}

void loop() {
  //auslesen des Sensorwertes
  unsigned int value = analogRead(sensor);
  //Wenn der aktuelle Wert des analogen Lichtsensors
  //den Schwellwert unterschreitet, dann...
  if(value < ALARM_THRESHOLD){
    //einen Ton mit einer Frequenz von 1000 Hz und einer
    //Dauer von 150 ms. erzeugen.
    tone(buzzer, 1000, 150);
  }
}

Schaltung – Zähler mit Lichtschranke & Segmentanzeige, ALS-PT19 und Laserdiode am Arduino

Über die Segmentanzeige* können wir einen Zähler anzeigen lassen und damit entweder Besucher zählen oder Stückgut auf einem Förderband zählen.

Schaltung - Lichtschranken mit Segmentanzeige
Schaltung – Lichtschranken mit Segmentanzeige

Die Schaltung erweitern wir um die Segmentanzeige welche zwei digitale Pins belegt und die Stromversorgung von der Laserdiode abzweigt.

Arduino UNO R3
Segmentanzeige
CLKD5
DIOD4
VCC5V
GNDGND

Programmieren in der Arduino IDE

Im Programm integrieren wir die Bibliothek TM1637Display welche vom GitHub Repository chamie / TM1637 als ZIP-Datei heruntergeladen werden kann.

#include <Arduino.h>
//Einbinden der Bibliothekt zum ansteuern des Displays
#include <TM1637Display.h>

//Pin CLK von der Segmentanzeige am digitalen Pin D5 angeschlossen
#define CLK 5
//Pin DIO von der Segmentanzeige am digitalen Pin D4 angeschlossen
#define DIO 4

//analoger Lichtsensor ALS-PT19 am
//analogen Pin A0 angeschlossen
#define sensor A0
//der Pin der Laserdiode ist am digitalen Pin D8 angeschlossen
#define laserDiode 8
//der Pin des Piezo Buzzers ist am digitalen Pin D3 angeschlossen
#define buzzer 3

//Wert für den Alarm, bei unterschreiten soll ein Alarmton
//über den Piezo Buzzer erzeugt werden
const unsigned int ALARM_THRESHOLD = 600;

//erzeugen des Display Objektes mit den Parametern für die PINs
TM1637Display display(CLK, DIO);

unsigned int index = 0;

void setup() {
  //der Pin des Sensors wird als Eingang definiert
  pinMode(sensor, INPUT);
  //der Pin des Sensors wird als Eingang definiert
  pinMode(sensor, INPUT);
  //der Pin der Laserdiode wird als Ausgang definiert
  pinMode(laserDiode, OUTPUT);
  //der Pin des Piezo Buzzers wird als Ausgang definiert
  pinMode(buzzer, OUTPUT);
  //aktivieren der Laserdiode
  digitalWrite(laserDiode, HIGH);
  
  //setzen der maximalen Helligkeit an der Segmentanzeige
  display.setBrightness(10);
  uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
  //Setzt die Anzahl der möglichen Segmente.
  display.setSegments(data);
  //Anzeigen des Counters mit führenden Nullen
  display.showNumberDec(index, true, 4, 4);
}

void loop() {
  //auslesen des Sensorwertes
  unsigned int value = analogRead(sensor);
  //Wenn der aktuelle Wert des analogen Lichtsensors
  //den Schwellwert unterschreitet, dann...
  if (value < ALARM_THRESHOLD) {
    //einen Ton mit einer Frequenz von 1000 Hz und einer
    //Dauer von 150 ms. erzeugen.
    tone(buzzer, 1000, 150);
    //erhöhen des Indexes für den Counter sowie ausgeben auf
    //der Segmentanzeige
    display.showNumberDec(++index, true, 4, 4);
    //eine Pause von 500 Millisekunden einlegen
    delay(500);
  }
}

Downloads

Programm: auslesen des analogen Lichtsensors ALS-PT19Herunterladen
Programm: analoger Lichtsensor ALS-PT19 & LEDHerunterladen
Programm: Lichtschranke mit ALS-PT19 & LaserdiodeHerunterladen
Programm: Lichtschranke mit ALS-PT19, Laserdiode & SegmentanzeigeHerunterladen

Vergleich – ALS-PT19 und Fotowiderstand

Vergleichen wir noch kurz den Lichtsensor mit einem Fotowiderstand, mit welchem wir ebenso das einfallende Licht „messen“ können.

Schaltung - Fotowiderstand und ALS-PT19 am Arduino
Schaltung – Fotowiderstand und ALS-PT19 am Arduino

Der sehr einfache Fotowiderstand liefert einen Wert für einfallendes Licht, jedoch sehr ungenau und bei mir in einer Range von 7 bis maximal 731, wobei der Gültigkeitsbereich von analogen Werten am Arduino zwischen 0 und 1023 sind. Hier ist der ALS-PT19 deutlich genauer, bzw. liefert eine größere Range.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}