erstmal vielen Dank für die Lib. Hat echt weitergeholfen.
Habe aber leider ein seltsames Phänomen festgestellt und bin mir nicht sicher aus welcher Ecke das kommt.
Ich steuere mit dem RevPiModIO einen Motorcontroller.
Signal fahr hoch -> Antwort bin oben, Signal fahr runter -> Antwort bin unten.
Ich hatte komisches Verhalten, obwohl der Code wirklich sehr schmal ist.
Habe mir dann eine Break-Out-Box mit LEDs gebaut, um die Signale auf dem Kabel visuell vor mir zu haben (vll hab ich mich ja vertan)
Zu meiner Überraschung habe ich festgestellt, dass die Ausgänge "blinken".
Code: Select all
def wait_for_part_moving(self):
self.rpi.core.a1green.value = False
while self.rpi.io.I_2.value and not self.rpi.io.I_7.value:
self.check_motor_err()
self.rpi.core.a2green.value = not self.rpi.core.a2green.value
self.check_motor_err()
self.rpi.core.a2green.value = False
def wait_for_ipins(self, input_pin):
while self.rpi.io.I_2.value and not self.rpi.io[input_pin].value:
self.rpi.core.a1green.value = not self.rpi.core.a1green.value
self.check_motor_err()
def motor_move_up(self):
self.rpi.io.O_2.value = True
self.wait_for_part_moving()
write_csv(self.rpi, params=self.params, cycle=self.current_cycle,
event_name='motor moving up')
self.rpi.io.O_2.value = False
self.wait_for_ipins('I_3')
write_csv(self.rpi, params=self.params, cycle=self.current_cycle,
event_name='part at top')
self.rpi.core.a1green.value = False
return True
def motor_move_down(self):
self.rpi.io.O_3.value = True
self.wait_for_part_moving()
write_csv(self.rpi, params=self.params, cycle=self.current_cycle,
event_name='motor moving down')
self.rpi.io.O_3.value = False
self.wait_for_ipins('I_4')
write_csv(self.rpi, params=self.params, cycle=self.current_cycle,
event_name='part at bottom')
self.rpi.core.a1green.value = False
return True
trotzdem blinken diese Ausgänge (manchmal auch andere).
Die Frequez ist unterschiedlich, teilweise wirken die LEDs gedimmt, teilweise gehen Sie wirklich optisch sehr schnell an und aus.
Ist das jemandem schon mal passiert?
Wo sollte ich zuerst gucken um das zu lösen?
Wenn jemand irgendeine Idee hat, wäre super.
Vielen Dank.
PS: Das Verhalten hatte ich während der Entwicklung schon mal, hat sich dann in Luft aufgelöst!?
Hab das Projekt jetzt neu auf einen anderen RevPi installiert und hab es wieder. Ist also nicht Hardware basiert.