- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Pull-up, Pull-down, meinm Grauen

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Anzeige

    Powerstation Test
    '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?

  2. #12
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    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!

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    526
    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?

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    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?

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    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

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    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
    Code:
    // #define LIMIT_SWITCHES_ACTIVE_HIGH
    auskommentiert habe.
    Ich denke, das sollte die einfachste Lösung sein

    Dennoch Danke für all euere Ratschläge!

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    So, also den ursprünglichen Arduino haben wir auf den Endschalterpins scheinbar gegrillt. Die 3 Pins sind bei dem tot.
    Nachdem ich dann eben was länger mit dem Oszilloskop und nem neuen Arduino rumgespielt hatte, hab ichs dann geschafft, die Endschalter mit nem neu kompilierten GRBL so hin zu bekommen, dass es funktioniert - aufm Breadboard.
    Auch kann ich den Arduino problemlos an die CNC-Maschine anschließen und alles mit Universal-GCode-Sernder steuern und die Auslösung der Endschalter problemlos testen - solange ich die L298er nicht mit Strom versorge, also solange nur die Logik- nicht aber die Leistungsspannung anliegt.
    Sobald ich das 40V-Netzteil einschalte, meint der Arduino, dass die Endschalter aktiviert wurden.
    Woran könnte das liegen?

    Der Aufbau ist nun:

    Arduino - Schalter - Ground

    An Ground sind Arduino (der über USB mit Strom versorgt wird), das Logiknetzteil (ein kleines 4,75V Netzteil der Größenordnung Handyladegerät) und das Meanwell 40V/3A-Netzteil zusammengeführt.
    Sollte ich mal versuchen, nen Widerstandand zwischen Schalter und Masse zu klemmen? Oder nen Kondensator um eventuelle Schwingungen auszugleichen?

    - - - Aktualisiert - - -

    So, mein erster Versuch war nun ein Elko zwischen 5V und Ground - nahe an den Endschalterpins. Ergebnis: Es dauerte ne Weile (vermutlich bis der Elko sich geladen hatte), bis die Endschalter nun wieder automatisch (ohne Kontakt) ausgeführt wurden.

    - - - Aktualisiert - - -

    L297-Seite : Arduino-Seite
    Step : Pin2/3/4 (x/y/z)
    Direction : Pin 5/6/7 (x/y/z)
    Reset : liegt fest an 5V des Arduino
    Enable : Pin 8

    Das sind die Steuer-Pins des Arduinos zu den Schrittmotorkarten. Alle Treiberkarten teilen sich den Enable-Pin und die 5V-Spannung für den Reset-Eingang.
    Alles weitere siehe Bild:

    Bild hier  

    Das Problem ist, dass die Endschalter bei meiner Version Öffner sind, jedoch GRBL gerne Schließer hätte.
    Im Quellcode des GRBL kann man in der config.h die Zeile
    Code:
    // #define LIMIT_SWITCHES_ACTIVE_HIGH
    (Zeile 178 unter https://github.com/grbl/grbl/blob/master/config.h) auskommentieren, um statt Schließer Öffner zu verwenden.

    Der Code und das Kompilieren des Codes zu einer flashbaren Hex-Datei funktioniert soweit auch.
    Auch ein Test des Arduinos auf meinem Breadboard funktioniert fehlerfrei.
    Wenn der Arduino nun vollkommen an der CNC-Maschine angeschlossen ist, funktioniert alles wie gewünscht, solange lediglich USB und die Logikversorgung angeschlossen sind.
    Schalte ich nun das Leistungsnetzteil (im Bild rot) ein, geht der Arduino von einem ausgelösten Endschalter aus und die Achsen stoppen, Universal-GCode-Sender, den ich zum Steuern des Arduinos nutze, gibt dann aus:
    Code:
    ALARM: Hard limit. MPo
    Bild hier  

    Ich habe testweise einen 220µF-Kondensator zwischen Gnd und 5V geklemmt, augenscheinlich scheint sich die Zeit, bis sich der Limit-Schalter automatisch aktiviert, zu verlängern.

    Bis auf die fehlausgelösten Endschalter funktioniert alles wie es soll. In der kurzen Zeit, in der der Arduino verfährt, konnte ich auch durch manuelles Auslösen der Endschalter verifizieren, dass diese auch richtig auslösen. Nur machen sie das eben auch ungewollt und ohne Einfluß.

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Puh, also ich hab jetzt ne Lösung und ne Theorie.
    Die Kabel der Taster liegen unisoliert parallel zu den Stromleitungen der Motoren oder zu der Stromleitung des Netzteils.
    Auf der X- und Z-Achse konnte ich das Problem lösen, wenn ich etwa 18K-Ohm parallel zum Taster anbringe (Breadboard mit zwei 10k-Potis in Reihe drauf gekommen).
    An den Tastern der Y-Achse arbeite ich grade noch.
    Aber mich verwundert das Verhalten dennoch.

    //Edit: Bei der Y-Achse funktionert es ohne Trickserei. Also brauch ich 2x 18kOhm für die Schalter der X- und der Z-Achse.

    //Edit2: War ja klar, nachdem ich mir alles schön mit Widerständen zurecht gemacht hatte, hat irgendwas rumgezickt und es funktioniert wieder nicht.
    Also hab ich mein Widerstandkonstrukt entsorgt und nun Trimmpotis eingesetzt. Ich werd morgen mal schauen, ob ich es damit endlich gelöst bekomme...
    Geändert von Cysign (27.12.2013 um 02:50 Uhr)

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Hmmm...so ganz funktionierts leider immer noch nicht.
    Ich hab ein paar alte USB-Kabel geopfert, um die Kabel zu den Schaltern nun mit geschirmten Kabeln auszustatten.
    Komischerweise funktioniert das bei 3 von 6 Schaltern. Bei der Z-Achse funktionieren beide Schalter, auf der X-Achse keiner und auf der Y-Achse einer.

    Das komische ist nur, dass an jeder Achse beide Schalter in Reihe sind: Arduino-Schalter1-Schalter2-Masse
    Mit dem Multimeter komme ich auf einen Widerstand von 0,9-1,2Ohm pro Tasterweg.
    Auch wenn ich das Multimeter auf Durchgangsprüfung stelle, hört es auf zu piepen, sobald ich einen der beiden jeweils in Reihe geschalteten Taster drücke.
    Der Punkt ist aber: Auf der Y-Achse funktioniert lediglich der Schalter, welcher näher am Arduino liegt. Der weiter entferntere Schalter löst den Pin am Arduino nicht aus.
    Könnte das etwas mit der nicht vorhandenen Entprellung der Taster zu tun haben? Dass die im Arduino irgendwie ein Fehlverhalten auslösen?
    So langsam weiß ich nicht, was ich noch anstellen könnte...
    Oder sollte ich einfach die Abschirmung der Kabel von der Masse trennen?

    - - - Aktualisiert - - -

    Okay, das Austauschen der Kabel war nötig. Das Verbinden der Abschirmung mit Masse hingegen unnötig - ohne Masse an der Schirmung funktionierts endlich! Ich freu mich grade wie ein Keks - denn beim Testen der Taster hat UniversalGCode-Sender rumgezickt und die funktionierenden Taster haben mich grade vor ner Stunde Endschalterwiederdranbasteln gerettet

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Pull up
    Von franzl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 14.08.2005, 13:12
  2. Pull Up
    Von franzl im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 14.08.2005, 12:05
  3. Pull Up und Pull Down beschaltung ??
    Von Roberto im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 13.03.2005, 11:33
  4. PULL-UP / PULL-DOWN
    Von Andy27 im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 07.03.2005, 12:22
  5. Pull-Up?!
    Von Trabukh im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 12.06.2004, 15:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test