So, heute ging es noch weiter.
Der Spagetti-code funktioniert nun.
Einzig Fern-licht schaltet nicht wie beim Auto, also
Fernlicht-tippen -> Fernlicht an,
Fernlicht-tippen -> Fernlicht aus
Sondern wie das Bremslicht, aber damit kann ich leben.
Aktueller code:
Code: Alles auswählen
#!/usr/bin/python3
from gpiozero import LED,Button,PWMLED,AngularServo
from time import sleep
from signal import pause
from functools import partial
fahrlicht_button = Button(26) #lichtschalter
fernlicht_button = Button(19) #fernlichtschalter
blinker_li = Button(13) #blinkschalter links
blinker_re = Button(6) #blinkschalter rechts
hupe = Button(5) #hupenschalter
gang_hoch = Button(11) #servo hoch-schalten
gang_runter = Button(9) #servo runter-schalten
bremse = Button(10)
GEAR2SERVO = [-90, -64.3, -38.6, -12.9, 12.8, 38.5, 64.2, 90]
current_gear = 0
servo = AngularServo(25,
initial_angle=GEAR2SERVO[current_gear],
min_angle=min(GEAR2SERVO),
max_angle=max(GEAR2SERVO), min_pulse_width=0.0008, max_pulse_width=0.0023)
fahrlicht = 0.5 #Abblendlicht vorn, wert
fernlicht = 1 #fernlicht vorn, wert
bremslicht = 1 #bremslicht hinten, wert
lichtaus = 0
led1 = PWMLED(21,initial_value=0) # Fahrlicht vorn
led2 = PWMLED(20,initial_value=0) # Fahrlicht hinten
led3 = LED(16) # blinker links
led4 = LED(12) # blinker rechts
led5 = LED(7) # hupe
def clamp(value, lower, upper):
return max(min(upper, value), lower)
def shift(direction):
global current_gear
current_gear = clamp(current_gear + direction, 0, len(GEAR2SERVO)-1)
servo.angle = GEAR2SERVO[current_gear]
def blinker_links():
led3.blink (on_time = 0.8, off_time = 0.2)
def blinker_rechts():
led4.blink (on_time = 0.8, off_time = 0.2)
def fernlicht_an():
if led1.value < 1: # wenn abgeblendet
led1.value = 1 # dann aufblenden
else: fernlicht_aus
def fernlicht_aus():
if fahrlicht_button.is_pressed:
led1.value = fahrlicht
else: led1.value =lichtaus
def fahrlicht_an():
led1.value = fahrlicht
led2.value = fahrlicht
def fahrlicht_aus():
led1.value = lichtaus
led2.value = lichtaus
def bremslicht_an():
led2.value = bremslicht
def bremslicht_aus():
if fahrlicht_button.is_pressed:
led2.value = fahrlicht
else: led2.value = lichtaus
gang_hoch.when_pressed = partial(shift, +1)
gang_runter.when_pressed = partial(shift, -1)
blinker_li.when_pressed = blinker_links
blinker_li.when_released = led3.off
blinker_re.when_pressed = blinker_rechts
blinker_re.when_released = led4.off
fahrlicht_button.when_pressed = fahrlicht_an
fahrlicht_button.when_released = fahrlicht_aus
fernlicht_button.when_pressed = fernlicht_an
fernlicht_button.when_released = fernlicht_aus
bremse.when_pressed = bremslicht_an
bremse.when_released = bremslicht_aus
hupe.when_pressed = led5.on
hupe.when_released = led5.off
pause()
Jetzt geht es an die 'Hardware' (Sobald ich das zweite Steckboard habe):
Optokoppler-Schaltung aufbauen, FET's verkabeln, LED's verkabeln, usw.
Hab mir übrigens LED's mit 0.5w/120° für Blinker und Rücklicht geholt, soll ja möglichst hell werden.
Welche LED's das Fahrlicht bekommt, ist noch nicht raus, da die Frontleuchten nochnicht feststehen.
Jedenfalls wird es wegen der Stvo noch Batterie-Stecklicht geben und diese Beleuchtung wird 'zusatzlicht', damit ist der Stvo genüge getan und trotzdem hab ich(zusätzlich) meine Beleuchtung.
für die die es interessiert werde ich weiter berichten.