Hallo zusammen
Wenn ich folgen Code ausführe erwarte ich eigentlich, dass von 0.7 in 0.1er Schritten auf 0.0 herunterzählt.
(Anm. zum Code: PWMLi und PWMRe haben je den Wert 0.7 und dies ist nur ein Teil des Codes. Gerne kann ich den ganzen teilen.)
Code
elif self.vor_aktion!=1:
print("1")
print(PWMLi.value)
print(PWMRe.value)
while PWMLi.value >=0 and PWMRe.value >=0:
PWMLi.value=PWMLi.value-0.1
PWMRe.value=PWMRe.value-0.1
print("2")
print(PWMLi.value)
print(PWMRe.value)
time.sleep(0.1)
Alles anzeigen
Leider macht die Schleife aber nicht was ich will. Zu beginn zählt es schön bei jedem Durchgang 0.1 herunter, dann aber plötzlich stimmt es nicht mehr. Danach erhalte ich die Fehlermeldung, da der Wert zwischen 0 und 1 sein muss (was ja auch logisch ist):
Code
5.230235450181226
Linksdrehung fertig
links
5.844344752346842
Linksdrehung fertig
vor
182.26177481402647
vor2
1
0.7
0.7
2
0.6
0.6
2
0.5
0.5
2
0.4
0.4
2
0.30000000000000004
0.30000000000000004
2
0.20000000000000004
0.20000000000000004
2
0.10000000000000003
0.10000000000000003
2
2.7755575615628914e-17
2.7755575615628914e-17
Traceback (most recent call last):
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 177, in <module>
app = Motorsteuerung(master=root)
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 43, in __init__
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 87, in AbstandVorne
self.links()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 130, in links
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 87, in AbstandVorne
self.links()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 130, in links
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 87, in AbstandVorne
self.links()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 130, in links
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 87, in AbstandVorne
self.links()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 130, in links
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 87, in AbstandVorne
self.links()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 130, in links
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 87, in AbstandVorne
self.links()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 130, in links
self.AbstandVorne()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 83, in AbstandVorne
self.norm_vor()
File "/home/pi/Desktop/Motorsteuerung/Tkinter_Motorsteuerung_PWM_Ultraschall.py", line 101, in norm_vor
PWMLi.value=PWMLi.value-0.1
File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 132, in __setattr__
return super(GPIOBase, self).__setattr__(name, value)
File "/usr/lib/python3/dist-packages/gpiozero/output_devices.py", line 448, in value
self._write(value)
File "/usr/lib/python3/dist-packages/gpiozero/output_devices.py", line 434, in _write
raise OutputDeviceBadValue("PWM value must be between 0 and 1")
gpiozero.exc.OutputDeviceBadValue: PWM value must be between 0 and 1
Alles anzeigen
Wieso zählt es da nicht schön in 0.1er Schritten herunter? Kann mir jemand helfen?
PS: Es handelt sich um eine Steuerung eines Kettenfahrzeuges mit zwei Motoren. Die Motoren will ich jeweils über eine Rampe bremsen und beschleunigen.
LG Bern