Hi,
ich habe ein sehr umfangreiches Hardware Projekt.
Da laufen mehrere Servos parallel und sind mehrere Schrittmotoren im Einsatz. Eine Kamera macht Bilder und Dinge werden gewogen...
Alles habe ich in den Griff bekommen.
Jetzt würde ich gerne mit einem der Schrittmotoren auf einen Endschalter fahren. Um immer eine gleiche Position zu erreichen.
Hab mir in meine "Maschine" einen Endschalter gebastelt und bemerkt, dass gpiozero wohl ein Problem mit Buttons hat.
Zu Testzwecken habe ich ein Demoskript verwendet, in dem ausschließlich mein Button vorkommt:
from gpiozero import Button
button = Button(4)
button.wait_for_press()
print("The button was pressed!")
Wenn ich das laufen lasse kommt folgender output:
Run tastertest2.py
Traceback (most recent call last):
File "/home/public/software/tastertest2.py", line 3, in <module>
button = Button(4)
File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 108, in __call__
self = super(GPIOMeta, cls).__call__(*args, **kwargs)
File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 414, in __init__
super(Button, self).__init__(
File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 433, in __init__
super(HoldMixin, self).__init__(*args, **kwargs)
File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 171, in __init__
self.pin.when_changed = self._pin_changed
File "/usr/lib/python3/dist-packages/gpiozero/pins/__init__.py", line 432, in <lambda>
lambda self, value: self._set_when_changed(value),
File "/usr/lib/python3/dist-packages/gpiozero/pins/pi.py", line 319, in _set_when_changed
self._enable_event_detect()
File "/usr/lib/python3/dist-packages/gpiozero/pins/rpigpio.py", line 226, in _enable_event_detect
GPIO.add_event_detect(
RuntimeError: Failed to add edge detection
Display More
Ist das ein Bug vom gpiozero?
Habe wo anders gelesen, dass das wechseln vom Pin oder das wechseln von VCC auf GND nichts bringt.
Kann mir da jemand weiterhelfen?
Gibt es zum Button eine Alternative für einen Endschalter?