Ich habe für jede Achse einen Endstop Schalter an meiner Käsefräse
angebracht.
Das Arduino Board hat nur 2 Pins pro Achse.
Die optischen Endschalter funktionieren daran einzeln einwandfrei,
jedoch nicht parallel und auch nicht in Reihe.
Parallel leuchten die LEDs der Schalter genauso, aber sobald ich
unterbreche, glimmen die LEDs nur etwas weniger, statt auszugehen.
Unterbreche ich beide Schalter zusammen, gehen auch beide aus und die
Fräse reagiert und schaltet ab, als wäre es eben nur ein Schalter.
Die optischen Schalter sind die hier:
https://www.amazon.de/Optischer-Endschalter-optischen-besonders-verwendet/dp/B01NASDW1Y
S V G / Signal, Voltage, Ground (meine Interpretation)
Weiß jemand, wieso die parallel nicht laufen?
Wurde auch so im Instruction Manual der CNC empfohlen, also die parallel
zu betreiben. Egal ob optisch oder mechanisch.
Gabellichtschranken als Endschalter einer Fräse sind nicht optimal. Die
sind schmutzempfindlich. Nimm mechanische Schalter. Da gibt's dann auch
kein Problem bei Parallelschaltung.
Harald schrieb:> Weiß jemand, wieso die parallel nicht laufen?
Damit das funktioniert muss das Signal an einen Pull-Up und bei
Betätigung der Lichtschranke auf Masse gezogen werden (Open-Drain
Konfiguration). Suche oder erstelle mal einen Schaltplan für die Dinger
und stell den hier ein. Mit dem Amazon-Link und den dort zu findenden
Bildern kann man nichts anfangen.
Einhart P. schrieb:> Gabellichtschranken als Endschalter einer Fräse sind nicht optimal. Die> sind schmutzempfindlich. Nimm mechanische Schalter. Da gibt's dann auch> kein Problem bei Parallelschaltung.
Sehe ich auch so.
Harald schrieb:> Ist bereits alles verbaut, es muss also leider irgendwie gehen
Dann bau sie doch aus und tüdel die mechanischen Endschalter irgendwie
da dran.
Christopher J. schrieb:> Damit das funktioniert muss das Signal an einen Pull-Up und bei> Betätigung der Lichtschranke auf Masse gezogen werden (Open-Drain> Konfiguration). Suche oder erstelle mal einen Schaltplan für die Dinger> und stell den hier ein. Mit dem Amazon-Link und den dort zu findenden> Bildern kann man nichts anfangen.
Das klingt interessant. Einen Schaltplan erstellen kann ich nicht.
Wie gesagt: G S V ... ground, signal, voltage (5V)
Würde gerne etwas zurecht löten. Habe es schon in etlichen Variationen
mit Dioden versucht. Dachte mir, dass nicht das Signal von Schalter 2 zu
Schalter 1 zurück soll. Funktioniert hat dann Schalter 2, aber 1 nicht.
Bin hier nicht der Elektronik Guru, aber eine Schaltung löten kann ich
schon. Habe mir versucht die Open-Drain-Geschichte mal rein zu fahren -
keine Chance. To much für mich.
Also wenn hier nicht einer eine zündende Idee hat, darf ich 3 volle Tage
in die Tonne kloppen und echt mechanische dran machen. Würde mich zum
Berserker machen. Kann sein, dass ich raus renn und ne Katze fress! Also
helft mir
Versuch mal welche Variante funktioniert:
a.)
Sensor1 o----|>|-----+---------o Arduino
|
|
Sensor2 o----|>|-----+
|
###
# #
# # Widerstand, 4,7 Kiloohm
# #
###
|
o
Minus (Ground, 0 Volt, Masse...)
b.)
Plus (5V, 3,3V)
o
|
###
# #
# # 4,7 Kiloohm
# #
###
|
Sensor1 o----|<|-----+
|
|
Sensor2 o----|<|-----+---------o Arduino
Die Dinger "--|<|--" sollen Dioden sein. Der Pfeil gibt die Richtung an,
in der sie leiten. Kannst auch einen andern Widerstand verwenden, 10
Kiloohm. Sollte nur nicht kleiner als 1 Kiloohm sein, was halt gerade da
ist.
Harald schrieb:> Würde mich zum Berserker machen. Kann sein, dass ich raus renn und ne> Katze fress! Also helft mir
Ich mag Katzen, also versuche mal das Prinzip zu erklären ;)
Ein Pull-Up ist erstmal nichts weiter als ein hochohmiger Widerstand
(z.B. 4,7kOhm) der mit einem Ende an VCC und mit dem anderen Ende an
deiner Signal-Leitung hängt. Dadurch hat die Signalleitung im
"Ruhezustand" einen High-Pegel. Nun klemmst du einen Transistor zwischen
deine Signalleitung und GND. Sperrt der Transistor bleibt dein Signal im
High-Pegel, leitet der Transistor jedoch, zieht der Transistor das
Signal auf einen Low-Pegel, da du einen Spannungsteiler zwischen deinem
hochohmigen Pullup-Widerstand und deinem niederohmigen (leitenden)
Transistor hast. Nimmt man als Transistor einen N-Kanal Mosfet, so hängt
der Drain des Transistors an der Signal-Leitung (daher der Name
"Open-Drain"). Der Clou bei der Sache ist, dass du mehrere Transistoren
parallel zwischen diese Signalleitung und GND klemmen kannst und das
Signal einen Low-Pegel annimmt, sobald mindestens einer der Transistoren
leitet. Leiten mehrere Transistoren gleichzeitig ist das kein Problem,
da sie ja alle nur das Signal auf GND ziehen und nicht "gegeneinander"
arbeiten.
Ob deine optischen Endstopps mit dieser Konfiguration arbeiten lässt
sich relativ leicht herausfinden:
- du prüfst den Pegel am Signal-Pin bei geöffneter und geschlossener
Schranke
- du misst (im abgesteckten Zustand) den Widerstand zwischen den Pins
"S" und "V"
Wenn bei geöffneter Schranke "S" in etwa VCC entspricht und bei
geschlossener Schranke "S" in etwa 0V und du zwischen "S" und "V"
irgendwas im Kiloohm-Bereich misst, dann müsstest du sie eigentlich
problemlos parallelschalten können.
So wie du das beschreibst klingt das für mich so, als wäre der Pull-Up
zu niederohmig und somit packt es eine einzelne Lichtschranke nicht das
Signal auf GND zu ziehen.
Okay, 2 Dioden und ein 10k Widerstand brachten folgendes Ergebnis.
Geschlossen bringen die Schalter am Signal Pin 0,8V und unterbrochen
(also geöffnet) 5V.
Parallel ohne Dioden und PullUp bringen die Schalter jeweils aber nur
1,8V statt 5V am Signal Pin.
Mit den Dioden und dem Pull-Up bringen sie nun 4,4V Volt. Die LED der
Schalter geht auch vollständig aus, aber das Arduino Board reagiert
leider nicht.
Entweder fehlen hier noch die 0,6V am Signal Pin also insgesamt 5V,
damit das Arduino reagiert oder... ?! ..
Was kann ich tun, damit die Spannung noch etwas hoch geht? Evtl. den
Pull-Up kleiner dimensionieren? 2kOhm ?
Zuletzt habe ich nun mal NUR den 10k Widerstand zwischen die gekoppelten
Signal Pins der Schalter und dem Arduino geklemmt. Nun habe ich bei
einem 2V am Signal pin und beim andern 1,53V.
Bei dem Schalter, der am Signal Pin 2V hat klappt es. Er schaltet bzw.
das Board reagiert. Beim andern Schalter mit nur 1,53V reagiert das
Board nicht.
Also zusammenfassend:
Egal in welche Richtung das Signal durch kann... vom Board zu den
Schaltern oder von den Schaltern zum Board (inkl. Pull Up Widerstand)...
Äußerlich verhalten sich die Schalter richtig und wechseln von 0,8V zu
5V am Signal pin. Auch die LEDs gehen aus, wenn ich unterbreche.
Passieren tut in beiden Fällen jedoch beim Board nichts. Die Stepper
stoppen nicht.
Ich habe nochmal gegen geprüft, ob die Schalter defekt sind und einzeln
laufen. Das tun sie.
Harald schrieb:> Ich habe nochmal gegen geprüft, ob die Schalter defekt sind und einzeln> laufen. Das tun sie.
D.h. dann schalten die Stepper auch ab?
Harald schrieb:> Habe gerade mal 5V am Schalter mit dem Signal Pin kurz geschlossen. Auch> keine Reaktion. Hier stimmt also etwas anderes nicht :-/
Normalerweise (Ausnahmen bestätigen die Regel) hat man bei solchen
Endschaltern 5V bei geöffnetem Schalter und 0V bei betätigtem bzw.
geschlossenen Schalter. Das hängt zum einen mit der Möglichkeit der
Veroderung mittels Open-Drain/Pull-Up Verschaltung zusammen und
andererseits ist ein Defekt des Schalters bzw. der Verkabelung (liefert
0V) gleichbedeutend mit einem betätigten Endschalter und man merkt, dass
etwas nicht stimmt. Andersherum merkt man das erst bei einem Crash ;)
Harald schrieb:> Äußerlich verhalten sich die Schalter richtig und wechseln von 0,8V zu> 5V am Signal pin. Auch die LEDs gehen aus, wenn ich unterbreche.
Das Problem könnten die 0,8V sein, weil das hart an der Grenze zu dem
ist, was der AVR als low-Pegel akzeptiert.
Ohne Schaltplan ist das alles ein stochern im Nebel. Prüfe mal ob der
Schaltplan vom "Reprap Opto Endstop 2.1" passt:
https://www.flickr.com/photos/hoeken/2932013987/in/set-72157607358104210/
Christopher J. schrieb:> Harald schrieb:>> Ich habe nochmal gegen geprüft, ob die Schalter defekt sind und einzeln>> laufen. Das tun sie.>> D.h. dann schalten die Stepper auch ab?>> Harald schrieb:>> Habe gerade mal 5V am Schalter mit dem Signal Pin kurz geschlossen. Auch>> keine Reaktion. Hier stimmt also etwas anderes nicht :-/>> Normalerweise (Ausnahmen bestätigen die Regel) hat man bei solchen> Endschaltern 5V bei geöffnetem Schalter und 0V bei betätigtem bzw.> geschlossenen Schalter. Das hängt zum einen mit der Möglichkeit der> Veroderung mittels Open-Drain/Pull-Up Verschaltung zusammen und> andererseits ist ein Defekt des Schalters bzw. der Verkabelung (liefert> 0V) gleichbedeutend mit einem betätigten Endschalter und man merkt, dass> etwas nicht stimmt. Andersherum merkt man das erst bei einem Crash ;)>> Harald schrieb:>> Äußerlich verhalten sich die Schalter richtig und wechseln von 0,8V zu>> 5V am Signal pin. Auch die LEDs gehen aus, wenn ich unterbreche.>> Das Problem könnten die 0,8V sein, weil das hart an der Grenze zu dem> ist, was der AVR als low-Pegel akzeptiert.>> Ohne Schaltplan ist das alles ein stochern im Nebel. Prüfe mal ob der> Schaltplan vom "Reprap Opto Endstop 2.1" passt:> https://www.flickr.com/photos/hoeken/2932013987/in/set-72157607358104210/
Passt leider nicht der Plan. Wie gesagt die 0,8V am Signal Pin des
Schalters funktionieren bei einem Schalter. Parallel mit einem 2.
Schalter, der auch 0,8V hat klappt es nicht.
Nur nochmal zur Erklärung. 5V Signal am Arduino kurz geschlossen mit
Ground = Erfolg.
Ground 5V und Signal Leitung am Schalter = 0,8V am Signal pin des
Schalters und 5V am Signal Pin des Schalters, sobald ich die Schranke
unterbreche.
Und hier komme ich nicht weiter. Wie kann es sein, dass das Arduino
reagieren soll bzw. reagiert, wenn die 5V des Signal Pins auf Masse
gezogen werden und (EIN) der Schalter das auch hin bekommt, indem er
messbar am Signal Pin auch statt 0,8V (wo auch immer die her kommen) 5V
hat.
Sozusagen 5V nicht auf Masse ziehen, sondern mit 5V verbinden!? ...
trotzdem klappts (mit einem Schalter). Ich verstehe nicht, was da vor
sich geht.
Ich denke ich habe jetzt einen Hinweis. Damit sollte man evtl. arbeiten
können.
Die ganze Zeit habe ich das Verhalten zwischen ground und Signal Pin
gemessen und habe mich gewundert, warum ich 5V hatte, obwohl der
Schalter unterbrochen war, ABER
Wenn ich den Signal Pin als Masse sehe und zwischen ihm und +5V messe,
habe ich 4,3V und 0V je nachdem ob der Schalter offen oder unterbrochen
ist.
Und schließe ich nun 2 Schalter parallel an, habe ich 4,3V an jedem
Schalter und ... tadada 3V statt 0V.
Jetzt brauche ich nur eine Lösung, wie beide Schalter auf 0V runter
kommen.
Sind die Endschalter nicht explizit zum parallel Schalten gedacht, so
würde ich auch davon Abstand nehmen.
Am Ausgang ist es oft ein Transistor, der einen Widerstand gegen Masse
schaltet. Der Widerstand ist - normalerweise - für optimalen Betrieb
dimensioniert. Natürlich als Einzelkämpfer.
Schaltest Du jetzt zwei "Ausgänge" parallel, so muss der Transistor den
doppelten Strom schalten, da jetzt zwei Widerstände Parallel liegen.
Daraus können sich zwei Probleme ergeben:
1. Der Transistor wird überlastet. (Hitzetod)
2. Der Transistor "schafft" es nicht. (Undefinierte Ausgangsspannung)
Kommst Du natürlich an die Teile ran und weist was Du tust, so könnte
das Entfernen eines Widerstandes helfen. Aber ohne Garantie.
Harald schrieb:> Passt leider nicht der Plan.
Den Bildern nach würde ich wetten, dass er passt. Lediglich die
Widerstände haben andere Werte. So hat R1 bei dir 180 Ohm statt 220 Ohm
und R2 hat bei dir 2,2 kOhm statt 10 kOhm.
Schnapp dir mal dein Multimeter und verifizier mal den Schaltplan und
stell ihn am besten nochmal hier rein. Ging bei mir leider nicht wegen
Handy.