Hallo zusammen,
vorweg: ich bin Python Anfänger. Ich habe eine LED, welche ich morgens auf 100% hochdimmen und Abends auf 0% ausdimmen möchte. Das bin ich nun wie folgt angegangen:
-Ein Script zum hochdimmen, wird über Cronjob gestartet, und soll, wenn fertig, die LED (Port 17) auf High lassen
-Ein Script zum ausdimmen, wird auch per Cronjob gestartet und soll bei Ende auf Low bleiben.
Das Dimmen als solches Funktioniert auch wunderbar - mit MOSFET über 12v alles toll. Aber jetzt scheitere ich daran das wenn das Python-Script "fertig" ist, der Port offensichtlich wieder auf LOW geschaltet wird. Jedenfalls dimmt die LED ganz brav und langsam hoch, und wenn sie damit fertig ist schaltet sie sich ab.
Dann hatte ich den Ansatz das ich nach dem Dimmen per WiringPI die den Port quasi manuell auf High schalte in dem ich in die Datei /sys/class/gpio/gpio17/value eine 1 schreibe, aber das finde ich eigentlich unelegant, und außerdem muss ich dafür ja auch nach jedem Start den Port neu initialisieren (wenn ich das richtig verstanden habe).
Daher die Frage, ob ich mein Script so gestalten kann das ich nach dem es durchgelaufen ist den Port als Output und zustand High (bzw. Low) zurücklassen kann?
# Initialisieren, Bibliotheken laden
import time
import RPi.GPIO as GPIO
# RPi.GPIO Layout verwenden (wie Pin-Nummern)
GPIO.setmode(GPIO.BOARD)
# Pin 11 (GPIO 17) auf Output setzen
GPIO.setup(11, GPIO.OUT)
# Pin 11 ausschalten
GPIO.output(11, GPIO.LOW)
# Pin 11 auf PWM setzen
led = GPIO.PWM(11,100)
led.start(0)
# Hochdimmen
for i in range(0,101):
led.ChangeDutyCycle(i)
time.sleep(0.2)
print i
led.stop()
GPIO.output(11,GPIO.HIGH)
Alles anzeigen
Vielen Dank schon mal! :s