ich habe eigenen Lasergravierer gebaut, gesteuert über ARDUINO UNO mit GRBL. Maschine hat Endschalter in X, Y und Z-Richtung sowie ein Probe-Eingang.
X und Y haben angeschlossene mechanische Sprungkontakte als NC, Z und Probe sind Klemmen und die NC-Kontakte werden nur bei Bedarf montiert.
Die Steuerung sitzt in einem Extra-Kasten, von Maschine getrennt. Für Betrieb wird Maschine mit Steuerung über ein Kabel verbunden. Leider bekomme ich, sobald die Maschine eingeschaltet wird und die Schrittmotoren Spannung bekommen Fehlermeldungen dass die Endschalter ausgelöst haben. Die Signale bekomme ich über X- und Y-Schalter rein, Z und Probe sin soweit OK, es sei dem, die werden auch angeschlossen. Ganze Fehlersuche zeigt dass es über die EMV-Einstreuung in die Adern passiert, Oszilloskop-Messung bestätigt es, dort sind Spannungsspitzen drin.
Ich habe dazwischen eine Schaltung mit je einem Optokoppler pro
Eingang geschaltet, trotzdem kommen die Fehler. Scheinbar reicht die im Kabel erzeugte Spannung um den Optokoppler "schalten" zu lassen. Verwendung mehrerer Kabel fällt aus, wird irgendwann unhandlich.
Meine Frage: lässt sich die Schaltung irgendwie verbessern oder erweitern dahingehend, dass an der Eingangsseite, da wo es zum Kabel/Maschine/Schaltern geht die induzierte Spannung "runtergedrückt wird. Eine LED? Andere Optokoppler?
Hat jemand Ideen oder Vorschläge?
softwaremäßig entprellt hoffentlich. Interessant wäre den Aufbau zu sehen, gibt es einen zentralen Massepunkt für Signalleitungen ? 100nF an jedem Arduino Eingang ?
Mal wieder ein prima Beispiel für überflüssige Optokoppler.
Verstehe ich nicht. Diese Optokoppler-Schaltung wird von GRBL-Projekt empfohlen, wenn die Endschalter verwendet werden. Bei 2 anderen Projekten gab es sporadische Auslösungen ohne diese Schaltung, mit läuft es Prima.
softwaremäßig entprellt hoffentlich. Interessant wäre den Aufbau zu
sehen, gibt es einen zentralen Massepunkt für Signalleitungen ? 100nF an
jedem Arduino Eingang ?
Ja, die Eingänge habe ich in der GRBL-Software entprellt. Alle Minus-Potentiale habe ich zentral miteinander verbunden.
Die 100nF's hatte ich nicht am ARDUINO dran sondern am Eingang des Optokopplers (zu den Schaltern hin). Leider ohne merklichen Erfolg: laut Oszi sind zwar die Spitzen kleiner geworden, aber trotzdem kommen Signale am Arduino-Pins an.
Die langen Leitungen dürfen nicht von den Optokoppler-Transistoren quer durch die Werkhalle zum Arduino geleitet werden. Es muss genau umgekehrt sein, die lange Leitung muss von den Endschaltern durch die Werkhalle durch zu den LEDs von den Optokopplern geführt werden und dann von den Transistorausgängen auf kurzem Wege zum Arduino.
Die langen Leitungen dürfen nicht von den Optokoppler-Transistoren quer
durch die Werkhalle zum Arduino geleitet werden.
Nee so Schlimm ist es nicht. Die Maschine mit Endschalter ist eine Hobby, Maschine, 1m x 1m. Die Leitubgslänge zur Steuerung (aus Handhabungsgründen) extra Kiste ist 2 Meter ubd wird über 30-polige Stecker angeschlossen.
An der Maschine sind nur Laser, Schrittmotor en und die Schalter montiert. Alles Andere (Netzteile, Atduino, Treiber, Optokoppler usw. sind in der Steuerungbuntergebracht (400mmx400mm) und haben sehr kurze Leitungswege.
Scheinbar reicht die im Kabel erzeugte Spannung um den Optokoppler
"schalten" zu lassen
Nein.
Das musste über 5mA in die Leitungen pumpen.
Selbst wenn du Hin- und Rückleitung (Masse und Signal) zu den Tastern nicht in einem Kabel führst sondern getrennte Wege einer linksrum der andere rechtsrum um die Fräse gehen lässt, wird das nicht so viel einkoppeln.
Die Schaltung an sich ist in Ordnung, sogar die Widerstandsverhältnisse passen zu dem Optokopplertyp, und selbst wenn du 1k parallel zu jeder Optokoppler-LED und 1nF parallel zu jedem Optokoppler Transistor schaltest werden die Störungen nicht weggehen.
Weil sie woanders her kommen vermutlich über die Masseleitung induziert.
Hast du das Gestell der Fräse an Masse gelegt, nutzt du gar das Gestell der Fräse als Masserückführung der Endtaster ?
Moin,
ich habe bei meinem Selbstbauplotter gute Erfahrungen mit der Trennung vom Steuerteil und dem Leistungsteil gemacht. Wenn Du die Endschalter mit der Versorgungsspannung der Motore speist (24V ?) und die Massen trennst, könnte die Empfindlichkeit sinken. Dafür brauchst Du allerdings zwei Netzteile. Ich bevorzuge es auch, mit dem OK das Signal zum Arduino nach 5V zu ziehen also R10 und U1 zu tauschen.
Geuß
Carsten
ich habe bei meinem Selbstbauplotter gute Erfahrungen mit der Trennung
vom Steuerteil und dem Leistungsteil gemacht. Wenn Du die Endschalter
mit der Versorgungsspannung der Motore speist (24V ?) und die Massen
trennst, könnte die Empfindlichkeit sinken.
So, und nur so, machen Optokoppler Sinn. In dem Fall würde man die Motorversorgung vor den Endschaltern vielleicht noch zusätzlich per Widerstand und Elko etwas putzen.
Dafür brauchst Du allerdings zwei Netzteile.
Ja, und wenn nicht, macht ein Optokoppler keinen Sinn.
Ich bevorzuge es auch, mit dem OK das Signal zum Arduino
nach 5V zu ziehen also R10 und U1 zu tauschen.
Das dürfte egal sein, Taster / Schalter nach GND sind üblich. Wichtiger ist, das einigermaßen niederohmig zu gestalten und nicht nur die internen PullUps des µC (um geschätzte 50kOhm herum) zu nutzen.
Ich hatte auch mal einen zwei Achse Lasergravierer (max. für A4)
umgebaut.
Allerdings nur für zwei Achsen - den Fokus für den Läser stelle ich
manuell ein.
Das orginale Chinaboard ist mir "abgeraucht", wenn Interesse besteht -
bitte PN.
Einen ersten Eindruck gibt es hier:
https://forum.arduino.cc/t/china-laser-mit-neuem-board/1242967
Nur soviel, ich nehme einen isolierten DC/DC Wandler für die
Optokoppler.
Schau Dir auch dass mal an:
https://github.com/gnea/grbl/issues/1030
Besonders die letzte Antwort sollte beachtet werden.
Die ganze fliegende Verdrahtung fängt auch noch Störungen ein,daher
habe ich auch alles auf einer Platine zusammen gefasst.
Noch etwas: wenn Du die A4988 Module als Driver hast,habe ich
noch einige Platinen unbestückt als Reserve zu liegen.
Wenn Interesse besteht,bitte kurze PN
Schon beim Eröffnungspost "First option:" wird einem ganz komisch. In dem Moment, wo der Schalter schließt, bekommt die LED des Optokopplers erstmal einen übergebraten, weil der Strom aus dem voll aufgeladenen Kondensator nur durch Leitungs- und Kontaktwiderstand, also ziemlich ungebremst, einen kräftigen Peak erzeugt.
Wenn man einen Optokoppler mit einem Vorwiderstand von nur 220 Ω an 5V betreibt (-> 17mA), ist das in Anbetracht des zu steuernden Stromes von 0,5mA außerdem maßlos überzogen und schlängt wegen NC-Tastern nur unnötig auf die Lebensdauer der LED.
Die erste Option ist keine Option und die zweite schlecht dimensioniert.
Ich habe dass auch anders dimensoniert - mir ging es nur um den Hinweis
auf die zweite (isolierte) Spannungsversorgung.
Auch ohne C,s an irgendeiner Stelle läuft dass bei mir schon seit
letztes Jahr super stabil und zuverlässig.
Du hast wohl noch nich nicht mit bekommen, dass hier ein jemand seit Jahren automatisiert -1 verteilt, um Leute wie dich (die darauf sensibel reagieren) zu ärgern.
Das sind nicht "wir", sondern genau ein "Arschloch".
Kann man auch so machen. Zweifel ich ja nicht dran.
Allerdings wissen wir nicht, wie die Situation von außen aussieht. 5-50 Meter Kabel zu den Schalter, parallel zu Leistungskabeln, parallel mit FU-Last.
Spätestens dann würde ich Optokoppler, MIT externer Spannung erwägen. Ohne Potentialbezug. Allerdings habe ich hier auch Pläne von renomierten Firmen, die das mit den Optokopplern, und gleichem (Masse-) Bezug so machen. Hintergrund sind Piezospielerreien. Ohne diese Entkopplung würden massenhaft Fehlfunktion und Zerstörung entstehen.
Allerdings wissen wir nicht, wie die Situation von außen aussieht. 5-50
Meter Kabel zu den Schalter, parallel zu Leistungskabeln, parallel mit
FU-Last.
Hab ich doch gewusst, .. das ich die Außerirdischen vergessen hatte. Dann ist höchste Vorsicht geboten.
Mind. 1500V Eingangs-Optokopler.
Schlitzgefräste Platinen unter den Optoisolator.
Dahinter - mit separatem Trafo und Netzteil auf 'isolierten' Zwischenkreis mit Trennübertrager.
Zur Sicherheit nochmal einen Optokoppler. Der dann auf den Controllereingang des Arduino-Board darf.
Hab ich doch gewusst, .. das ich die Außerirdischen vergessen hatte.
Dann ist höchste Vorsicht geboten.
Mind. 1500V Eingangs-Optokopler.
Schlitzgefräste Platinen unter den Optoisolator.
Dahinter - mit separatem Trafo und Netzteil auf 'isolierten'
Zwischenkreis mit Trennübertrager.
Zur Sicherheit nochmal einen Optokoppler. Der dann auf den
Controllereingang des Arduino-Board darf.
Wirst du so nicht verkaufen können, da ist nirgendwo ›[AK]I‹ erwähnt!
Nein, einen Salvator für die ganze Welt? Soviel können die nicht brauen. Den will ich schon für mich alleine (und vielleicht ein paar andere Biertrinker).
Nein, einen Salvator für die ganze Welt? Soviel können die nicht brauen.
Den will ich schon für mich alleine (und vielleicht ein paar andere
Biertrinker).
Der beherrscht auch die wundersame Biervermehrung, hat mal ein Festzelt von 5000 ratzfatz versorgt.
Keine Ahnng, ob schon jemand den dicksten Anfängerehler in den Optokopplerschaltungen erwähnt hat (fehlender Parallelwiderstand zur Optokpplerdiode).
Es würde mich anhand des geballten zur Schau gestellten Fachwissens aber auch nicht wundern, wenn dieser Thrad zu der bekannten Sorte gehört, nei denen es sich nicht um Einstreuungen handelt, sondern um ein abgebrochenes Kabel im Steckergehäuse oder ein Steuerprogramm, das genau die entgegengesetzte Polarität der Endschalter erwartet.
Ich bin eigentlich der Meinung, daß Zuleitungen zu uC und CMOS Schaltungen aller Art nie ohne "Signal Conditioning Measures" die Schaltung verlassen darf, weil solche Verbindungen oft als Antenne wirken und gerade getaktete und Interrupt Eingänge empfindlich auf externe Energie Aktivitäten reagieren können. Leider findet man in der Praxis oft zu sehr vereinfachte Anordnungen, die dann oft Probleme mit unerwartetem Verhalten verursachen.
Jeder Ein- und Ausgang sollte daher mittels RC Tiefpässen und Transientschutzschaltung nur so viel Bandbreite aufweisen, wie zur Funktion der Schaltung unbedingt notwendig ist. Richtig bemessene RC Tiefpässe an den Eingängen helfen fast immer Wunder.
Auch uC Ausgänge bedürfen gewisser Schutzmaßnahmen die in jeden Fall individuell angegangen werden müssen. Meist ist es zweckmässig auch dort zu "Isolieren". Mit Isolieren meine ich hauptsächlich CMOS Stromkreise sinnvoll von Laststromkreisen zu trennen. Also z.B. Optos, Transistoren, Relais, etz.
Auch der Einsatz von Opto-Isolatoren ist kein Allheilmittel, wenn man mit der Stromrückführung nicht sinnvoll umgeht. Die Primär- und Ausgangsstromkreise dürfen nicht lokal zusammengeschaltet werden.
Am Besten führt man die Eingangsbeschaltung der Optos direkt zur Versorgung (12V), die Ausgangsseitige Beschaltung dann aber nur zum Digitalteil. Nur wenn solche Stromkreise getrennt funktionieren können, stellt sich die erhoffte Wirkung ein. Man darf nie vergessen, dass sich jeder Stromfluss immer wählerisch seinen Rückfluss sucht und man daher selber festlegen muß, wie das umgesetzt werden muß um eindeutige Bedingungen zu schaffen.
Wenn man also alles "richtig" macht, erspart man sich oft unnötiges Fehlersuchen. Die Hersteller von industriellen Steuerungen wissen dass und gerade bei SPSen werden akribisch Schutz- und Isoliermassnahmen umgesetzt um absolute Zuverlässigkeit zu gewährleisten.
Leider findet man oft im Amateur- und Consumerbereich unzureichende Schutzmassnahmen die dann zu Beanstandungen führen können.
Um das erste Milliampere Dreckstrom vollständig am Optokoppler vorbeifließen zu lassen. Das braucht "man" nicht, das benutzt derjenige, der eine störungsfrei funktionierende Schaltung haben möchte. In der real existierenden Werkstatt sind Isolationswiderstände kleiner als in der Theorie.
Gruß Klaus (der soundsovielte)
P:s. Die 2 Deinem Posting zugedachten Pluspunkte deuten darauf hin, daß noch mehr Teilnehmern das praktische Wissen über Optokopper fehlt. Ist der Artikel über Optokoppler in der Artikelsammlung nur theoretisch?
Moin,
was sollen die Endschalter eigentlich bewirken?
Sind da kleine Motörchen verbaut, die einfach stehen bleiben, wenn das Ende erreicht ist oder würde Mechanik zerstört werden?
Sollen die Endschalter bewirken, das der Motor durch die Rampe angehalten wird und in dieser Richtung nicht weiterlaufen kann oder soll der Plotter einfach abgeschaltet werden?
Ich trenne mit den Endschaltern einfach das NT von den Treibern, um Beschädigungen zu vermeiden. Bein Eischalten können zusätzliche Schalter zum Anfahren des Nullpunktes genommen werden.
Jeder Ein- und Ausgang sollte daher mittels RC Tiefpässen und
Transientschutzschaltung nur so viel Bandbreite aufweisen, wie zur
Funktion der Schaltung unbedingt notwendig ist. Richtig bemessene RC
Tiefpässe an den Eingängen helfen fast immer Wunder.
Über welche Frequenzen reden wir eigentlich? Ist es nicht so, das nur Im Fehlerfall oder ev. zum Anfahren der Anfangsposition die Signale ausgewertet werden?
Soll wirklich ein offenes 5m langes Drähtchen die LED des OK mit 5 oder 10mA über die Reaktionszeit des OK versorgen können? Bei mir jedenfalls noch nie.
Man schließe einen Funktionsgenerator an der Eingang und schaue sich die Franken am Ausgang an.
Gruß
Carsten
Soll wirklich ein offenes 5m langes Drähtchen die LED des OK mit 5 oder
10mA über die Reaktionszeit des OK versorgen können? Bei mir jedenfalls
noch nie.
Es geht zwar ums Gegenteil (Schalter NC=Normally Closed), aber da bin ich genau wie Du der Meinung, daß "Einstreuungen" in diesem Fall wahrscheinlich nur Einbildungen sind. Wo soll die Energie herkommen, die es braucht um ein niederohmiges Signal zu stören? Kenne ich auch nur ab 1KWatt aufwärts oder ein Laserplasma stört Millivolt-Signale.
Also entweder sind die angegebenen Widerstände einen Faktor 1000 größer oder es liegt ein massives Ground-Problem mit den Motorströmen vor oder eins der Signale hat Kontaktprobleme. Das erscheint mir erheblich wahrscheinlicher (den theoretisch möglichen Fall der falschen Wahl der Polarität der Endschalter in der grbl-Software hat der TO hoffentlich schon geklärt).
Falls ich mich irgendwo in der Software vertan habe und der Laser gegen Rahmen fährt so wird Programm unterbrochen, die Motoren sowie Laser über ARDUINO abgeschaltet.
Also entweder sind die angegebenen Widerstände einen Faktor 1000 größer
oder es liegt ein massives Ground-Problem mit den Motorströmen vor oder
eins der Signale hat Kontaktprobleme.
Hast du das Gestell der Fräse an Masse gelegt, nutzt du gar das Gestell
der Fräse als Masserückführung der Endtaster
Nein. Motoren sowie Endschalter sind alle gegen Rahmen isoliert aufgebaut (Die Verfahrwagen sind aus PVC, Motor treibt ein Zahnriemen aus Gummi an).
Die Messungen der Bauteile gegeneinander und Rahmen zeigen keine Verbindung.
Die Versorgung der OK erfolgt laut Schaltplan aber vom Arduino,
also nicht potentialgetrennt...
Ja, das stimmt, das werde ich überarbeiten. Mit der Messung der Bauteile gegeneinander habe ich die Aufbauten am Rahmen gemeint, Motoren gegen Rahmen usw.
Innerhalb der Steuerung ist es so aufgebaut, dass alle Minus-Potentiale/GND's miteinander verbunden sind, nach ein Paar wirklich guten Erklärungen im Thread leuchtet es mir ein dass es beim Optokoppler so blöd ist, da ich ja die Trennung des Potentials "überbrücke". Ich werden die Schaltung anders bauen, so dass die Spannungsversorgung der Endschalter an der Eingangsseite der Koppler über ein eigenes Netzteil erfolgt, dieser wird auch von anderen Potentialen getrennt.
Nur komme ich im Moment nicht dazu, muss aber ohnehin auf Teile warten.
Sobald ich getestet habe melde ich mich.
Bisher kann ich mich bei den Meisten nur bedanken für konstruktives Aufzeigen der Fehler sowie vielen Tipps!
So, kurzes Feedback: hatte jetzt Zeit dabei zu gehen: die vollständige Trennung der Potentiale hat es gebracht, es funktioniert tadellos.
Vielen vielen Dank an alle, die mit Kritik, aber auch Erklärungen das Problem "sichtbar" und greifbar gemacht haben. Auch für Anregungen, Tipps und Hinweise bin ich sehr dankbar!
Ich werden die Schaltung anders bauen, so dass die
Spannungsversorgung der Endschalter an der Eingangsseite der Koppler
über ein eigenes Netzteil erfolgt