4.1 Projekt: Beleuchtungssystem

Beginnen wir unser erstes Projekt, das Beleuchtungssystem.


Das Einschalten einer LED ist eine der grundlegendsten KidsBlock-Übungen.

Diese Einführungslektion wurde für Anfänger entwickelt, um Hardware- und Softwareprogrammierung auf dem ESP32-Entwicklungsboard zu verstehen und grundlegende Schaltungs- und Programmierkenntnisse zu erlernen.

img

Daher ist unsere Tutorial-Anleitung einfach. Und dieses faszinierende Projekt kann in tatsächlichen Szenarien zu Hause oder im Büro angewendet werden.

In diesem Projekt haben Sie die grundlegenden Verbindungen und Einstellungen des ESP32-Entwicklungsboards in der grafischen KidsBlock-Programmierung kennengelernt. Darüber hinaus werden Ihnen einige Funktionen vorgestellt, wie z.B. das Ein-/Ausschalten einer LED über den Ausgangspegel eines digitalen Pins oder über einen Taster.

Alles in allem ist dies ein Einsteiger-Tutorial, um die Grundlage für nachfolgende KidsBlock-Programmierübungen zu legen.


4.1.1 Flussdiagramm

image-20230607175228556


4.1.2 Eine LED zum Leuchten bringen

Beschreibung:

LED, kurz für Light Emitting Diode, ist ein Festkörperhalbleiter, der elektrische Energie in sichtbares Licht umwandelt, daher wird sie auch als Festkörperbeleuchtung bezeichnet.

Wenn Strom durch eine LED fließt, leuchtet sie auf.

Verschiedene LEDs:

img


Das LED-Modul ist ein Ausgabegerät, dessen Helligkeit und Blinken gesteuert werden können. Für die Verwendung müssen Sie es nur direkt in die digitalen Ausgangspins des Entwicklungsboards stecken.

img


Funktionsprinzip:

Wenn S auf hohem Pegel ist, leitet der Q1-Transistor, und die VCC-Spannung fließt durch die LED, um sie zum Leuchten zu bringen.

img

Parameter:

  • Spannung: 3~5V

  • Strom: ≤1.5mA

  • Leistung: 0.07W


Schaltplan:

Verbinden Sie das LED-Modul mit io27.

Achtung: Verbinden Sie Gelb mit S (Signal), Rot mit V (Strom) und Schwarz mit GND. Vertauschen Sie diese nicht!

img


Testcode:

  • Öffnen Sie Kidsblock und wählen Sie das richtige Gerät und den richtigen Port aus.

img

  • Ziehen Sie image19 von image20 in den Codebearbeitungsbereich. Codeblöcke werden nur ausgeführt, wenn sie sich in diesem Bereich befinden.

img

  • Mit diesem Block wird der Code beim Booten des Entwicklungsboards ausgeführt.

img

  • Ziehen Sie in image21forever “ und fügen Sie es unter dem vorherigen Block ein. Der Block „forever“ zeigt eine Schleife an.

img

  • Ziehen Sie einen Block „LED pin output“ von image22 und fügen Sie ihn in „ forever “ ein. Stellen Sie den Pin auf IO27 und den Ausgangspegel auf HIGH ein, sodass der LED-Pin weiterhin einen hohen Pegel ausgibt.

img

img

  • Fügen Sie eine Verzögerung von 1s hinzu. Duplizieren Sie den Block „LED pin output“, stellen Sie den Ausgang jedoch auf LOW ein und fügen Sie ebenfalls eine Verzögerung hinzu. Dann leuchtet die LED auf und erlischt im Kreislauf.

img

Testergebnis:

Die LED blinkt pro Sekunde, da io27 auf dem ESP32-Board abwechselnd jede Sekunde einen hohen und niedrigen Pegel ausgibt. Außerdem können verschiedene interaktive Anwendungen über eine LED realisiert werden, wie z.B. atmende LED, Wasserflusslichter und blinkendes Polizeilicht.

Leistungspegel

Ergebnis

HIGH

LED an

LOW

LED aus


Erweiterung: Atmende LED

Beschreibung:

Die IO-Schnittstellen von MCUs (wie ESP32) geben nur digitale Signale (hoher oder niedriger Pegel) aus. Zum Beispiel waren in früheren Experimenten (eine LED zum Leuchten bringen) die digitalen Ausgänge nur HIGH (3,3 V) und LOW (0 V).

Wenn die MCU einen hohen Pegel von 3,3 V oder einen niedrigen Pegel von 0 V ausgibt, sollte die Eingangsspannung zwischen 0 und 3,3 V liegen. Daher ist PWM (Pulsweitenmodulation) erforderlich, um verschiedene Spannungswerte auszugeben, was als “analoger Ausgang” bezeichnet wird.

img


Wissen:

Was ist PWM?

PWM enthält drei Elemente: Frequenz (Hz), Periode, Tastverhältnis (%).

  • PWM-Frequenz (f): Die Häufigkeit, mit der das Signal innerhalb einer Sekunde von hoch nach niedrig und wieder nach hoch wechselt. Im Allgemeinen ist die Frequenz die Anzahl der PWM-Perioden pro Sekunde.

  • PWM-Periode (T): Periode = 1 / Frequenz (T=1/f, und 1 bedeutet 1 Sekunde). Zum Beispiel: f = 50Hz, also T = 20ms, was bedeutet, dass es 50 Perioden pro Sekunde gibt.

  • PWM-Tastverhältnis: Das Zeitverhältnis von HIGH zur gesamten Periode. Wenn die Periode = 10ms und die Impulsbreite 8ms beträgt, nimmt der niedrige Pegel 2ms ein, also beträgt das Tastverhältnis = 8/(8+2) = 80%.

img

Fazit: Bei einer geeigneten Signalfrequenz ändert PWM die effektive Ausgangsspannung, indem es das Tastverhältnis in einer Periode ändert. Einfach ausgedrückt: Innerhalb einer bestimmten Zeit, je mehr hoher Pegel der IO-Port ausgibt, desto größer ist der PWM-Wert und desto heller wird die LED sein.

img

Testcode:

img

  • Definieren Sie eine Variable item und weisen Sie ihr 0 zu.

img

  • Ziehen Sie einen „forever“-Block und fügen Sie einen „repeat“-Block darin ein. Stellen Sie die Wiederholungszeiten auf 255 ein.

img

  • Ziehen Sie einen „variable mode“-Block in „repeat“ und stellen Sie den Modus auf „ ++ “ ein, was bedeutet, dass item nach jeder Ausführung um 1 erhöht wird.

img

  • Suchen Sie den Block zum Einstellen von PWM, der in image23 enthalten ist, wie unten gezeigt, sodass Sie nur den entsprechenden Pin und den analogen Wert einstellen müssen, um PWM auszugeben.

img

  • LED-Pin einstellen:

img

  • Kanal einstellen: (insgesamt 16 Kanäle: einschließlich 0~15)

img

  • Stellen Sie den PWM-Ausgangswert auf item ein, der automatisch von 0 auf 255 erhöht wird. Der PWM-Ausgang ist 0~255, daher stellen wir die Wiederholungszeiten auf 255 ein.

img

  • Fügen Sie eine Verzögerung von 0,01s hinzu, damit die LED allmählich und nicht plötzlich aufleuchtet.

img

  • Duplizieren Sie den „repeat“-Block wie folgt, stellen Sie den Modus jedoch auf „--“ ein, wodurch die Variable item jedes Mal verringert wird. Und die LED wird allmäh