Jump to content

klausTUHH

Members
  • Gesamte Inhalte

    3
  • Benutzer seit

  • Letzter Besuch

klausTUHH's Achievements

Newbie

Newbie (1/14)

0

Reputation in der Community

  1. Hallo Bastian, das war die Lösung. Ich hatte es mir schon gedacht, aber ich habe noch gehofft, das es eine einfache Softwareoption dafür gibt. Vielen Dank also für den Tipp. Es läuft jetzt perfekt. Klaus
  2. Hallo zusammen, ich habe ein Problem mit einem IO-4 und weiss so garnicht, ob ich das nur falsch verstehe. Ich habe an dem IO-4 ein Dual-SSR von SainsSmart (?) angeschlossen und steuere damit 2 Magnetventile. Das funktioniert mit einem Python-Programm auch sehr gut und ist nicht das Problem. Das Problem ist, dass das IO-4 beim Einschalten (also verbinden mit dem USB-Anschluss am Rechner) die Ausgänge auf 1setzt und damit die SSRs durchschaltet. Dadurch sind auch die Magnetventile offen und es fließt in unserem Falle ein Gas. Starte ich das Python-Programm ist alles wieder in Ordnung, da ich da ja eine Initialisierung durchführe und die Ausgänge auf logisch 0 schalte. Meine Frage ist, ob sich der Defaultzustand der IO-4-Ausgänge einstellen lässt oder ob mit einem Pullup-Widerstand arbeiten muss, der die Eingänge der SSR-Platine auf 0 setzt. Bis dann Klaus
  3. Hallo zusammen, ich versuche mit einem Stepper-Brick eine Schrittmotorsteuerung für ein Experiment aufzubauen. Das funktioniert auch alles prima. Jetzt sollte eigentlich auch noch der Start und Endpunkt mit einem Endschalter erkannt werden. Dazu habe ich eine noch vorhandene IO16 verwendet. Ich nutze für den Nullpunkt den Pin7 des Port A und habe eine Interruptroutine, die den Steppermotor auschaltet (break). Das funktioniert auch aber leider nicht zuverlässig. Gelegentlich wird beim betätigen des Schalters wohl kein Interrupt ausgelöst und die Callback-Funktion auch nicht aufgerufen. Der switch ist direkt an Pin7 und GND angeschlossen und der Pullup-Widerstand eingeschaltet. Initialisiert wird IO16 mit: self.stepper.register_callback(self.stepper.CALLBACK_POSITION_REACHED,self.cb_reached) self.switch.set_port_configuration('a', 128,'i', True) die Callback-Funktion wird mit: self.switch.register_callback(self.switch.CALLBACK_INTERRUPT, self.cb_endswitch) self.switch.set_port_interrupt('a', 0) # noch kein Interrupt registriert, aber zunächstder Interrupt abgeschaltet. Wenn ich per Software eine Initialisierung durchführe, gebe ich den Interrupt mit: self.switch.set_port_interrupt('a', 1 << 7) # Pin 7 an Port A frei. in der Callback-Funktion wird der Motot gestoppt und der Interrupt mit: self.switch.set_port_interrupt('a', 0) # Interrupt wieder ausschalten wieder ausgeschaltet. Ich nehme keine Auswertung der Wertes von Port A vor, da das auslösen des Interruptes für mich schon genügt, den Motor zu stoppen. Hat jemand ein ähnliches Problem mit nicht ausgelösten Interrupt und hat dafür möglicherweise eine Lösung? Klaus
×
×
  • Neu erstellen...