Wenn ein Pegel von 0,11V nicht als sauberes 0 erkannt wird, dann ist dieses ominöse "GBRL" Mist.
Wenn ein Pegel von 0,11V nicht als sauberes 0 erkannt wird, dann ist dieses ominöse "GBRL" Mist.
Grüße
Thomas
'ominös' ist es wohl eher nicht. Und ja, ich muss zugeben, dass ich die Logik hinter der Schließer-only-Idee nicht gut finde, zumal Öffner an der Stelle mehr Sinn machen.
Aber egal, das Problem hab ich jetzt nunmal und ich möchte es lösen.
Dass der Pegel von 0,11V nicht als Ground erkannt wird, wird - wie bereits erwähnt - wohl am internen Pull-Up liegen. Aber wie das genau verschaltet ist, weiß ich um ehrlich zu sein nicht.
Die Software zu ändern bedeutet vermutlich enorm viel Aufwand...da ich mich in den Quellcode einlesen, ihn verstehen, verändern und neu kompilieren müsste.
Meine Idee wäre, die 5V durch einen geeigneten Widerstand so weit herabzusetzen, dass man problemlos zwischen Pin und Ground einen sehr geringen Widerstand einsetzen kann, welcher den Pegel, trotz internem Pullup-Widerstand des Arduinos, runter zieht.
Macht das Sinn? Und welche Werte sollte ich in Erwähgung ziehen?
Hallo!
Ich würde dir empfehlen mehr messen und weniger spekulieren. Beispielweise, wenn du den Pin mit GND per Strommessgerät verbindest, kannst du bei bekannter Spannung 5 V den "pull-up" ziemlich genau ermitteln.
Ich denke, das dein kompliziertes o.g. Plan sinnlos ist.![]()
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Hast du denn allereinfachsten Test schon gemacht, den PIN direkt mit GND zu verbinden? Löst er dann korrekt aus? Haben der Arduino und die Schalter definitiv gemeinsame Masse? Wenn beides ja, dann wie oben geschrieben, den Strom messen, der über GND fließt, und hier posten.
Was würden denn neue Schalter kosten? Und was kostet es, wenn die Endabschlatung nicht zuverlässig ist und die Maschine durchdreht?
Wenn ich den einen der drei Pins (X-, Y-, Z-Achse) direkt mit Gnd verbinde, funktioniert alles, wie es soll.
Die Masse des Leistungsnetzteils, des Logiknetzteils und des Arduinos (der via USB mit Strom versorgt wird), ist zusammengeführt.
@Picture: Danke für den Vorschlag. Ich werde nacher mal messen, wie viel Strom fließt. Und wie wäre die weitere Vorgehensweise?
Die Größe des internen Pullups lässt sich mit den bisherigen Angaben bereits ermitteln.
Bei einer Last von 0,3kOhm hast du eine Spannung von 0,11V gemessen. Es fließen also 0,11V/300Ohm=0,000367A
Am Pullup-Widerstand fallen 5V-0,11V=4,89V ab. Da durch ihn derselbe Strom fließt, ergibt sich ein Widerstandswert von 4,89V/0,000367A=13,3kOhm.
Auf dem kleinen Arduino ist ein ATmega328 verbaut, laut Datenblatt haben die integrierten Pullup-Widerstände zwischen 20 und 50kOhm.
Grüße, Bernhard
So, heute hab ich endlich mal wieder Zeit um mich weiter darum zu kümmern.
Ich habe gestern kurzerhand nen Git-Account gemacht und in der GRBL-Community nachgefragt: https://github.com/grbl/grbl/issues/307
Die Programmierer haben diesen Fall schon vorgesehen - allerdings muss ich mir GRBL gleich dann selbst neu kompilieren, nachdem ich die Codezeile
auskommentiert habe.Code:// #define LIMIT_SWITCHES_ACTIVE_HIGH
Ich denke, das sollte die einfachste Lösung sein
Dennoch Danke für all euere Ratschläge!
Lesezeichen