project:python_led
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| project:python_led [2026/02/18 17:12] – torsten.roehl | project:python_led [2026/02/20 09:56] (aktuell) – torsten.roehl | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| [[projekt: | [[projekt: | ||
| + | // | ||
| + | In diesem Projekt wird das bisherige LED-Programm neu strukturiert und in mehrere Dateien aufgeteilt. Dabei wird die Hardware-Ansteuerung von der eigentlichen Programmlogik getrennt. Ziel ist es, mehrere LEDs gezielt und übersichtlich über die Konsole steuern zu können. | ||
| + | // | ||
| - | ===== Hauptprogramm | + | |
| + | ===== Programmstruktur | ||
| <note important> | <note important> | ||
| - | **Akiviere in die Environment** | + | **Aktiviere |
| Die Programmierung erfolgt nun immer mit der gewählten Umgebung! | Die Programmierung erfolgt nun immer mit der gewählten Umgebung! | ||
| Zeile 17: | Zeile 21: | ||
| </ | </ | ||
| - | Für das eigentliche Projekt wird der Code nun strukturiert aufgebaut. | + | Die Aufteilung in mehrere Dateien sorgt für eine klare Trennung zwischen Programmlogik und Hardware-Ansteuerung. Dadurch bleibt |
| - | Ziel ist es, mehrere LEDs (R, G, Y) flexibel ansteuern zu können, ohne bei jeder Änderung den Quellcode neu anpassen oder Hardcodierungen verändern zu müssen. | + | |
| - | Die Umstrukturierung sorgt außerdem für eine bessere Übersichtlichkeit. Einzelne Komponenten können dadurch unabhängig voneinander erweitert oder in anderen Projekten weiterverwendet werden, wie später im Projekt mit FastAPI und Apache2 gezeigt wird. | ||
| - | ===== Programmstruktur ===== | ||
| Folgende Programmstruktur wird verwendet. | Folgende Programmstruktur wird verwendet. | ||
| Zeile 44: | Zeile 45: | ||
| <code bash> | <code bash> | ||
| + | cd ~/ | ||
| touch __init__.py | touch __init__.py | ||
| </ | </ | ||
| Zeile 55: | Zeile 57: | ||
| ===== Hardware ===== | ===== Hardware ===== | ||
| + | |||
| + | < | ||
| + | Der Aufbau und die verwendete Hardware wurden im vorherigen [[projekt: | ||
| + | </ | ||
| ===== Quellcode (Sourcecode) ===== | ===== Quellcode (Sourcecode) ===== | ||
| - | Der **Sourcecode** besteht aus drei Dateien: das eigentliche Programm **%%ledcontrol.py%%** sowie die Dateien im Hintergrund (im Verzeichnis **%%core%%**), | + | Der **Sourcecode** besteht aus zwei Dateien: das eigentliche Programm **%%ledcontrol.py%%** sowie die Dateien im Hintergrund (im Verzeichnis **%%core%%**), |
| === hardware.py === | === hardware.py === | ||
| <code python hardware.py> | <code python hardware.py> | ||
| import RPi.GPIO as GPIO | import RPi.GPIO as GPIO | ||
| + | |||
| + | # ----------------------------- | ||
| + | # API-Funktionen GPIO LED Ampel | ||
| + | # ----------------------------- | ||
| # ADJUST AREA START | # ADJUST AREA START | ||
| Zeile 119: | Zeile 129: | ||
| if cmd in (" | if cmd in (" | ||
| mode = input(" | mode = input(" | ||
| - | value = int(mode) | + | value = 1 if mode == " |
| if cmd == " | if cmd == " | ||
| Zeile 135: | Zeile 145: | ||
| finally: | finally: | ||
| print(" | print(" | ||
| - | hardware.cleanup() | + | hardware.cleanup() |
| if __name__ == " | if __name__ == " | ||
project/python_led.1771434772.txt.gz · Zuletzt geändert: von torsten.roehl
