schaltlogik entwickeln für 8-gang-schaltung

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich hab dir dazu was geschrieben.
Eine weg sowas zu machen ist die Zustände der diversen Schalter bitweise zu kombinieren. 1 für Licht an, 2 für bremse gedrückt. Verodert nimmt das dann Werte von 0-3 an, und DAS schlägst du dann in einer Liste mit PWMS, zb [0, 0.5, 1, 1] nach. Da ist dann nicht bremsen und nicht Licht aus, Licht an halb hell, und alle anderen Kombinationen - nur bremsen, oder bremsen mit Licht - ganz hell.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

irgendwie hab ich da einen knoten im kopf.
wie ist das gemeint?
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

hier mal eine meiner notizen:
Bild

das problem liegt dann wieder in der letzen zeile:
wie kann das zurück-schalten von 'licht mit bremslicht' oder 'licht mit fernlicht' korrekt laufen jenachdem in welchem zustand das licht vorher war?

also:
wenn licht gerade an war und man nichtmehr bremst, DANN wieder auf 'licht an' sonst ganz aus.
bzw:
wenn licht gerade an war und man nichmehr fernlicht an hat, DANN wieder auf 'licht an' sonst ganz aus

DAS problem hab ich bei bisher bei allen herangehensweisen :-)
egal ob mit listen oder oder :-)

irgendwo hab ich da besagten knoten im kopf.
einziger lösungsansatz den ich da bisher sehe:
den 'istzustand' irgendwie irgendwo hinspeichern und wieder auslesen können -nur wie?!
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@geist4711: Den Zustand ob das Licht an oder aus ist zu speichern, wäre der Weg, den ich nehmen würde. Und zusätzlich die Stufe (aus, an, extra hell), damit man in den Methoden zum an- und ausschalten des Lichts und des zu- und abschalten von Fernlicht oder Bremslicht, immer die richtige Entscheidung treffen kann welche Stufe gesetzt werden muss. Denn es gibt ja nicht nur die Entscheidung bei Fern- oder Bremslicht ob man beim Abschalten auf normale Beleuchtung oder ganz aus wechselt, sondern auch beim Anschalten vom Fahrlicht ob man auf „an“ wechselt oder den aktuellen Zustand belässt wenn gerade das Fern- oder Bremslicht an ist. Beispiel: Wenn man gerade beim bremsen ist und dabei das Licht anschaltet, darf das Bremslicht dadurch ja nicht auf normale Helligkeit runter gehen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

ausgehend vom bisherigen beleuchtungsscript,
müsste dann also wenn ich mit 'fahrlicht_an' das fahrlicht anmache,
auchnoch irgendwie und irgendwo abspeichern 'fahrlich ist jetzt = 0.6' zb

also eine zeile dazu schreiben, die sagt 'speichere istzustand'

wenn dann 'fernlicht_aus' kommt, wird 'fahrlicht ist jetzt = 0.6''' abgefragt und
dessen wert als der wert genommen, den das fahrlicht nun annehmen soll.

das selbe beim bremslicht.

man kann dann auchnoch solche werte für bremslicht und fernlicht eintragen und beim einschalten des lichtes abfragen, das beim einschalten nicht das bremslicht aus geht......

oder:
ich hab 2 ausdrücke(vorderlichtwert, hinterlichtwert zb),
die 3 zustände(o, o.6, 1 -eben die pwm-stufen) annehmen können,
und da wird der 'momentanwert' eingetragen, also einer der 3 möglichen werte.

ich hab dann eine routine die nur abfragt welchen zustand das licht vorn und hinten hat und danach wird das licht dann heller oder dunkler gemacht -oder auch aus.

dazu eine 'sperre' wenn fern- oder bremslicht an gemacht wird, das das licht so hell bleibt wie beim bremsen/fernlicht sein soll, aber trotzdem den 'vorderlicht, hinterlicht'-wert neu schreibt, wenn man genau dann das licht einschaltet.

wie speichert man solche werte und liest sie aus?

oder hab ich da wieder ein 'hirngespinnst' ? ;-)
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

leute ich hab ein problem:
ich verwuche zu lernen wie ich python programmieren muss.
da bin ich auf beispiel- und lern-seiten.
zb hier:
http://www.michael-holzapfel.de/progs/p ... n_kurz.htm

da wir dann zb erklärt wie ich
irgendwas mache und was dann dabei raus kommt:
zb:

Code: Alles auswählen

if-elif-else                      Beispiel:

#-von mir eingefügt
                    x = 8
                    if x > 5:
                       print ("x ist größer als 5")
                    elif x < 5:
                       print ("x ist kleiner als 5")
                    else:
                       print ("x ist 5")   #-von mir eingefügt

                    Ausgabe:  
                    x ist größer als 5 
ist soweit alles auch logisch und mir verständlich.
nun wollte ich damit 'spielen' oindem ich x = 8 mal bischen veränder, um das was ich gelernt hab mal 'gesehen zu haben' , also wie sich die print-ausgabe tatsächlich so ändert...

wenn ich dann das zwischen den #-zeichen kopiere in mein file 'funktionstest.py' kopiere und 'run' mache kommt:

Traceback (most recent call last):
File "C:\Users\geist4711\AppData\Local\Programs\Thonny\lib\ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "D:\rasbpi\funktionstest.py", line 1
x = 8
^
IndentationError: unexpected indent

was ist hier los? bin ich zu doof die paar zeilen code zu kopieren und auszuführen?
Zuletzt geändert von geist4711 am Samstag 3. August 2019, 12:37, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte Code Tags benutzen. Denn so sieht man genau das, was relevant in Python ist, nicht. Und was auch für deinen Fehler verantwortlich ist. Nämlich die Einrückungen.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

is mir auch grad aufgefallen, da man nicht sieht wie ds da steht, habs geändert.

einrücken:
wenn ich das alles so einrücke das
x=8
so wie hier ganz links steht und alles danach ausgerichtet eingerückt ist, bleibt der fehler, leider.
wie soll ich denn was lernen wenn nichtmal sowas funktioniert?! tschuldigung bin grad echt sauer, auf mich, irgendwie hab ich da wohl ne blokade....

so sieht mein funktionstest.py aus:

Code: Alles auswählen


x = 8
    if x > 5:
        print ("x ist größer als 5")
    elif x < 5:
        print ("x ist kleiner als 5")
    else:
        print ("x ist 5")
        
        
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@geist4711: Warum rückst Du das denn *so* ein? Was soll das denn bedeuten?

Die verlinkte Kurzübersicht ist irgendwo zwischen Python 2 und 3 – da stehen Sachen die gelten so nur für Python 2 und welche die für Python 3. Ohne das irgendwie zu kennzeichnen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

ich hab das so eingerückt weil der schreiber das auch so eingerückt hat und ich das so übernommen habe :-)

ich wollte damit mal 'spielen' um zu lernen.

wenn da dann python 2 und 3 gemixt wird is das dämlich, also für mich nicht nutzbar.
mist!

kennst du ne deutsche seite wo man das besser lernen kann, wie man was in python macht?
und bitte nicht irgendwas von da:
https://py-tutorial-de.readthedocs.io/d ... lflow.html

bei dem versteh ich teilweise nichtmal was der von mir will, weil der nur irgendwelche bwl-kram behandelt wo mir nichtklar is was sowas soll ;-)

ich such was wo ich funktionen, also eingänge 'soundso' dann ausgänge 'soundso'
speichern, abfragen usw lernen kann, nicht steuerberechnungen oder wer wo wohnt usw :-)

also technische dinge machen kann, nicht die prozente der steuer ausrechnen, da krieg ich hirn-krämpfe bei :-)
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

hab's jetzt, nach ca einer std probieren, geschafft das es geht:
dein hinweis 'einrücken' war hilfreich DANKE
so müsste ds aussehen:

Code: Alles auswählen


x = 8
if x > 5:
    print ("x ist größer als 5")
elif x < 5:
    print ("x ist kleiner als 5")
else:
    print ("x ist 5")


dann funktioniert das......

warum kann der das nicht gleich so da hinschreiben ?!
wie soll da ein anfänger dann was von lernen! ich könnt ko....!
tschuldigung, sowas regt mich einfach auf.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wer kann was wo hinschreiben?
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Na der Herr Holzapfel, wo das Beispiel her ist: http://www.michael-holzapfel.de/progs/p ... n_kurz.htm

@geist4711: Was man mit den Grunddatenstrukturen anstellen kann, wie man mit den Kontrollstrukturen umgeht, wie man Funktionen definiert und aufruft, und wie man Klassen definiert, sowie das Zusammenspiel von Python-Syntax und den ”magischen” Methoden mit den beiden führenden und abschliessenden Unterstrichen, ist unabhängig davon was man konkret damit machen will. Das offizielle Tutorial in der Python-Dokumentation hat also auch, oder sogar überwiegend Beispiele von Sachen, die ganz konkret am Ende nur sehr wenige damit machen werden. Es wäre aber auch unsinnige Zeitverschwendung für jedes Einsatzgebiet ein eigenes Grundlagentutorial zu schreiben, wo im Grunde ja doch immer das gleiche drin steht. Eine gewisse Übertragungsleistung ist auch eine Grundlage beim Programmieren. Denn wenn man immer nur Beispiele suchen muss die genau oder fast das machen was man selber braucht, dann ist das kein Programmieren.

Speziell bei dem Link zu dem Kontrollstrukturen ist doch aber kein ”BWL” in den Beispielen‽

Die verlinkte Seite bei Holzapfel ist ja auch nicht zum lernen der Grundlagen, sondern eine kurze Übersicht zum nachschlagen. Der geht halt davon aus das man a) weiss das Einrückung in Python wichtig ist und welche Bedeutung sie hat, und b) kann man Argumentieren das die Beispiele richtig eingerückt sind, wenn man nicht von der Annahme ausgeht das der Rand der Seite auch der Rand des Beispiels ist. Die sind halt alle für das Layout der Seite eingerückt, damit optisch nicht alles am rechten Rand klebt und sich die ”Überschriften” besser von den Code-Beispielen abheben. Bei einer etwas weniger minimalistisch gestylten Seite hätte man das wahrscheinlich mit einer Tabelle gelöst, wo die ”Überschrift” in der rechten Spalte und die Beispiele dazu in der linken Spalte stehen würde.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

im prinziep ärgere ich mich ehr über meine eigene unflexilität, das ich mich von sowas deratt ablenken und aus dem konzept bringenlasse -früher wär mir sowas nicht passiert....

aber mal eine frage, ich 'bastel weitr an meinem beleuchtung-script.
so schaut es nu aus:

Code: Alles auswählen

#!/usr/bin/python3
from gpiozero import LED, Button, PWMLED
from signal import pause

fahrlicht_schalter = Button(26) #lichtschalter
fernlicht_taster = Button(19) #fernlichtschalter
blinker_links_schalter = Button(13) #blinkschalter links
blinker_rechts_schalter = Button(6) #blinkschalter rechts
hupentaster = Button(5) #hupenschalter
bremslicht_taster = Button(10) #bremslichtschalter

startvalue = 0 # Helligkeit bei Skriptstart
fahrlicht_vorn = 0.6 #Abblendlicht vorn, wert
fernlicht_vorn = 1 #fernlicht vorn, wert
fahrlicht_hinten = 0.6 #fahrlicht hinten ,wert
bremslicht_hinten = 1 #bremslicht hinten, wert

led_licht_vorn = PWMLED(21,initial_value=startvalue) # Fahrlicht vorn
led_licht_hinten = PWMLED(20,initial_value=startvalue) # Fahrlicht hinten
led_blinker_links = LED(16) # blinker links
led_blinker_rechts = LED(12) # blinker rechts
led_hupe = LED(7)  # hupe

def fernlicht():
    if led_licht_vorn.value < 1: # wenn abgeblendet
        led_licht_vorn.value = 1 # dann aufblenden
        
    else: # sonst
        led_licht_vorn.value = fernlicht_aus # 
 
def fernlicht_aus():
    if  fahrlicht_schalter = 1
        led_licht_vorn = fahrlicht_vorn
 
    else
        led_licht_vorn.value = startvalue

def fahrlicht_an():
    led_licht_vorn.value = fahrlicht_vorn
    led_licht_hinten.value = fahrlicht_hinten
    
def fahrlicht_aus():
    led_licht_vorn.value = startvalue
    led_licht_hinten.value = startvalue
    
def bremslicht_an():
    led_licht_hinten.value = bremslicht_hinten
    
def bremslicht_aus():
    led_licht_hinten.value = fahrlicht_hinten

def blinker_links():
    led_blinker_links.blink (on_time = 0.8, off_time = 0.2)

def blinker_rechts():
    led_blinker_rechts.blink (on_time = 0.8, off_time = 0.2)

 
bremslicht_taster.when_pressed = bremslicht_an
bremslicht_tatser.when_released = bremslicht_aus

fahrlicht_schalter.when_pressed = fahrlicht_an
fahrlicht_schalter.when_released = fahrlicht_aus

fernlicht_taster.when_pressed = fernlicht

blinker_links_schalter.when_pressed = blinker_links                         
blinker_links_schalter.when_released = led_blinker_links.off

blinker_rechts_schalter.when_pressed = blinker_rechts
blinker_rechts_schalter.when_released = led_blinker_rechts.off

hupe_taster.when_pressed = led_hupe.on
hupe_taster.when_released = led_hupe.off

pause()
ich versuche immernoch das fahrlicht,
wenn ich das fernlicht aus machen will,
dabei ab zu fragen,
ob fahrlicht_schalter momentan gedrückt ist
und danach dann die helligeit von fahrlicht_vorn zu setzen.

fernlicht aus-code nochmal einzeln, mit möglichst ausführlichem komentar, was ich damit wollte:

Code: Alles auswählen


def fernlicht_aus(): 				#funktion fernlicht aus
    if  fahrlicht_schalter = 1 		 	# if, abfrage fahrlicht_schalter (-noch falsch-)
        led_licht_vorn = fahrlicht_vorn 	#dann, led_licht_vorn auf fahrlicht_vorn helligkeit
 
    else								#sonst
        led_licht_vorn.value = startvalue	#led_licht_vorn auf standartvalue helligkeit
        
momentan steht da ja, das falsche:

if fahrlicht_schalter = 1

das funktioniert nicht, gibt ein 'invalid syntax'

egal ob ich da ein
fahrlicht_schalter.when_pressed
oder
if_pressed
oder sonstwas hin mache,

nix geht.

wie bitte heisst die korrekte abfrage eines jetzigen schaltzustandes eines eingangs?

also NICHT
'beispielbutton.when pressed',

was ja soweit ich weiss heisst

'wenn gedrückt wird',

sonder die abfrage:

'ist es gerade gedrückt?'
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der Vergleich geschieht mit ==. Nicht =. Das ist für Zuweisungen. Und hinter eine if-Abfrage muss immer ein : - wie auch bei allen anderen Konstrukten die danach einen Block von Code haben.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

danke!

also:

Code: Alles auswählen

if:  fahrlicht_schalter == 1    #abfrage fahrlicht_schalter
       led_licht_vorn = fahrlicht_vorn  # dann mache 'led_licht_vorn' auf 'fahrlich vorn'

else:   #sonst
        led_licht_vorn.value = startvalue  #led auf startvalue
richtig?

muss nu erstmal mit frauchen einkaufen fahren.....
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du Dich nicht an die Syntax von Python hältst, dann bekommst Du einen SyntaxError. Etwas Sorgfalt gehört zum Programmieren dazu.

Wie schon geschrieben, merkt man sich am besten den Zustand:

Code: Alles auswählen

class Licht:
    FAHRLICHT = 0.6
    FERNLICHT = 1
    BREMSLICHT = 1

    def __init__(self):
        self.led_licht_vorn = PWMLED(21, initial_value=0)
        self.led_licht_hinten = PWMLED(20, initial_value=0)
        self.fahrlicht_schalter = Button(26)
        self.fahrlicht_schalter.when_pressed = self.fahrlicht_an
        self.fahrlicht_schalter.when_released = self.fahrlicht_aus
        self.fernlicht_taster = Button(19)
        self.fernlicht_taster.when_pressed = self.fernlicht_an_aus
        self.bremslicht_taster = Button(10)
        self.bremslicht_taster.when_pressed = self.bremslicht_an
        self.bremslicht_tatser.when_released = self.bremslicht_aus
        self.fahrlicht = False
        self.fernlicht = False
        self.bremslicht = False

    def fahrlicht_an(self):
        self.fahrlicht = True
        self.update()

    def fahrlicht_aus(self):
        self.fahrlicht = False
        self.update()
    
    def fernlicht_an_aus(self):
        self.fernlicht = not self.fernlicht
        self.update()

    def bremslicht_an(self):
        self.bremslicht = True
        self.update()

    def bremslicht_aus(self):
        self.bremslicht = False
        self.update()
    
    def update(self):
        if self.fernlicht:
            self.led_licht_vorn.value = self.FERNLICHT
        elif self.fahrlicht:
            self.led_licht_vorn.value = self.FAHRLICHT
        else:
            self.led_licht_vorn.value = 0
        if self.bremslicht:
            self.led_licht_hinten.value = self.BREMSLICHT
        elif self.fahrlicht:
            self.led_licht_hinten.value = self.FAHRLICHT
        else:
            self.led_licht_hinten.value = 0
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

wow!
da schaut ja ganz anders aus als bei meinem gewusel.

nun zu verstehen dazu ;-) :
ganz oben setzt du die zustände für's die lichter, wenn sie an sind.

in

def __init__(self):

setzt du alle schalter und anfangs-parameter ein.

danach komme die anweisungen was wann passieren muss.

wie das
def update (self):
GENAU arbeitet ist mir noch nicht ganze klar

das muss ich mir ALLES erstmal ordentlich durchlesen und verstehen lernen :-)

danke für diesen lösungsansatz.

ich muss noch viel viel lernen :-)
morgen wenn ich wieder 'frischer drauf bin' schau ich mir das sehr sehr sorgfälltig an und wenn ich meine ich weiss was da alles passiert,
probier ich mal vorsichtig, mit einer kopie davon(!), den blinker dazu zu nehmen (bitte nicht vormachen sonst lern ich das ja nicht wie man das zusammenbastelt :-) ich schrei dann schon und frage wenn ich's nicht hinkriege -relativ wahrscheinlich ;-) .......
danke danke noch mal!

und für heute is genuch, es qualmt der kopf ;-) ............
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

so weiter geht's....
habe den code komplett kopiert und mit allen einrückungen in eine neue datei übernommen.
nur die zeilen:

#!/usr/bin/python3
from gpiozero import LED, Button, PWMLED

habe ich ganz oben rein gechrieben, weil sonst weiss ja das script nicht, das es gpiozero, buttons etc. nutzen soll.

der code funktioniert nicht.
wenn ich ihn recht verstanden habe, sollte er es aber -eigentlich. :-)

ich mutmaße mal das noch etwas fehlt, was für nicht-anfänger selbstverständlich ist.
für mich leider, noch nicht .

kann mir da jemand einen hinweis geben?
sonst fang ich wieder das rumpobieren an und verwirre mich nur selbst(im prinzip hab ich das schon, hab schon einiges probiert in einer extra-kopie um das original nicht kaputt zu machen)

jetzt gibt es aber erstmal essen und dann müssen wir zu einem notfall der meerschweinchen-nothilfe-hamburg, paar schweine retten....
heut abend geht's dann evtl weiter.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

jetzt geht's weiter....
ich finde den ansatz mit class, also klassen interessant, weil dann könnte ich ja später die gangschaltung auch in eine class setzen, ähnlich dem licht jetzt und eine class=schaltung dazu setzen wodurch licht und schaltung schön getrennt wären, aber zusammen in einem script...

dazu müsste ich aber das mit dem was da gemacht wurde genauer verstehen(was ich schon recht weit tuhe, wenn ich das richtig sehe)
nur es läuft nicht :-)

ich werde jetzt mal mit komentaren dazu schrieben was ich sehe, was welche zeile tut, evtl ergibt sich für andere dann ja etwas was ich nicht sehe(oder ich falsch verstanden habe) und man mir da auf die sprünge helfen kann....

Code: Alles auswählen

#!/usr/bin/python3 #ort python interpreter
from gpiozero import LED, Button, PWMLED #nimmt bibliothek 'gpiozero' und davon 'led, button und pwmled' rein
from signal import pause #nimmt pause aus signal' mit rein

class Licht:	#klassenangabe 'Licht'
    FAHRLICHT = 0.6 #pwm-wert licht
    FERNLICHT = 1 #pwm-wert fernlicht
    BREMSLICHT = 1 #pwm-wert bremslicht

    def __init__(self): #initialisierung aller taster, schalter led's usw, für self
        self.led_licht_vorn = PWMLED(21, initial_value=0) #led licht vorn mit anfangs-helligkeit
        self.led_licht_hinten = PWMLED(20, initial_value=0) #led licht hinten mit anfangswert
        self.fahrlicht_schalter = Button(26) fahrlichtschalter
        self.fahrlicht_schalter.when_pressed = self.fahrlicht_an #wenn button gedrückt führe 'self.fahrlicht_an' aus
        self.fahrlicht_schalter.when_released = self.fahrlicht_aus #wenn button losgelassen führe 'self.fahrlicht_aus' aus
        self.fernlicht_taster = Button(19) #fernlicht-button
        self.fernlicht_taster.when_pressed = self.fernlicht_an_aus #wenn button gedrückt führe 'self.fernlicht_an' aus
        self.bremslicht_taster = Button(10) #bremslicht-button
        self.bremslicht_taster.when_pressed = self.bremslicht_an #wenn button gedrückt führe 'self.bremslicht_an' aus
        self.bremslicht_tatser.when_released = self.bremslicht_aus #wenn button losgelassen führe 'self.fernlicht_aus' aus
        self.fahrlicht = False # ist-wert 'fahrlicht'
        self.fernlicht = False # ist-wert 'fernlicht'
        self.bremslicht = False # ist-wert 'bremslicht'

    def fahrlicht_an(self): #funktion für fahrlicht an
        self.fahrlicht = True #setze self.fahrlicht auf 'TRUE'
        self.update() #führe self.update aus

    def fahrlicht_aus(self): #funktion fahrlicht aus
        self.fahrlicht = False #setze fahrlicht auf 'false'
        self.update()	#führe update aus
    
    def fernlicht_an_aus(self): #funktion fernlich an
        self.fernlicht = not self.fernlicht #fernlicht oder nicht fernlicht -genaue bedeutung unklar
        self.update() #führe update aus

    def bremslicht_an(self): #funktion bremslicht an
        self.bremslicht = True #setze bremslich auf true
        self.update() #führe update aus

    def bremslicht_aus(self): #funktion bremslicht aus
        self.bremslicht = False #setze bremslicht auf false
        self.update() #führe update aus
    
    def update(self): #funktion update
        if self.fernlicht: #wenn(if) fernlicht angesprochen wird
            self.led_licht_vorn.value = self.FERNLICHT # nehme wert von FERNLICHT und setze ihn bei led_licht_vorn.value ein
        elif self.fahrlicht: #ausserdem wenn fahrlicht angesprochen wird
            self.led_licht_vorn.value = self.FAHRLICHT #nehme wert von FAHRLICHT und setze ihn  bei led_licht_vorn.value ein
        else: #sonst
            self.led_licht_vorn.value = 0 #setze led_licht_vorn auf value 0
            
        if self.bremslicht: #wenn bremslicht angesprochen wird
            self.led_licht_hinten.value = self.BREMSLICHT #nehme wert von BREMSLICHT und setze den für led_licht_hinten.value ein
        elif self.fahrlicht: #ausserdem wenn fahrlicht angesprochen wird
            self.led_licht_hinten.value = self.FAHRLICHT #nehme wert von FAHRLICHT und setze ihn bei led_licht_hinten.alue ein
        else: #sonst
            self.led_licht_hinten.value = 0 #setze led_licht_hinten auf value 0

#müsste hier nicht 'pause()' stehen 
das das script nicht nur einmal 
durchläuft und sich dann beendet? 
-so habe ich die erklärungen dazu jedenfalls verstanden......-
bis auf 'self.fernlicht = not self.fernlicht' meine ich also eigentlich alles zu verstehen, wobei ich mich wohl täusche, weil, es läuft zwar fehlerfrei(also ohne fehlermeldungen) aber tut nix :-) .
wo liegt mein denkfehler, was hab ich nicht beachtet oder vergessen um das dazu zu bringe das es auch was tut?

ich wollte sonst versuchen SELBER den bremslicht-button samt led(eigentlich ja einen ausgang high/low setzen) mal da mit ein zu bauen.
Antworten