In diesem kurzen Beitrag möchte ich dir zeigen, wie du das Signal von einem Flammensensor an einer Dual-Color-LED am ESP32 visualisieren kannst.
Den hier verwendeten Flammensensor habe ich dir bereits für den Arduino im Beitrag Arduino Lektion 67: Flammen Detektor vorgestellt.
Der Flammensensor kann Flammen von Feuerzeugen, Streichhölzer etc. erkennen und liefert je nach verwendeten Ausgang ein analoges bzw. digitales Signal. Das digitale Signal lässt sich über den verbauten Drehpotentiometer in der Empfindlichkeit regeln.
Benötigte Ressourcen für die Schaltung
Wenn du die Schaltung nachbauen möchtest, dann benötigst du:
- einen ESP32*,
- ein Micro-USB Datenkabel*,
- ein Flammensensor / Flammendetektor (KY-026)*,
- eine Dual-Color-LED (KY-029)*,
- diverse Breadboardkabel*
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!
Aufbau der Schaltung Flammensensor & Dual-Color-LED am ESP32
Die Schaltung ist recht einfach und schnell aufgebaut. Der Pin D0 des Flammensensors wird mit dem GPIO014 des ESP32 verbunden und erhält zusätzlich noch
die Spannungsversorgung von 5 V.
Die Dual-Color LED erhältst du entweder als einzelnes Bauteil oder wie ich es verwende als fertigen Baustein auf einer Platine. Solltest du die einzelne LED nutzen, so benötigst du noch zusätzlich einen 220 Ohm Vorwiderstand, welcher zwischen dem Pin “-” und GND geschaltet wird.
Im nachfolgenden YouTube-Video habe ich dir ausführlich erläutert, wie du die Schaltung aufbaust und das kleine Programm in der Arduino IDE programmierst.
Hier nun der fertige Code zum einfachen Kopieren.
#define ledGreen 13 #define ledRed 5 #define flammeSensor 14 void setup() { pinMode(ledRed, OUTPUT); pinMode(ledGreen, OUTPUT); pinMode(flammeSensor, INPUT); } void loop() { if(digitalRead(flammeSensor)==HIGH){ digitalWrite(ledRed, HIGH); digitalWrite(ledGreen, LOW); } else { digitalWrite(ledRed, LOW); digitalWrite(ledGreen, HIGH); } }