schaltlogik entwickeln für 8-gang-schaltung

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

Ich habe dir schon gesagt, dass der Ansatz wie er bei der Gangschaltung greift NICHT geeignet ist zur Kontrolle für Bremsen und Licht. Bremsen ist nicht ein Schritt NACH Licht. Und auch nicht davor. Das passiert unabhängig voneinander. Gleiches gilt für die Lichthupe. Mal dir mal die vier möglichen Zustände, die das bremslichtsystem haben kann auf.

Nix
Bremsen
Bremsen+Licht
Licht

Dies sind in KEINE simple lineare Abfolge zu bringen. Da gibt es beliebige Sprünge. Und das muss der Code erlauben. Ich habe dir schon einen Weg genannt, wie man sowas darstellen kann. Lies nochmal meine Antwort, und Versuch das zu verstehen. Du kannst ja auch fragen stellen. Aber einfach den bestehenden Code kopieren und hoffen das klappt - geht nicht. Mit der Fahrradpumpe kannst du nunmal keinen Schaltkranz wechseln. Auch nicht durch heftiges draufhauen.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

ich bin dabei schrittweise das was 'gangschaltung' macht, auf die pwmled zu übertragen.
also hab ich erstmal 'grob' alles doppelt geschrieben, dann in led-bezeichnungen geändert und wollte nun die gemachten fehler langsam ausmerzen :-)

hintergrund: 0, 0.2, 0.6, 1 soll die pwm-value werden, so wie in dem ersten script, wo ich die lampenschaltung hatte:

Code: Alles auswählen


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

button1 = Button(26) #lichtschalter
button2 = Button(19) #fernlichtschalter
button3 = Button(13) #blinkschalter links
button4 = Button(6) #blinkschalter rechts
button5 = Button(5) #hupenschalter
button6 = Button(11) #bremslichtschalter

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

led1 = PWMLED(21,initial_value=startvalue) # Fahrlicht vorn
led2 = PWMLED(20,initial_value=startvalue) # Fahrlicht hinten
led3 = LED(16) # blinker links
led4 = LED(12) # blinker rechts
led5 = LED(7)  # hupe
led6 = LED(8) #

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

def fahrlicht_an():
    led1.value = fahrlicht_vorn
    led2.value = fahrlicht_hinten
    
def fahrlicht_aus():
    led1.value = startvalue
    led2.value = startvalue
    
def bremslicht_an():
    led2.value = bremslicht_hinten
    
def bremslicht_aus():
    led2.value = fahrlicht_hinten

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)
    
button5.when_pressed = bremslicht_an
button5.when_released = bremslicht_aus

button1.when_pressed = fahrlicht_an
button1.when_released = fahrlicht_aus

button2.when_pressed = fernlicht

button3.when_pressed = blinker_links                         
button3.when_released = led3.off

button4.when_pressed = blinker_rechts
button4.when_released = led4.off
    
pause()

ich will also diese 'beleuchtungslogik' so umsetzen wie die 'gangschaltungslogik'
und zuerst stolper ich nun darüber das ich keine 'float-werte' in die liste setzen darf und da komm ich grad schon ins schwimmen.
schon schwer genug das zu versuchen so um zu modeln wie bei der gangschaltung ;-)
und das wird sicher nicht der letzte fehler sein der da (noch) ist.....

@deets: ja, ich muss das nochmal lesen, und vor allem verstehen was du da geschrieben hast ;-) ich frage dann gern nochmal an.

bin so ein holzkopf der seine erfahrungen machen muss und 'einfach erstmal loslegt' ;-)
aber wer hinfällt, kann auch wieder aufstehen :-)

lichtblitz:
meintest du man müsste die pwm=werte mit ganzen zahlen gleich setzen zb

0=0.0(pwm-wert)
1=0.2(pwm-wert)
2=0.6(pwm-wert)
3=1(pwm-wert)

wie binde ich diese 'tabelle dann ein, also das die pwmled weiss das diese liste die verschiedenen pwmwerte sind?

diese 'listenwerte'(links die ganzen zahlen) könnte ich dann als schaltzustände der 'modifizierten gangschaltung nutzen?! richtig?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die letzte Tabelle ist eine lookup tabelle, wie vorher schon GEARS2SERVO. Und ja, DAS kannst du benutzen. Schrieb ich auch schon. shift und clamp hingegen sind komplett ueberfluessig. Du schaltest keinen Licht-Gang hoch, und du musst auch nichts beschraenken. Das ist das mental komplett falsche modell, und da gibt es auch keinen schrittweisen weg, davon weg zu kommen, zu dem richtigen modell. Es ist in die falsche richtung gelaufen, und ausser Zeitverschwendung ist da kein Gewinn.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

ja da hast du recht, aber:
ich habe gelernt was NICHT geht :-)
für mich auch ein gewinn ;-)

wenn ich dich recht verstehe, meinst du ich soll nicht 'lichtghänge' schalten wie ich das versucht hab, sondern das anders lösen.

und ich hatte gedacht das des eine 'schlaue lösung' das so zu machen, damit ich über den weg hinbekomme was ich will,

nämlich fahrlicht an/aus
und wenn es mal gebraucht(getastet) wird nur von fernlicht an oder nur hinten bremslicht an und später wieder in den eigentlich gerade laufende helligkeit des 'fahrlichtes' wieder zurück schalten....

ich mach mir da mal eine skitze anhand ich dann die zustände besser sehe als sie nur im kopf zu haben...
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

hier mal die skitze oder 'schaltverlauf':

Programmstart
---> Fahrlicht an ---> Fahrlicht vorn und hinten, pwm 0.6
---> Fahrlicht aus --> fahrlicht vorm und hinten pwm 0.0

---> Fernlicht an ---> Fahrlicht, vorn pwm 1
---> Fernlicht aus ---> Fahrlicht vorn pwm 0.6 oder pwm 0, wenn Fahrlicht an oder aus

---> Bremslicht an ---> Fahrlicht hinten pwm 1
---> Bremslicht aus ---> Fahrlicht hinten pwm 0.6 oder pwm 0, wenn Fahrlich an oder aus

---> hupe an ---> hupe an
---> hupe aus ---> hupe aus

---> blinker links ---> blinker inks blinkt solange blinker an
---> blinker rechts blinkt solang blinker an

hab bissel drüber sinniert und kann die pwm 0.2 wenn man das programm einschaltet als startvalue auch weg lassen, ich krieg das schon mit, wenn eine lampe nicht will :-)
das spart auch einen weiteren schaltzustand.

soweit ist das ganze geschalte auch kein problem, hab des ja auch schon so im alten script
fas 'erschlagen'.

wo es knifflig wird ist:
wie sag ich dem fern- und brems-licht wohin es zurück-schalten soll, beim ausschalten?!

kann ich beim einschalten der beleuchtung irgendwohin den 'ist-zustand' hinschreiben, der dann auch beim start erstmal auf =0 steht?

sodass sich das bremslicht und fernlicht wenn es aus geht von da den ausgangswert wieder holt und dahin zurückschaltet?

kann ich eine variable 'istzustand = 0' angeben, die ich beim anschalten vom licht 0 auf 0.6 setze und diese wenn fernlicht/ bremslicht wieder aus geht dann abfrage und dahin da licht dann wieder zurücksetze?

hab schon gelesen das sowas wohl geht, aber mir ist die funktionsweise nicht begreiflich, wie das dort erklärt wird.

selbst mit der lookup-tabelle:
0 = pwm 0
1 = pwm 0.6
2 = pwm 1
( wie muss ich die bennen? 'pwmtabelle' zb?)
kann ich zwar sagen 'geh nach 0,1,2' und dann geht pwm auf 0 , 0.6 , 1

aber die 'rückabfrage' hätte ich dann ja noch nicht wenn das fern- oder brems-licht dann aus geht? :-)
daran 'hakt' ja auch die alte schaltung.
__deets__
User
Beiträge: 14545
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: 13116
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: 14545
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: 13116
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: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wer kann was wo hinschreiben?
Benutzeravatar
__blackjack__
User
Beiträge: 13116
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: 14545
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.
Antworten