Motortreiber SH-20403 an Arduino

  • Hallo,
    ich habe hier 2 Motortreiber SH-20403, die ich noch aus dem Umbau meines Coletechlasers übrig habe und benötige einen Tipp. Die Anschlüsse für den Motor und die Spannungsversorgung sind klar, jetzt geht es um die Ansteuerung, bzw. den Anschluß an ein Arduino Rampsboard. An der Endstufe habe ich die Eingänge Com, Pulse, Dir. Um Endstufen an das Rampsboard anschließen zu können, habe ich mir kleine Adapterplatinen (Poludapter) besorgt. Am Poludapter sind 4 Anschlüsse vorhanden, nämlich GND, ENABLE, STEP und DIR. STEP schließe ich an Pulse der Endsufe an und DIR an DIR der Endstufe. Jetzt kommt der eigentliche Punkt. Kann ich COM mit ENABLE verbinden? Ich möchte ungern einfach Testen und dann Rauchwolken sehen.
    Vielleicht hat hier jemand eine Idee und kann mir helfen.


    Gruß und Danke


    Klaus


    PS: Die Endstufen möchte ich für den Antrieb von 2 Motoren an einem 3D-Drucker nutzen. Die vorhandenen SH-20403 machen einen solideren Eindruck als die Pololutreiber.

  • Hallo Klaus,


    COM mit Enable solltest Du nicht verbinden!
    COM steht an der Motorsteuerung für gemeinsame 5V-Versorgung. Da sollten also +5V angeschlossen werden.
    Du kannst ja mal versuchen, Dir und Pulse direkt vom Arduino-Board mit der Motorsteurung zu verbinden.
    Wobei ich befüchte, dass die Ausgänge des Mikrokontrollers nicht ausreichend Strom für die Optokoppler in der Motorsteuerung liefern können (oder wenn, dann sehr grenzwertig).
    Sauber wäre die Lösung:
    fürKlaus.jpg



    LG
    Diemo

  • Ich hab jetzt nicht mehr ganz im Kopf ob die Allegro Treiber (auf den Pololus) Enable auf HIGH oder LOW gezogen
    brauchen um die Motoren einzuschalten.


    Unabhängig davon hättest du bei Verindung von ENABLE und COM bei HIGH Pegel auf ENABLE in jedem Fall einen KURZSCHLUSS. :D


    Würd ich also sein lassen ... :whistling:


    Oh, ich seh gerade, DIEMO war schneller...

    Gruß,

    Christian


    „Der größte Feind des Wissens ist nicht Unwissenheit, sondern die Illusion, wissend zu sein.“
    Stephen Hawking

  • Vielen Dank an Euch Beiden. Gut das ich gefragt habe. Die Schaltung von Diemo bekomme ich, bzw. ein Freund, hin.


    Gruß und nochmals Danke


    Klaus

  • Diemo, kennst du die Treiber?


    Ist der "FREE" Einganr evtl. das Pendant zum ENABLE Eingang der Allegros?

    Gruß,

    Christian


    „Der größte Feind des Wissens ist nicht Unwissenheit, sondern die Illusion, wissend zu sein.“
    Stephen Hawking

  • Was würde das das denn jetzt für den Anschluß an den Arduino bedeuten? Dir und Pulse nach Diemos Schaltplan und Enable an Free und die Endstufe würde laufen?
    Das wäre dann schon cool. :) Ich bestelle jetzt mal die Wiederstände und die Transistoren und fräse mir zwei kleine Platinien. Es wäre zu schade die beiden Motortreiber gammeln zu lassen.


    Gruß und Danke


    Klaus

  • Jepp, wenn du für den "FREE" vorsichtshalber auch ne Transistorschaltung baust, sollte das genau so gehen.


    Leider lässt sich das Datenblatt zu den Steuersignalpegeln nicht wirklich aus.


    Dem Schaltbild nach scheinen die Eingänge aber alle "active LOW" zu sein.
    D.H. gegen Masse gezogen = signal. (Dem Optokoppler wegen....)

    Gruß,

    Christian


    „Der größte Feind des Wissens ist nicht Unwissenheit, sondern die Illusion, wissend zu sein.“
    Stephen Hawking

    2 Mal editiert, zuletzt von ichbinsnur ()

  • Zitat

    Jepp, wenn du für den "FREE" vorsichtshalber auch ne Transistorschaltung baust, sollte das genau so gehen.


    Leider lässt sich das Datenblatt zu den Steuersignalpegeln nicht wirklich aus.


    der "Free oder Enable" - Eingang der Motorsteuerung muss nicht zwingend belegt werden. Wenn der stromlos ist, ist die Endstufe betriebsbereit. Wenn 5V anliegen (zwischen COM und Free(Enable)) wird die Motorsteuerung deaktiviert.
    (so isses zumindest bei allen anderen Motorsteuerungen aus China, die ich kenne)


    LG
    Diemo

  • Kenn ich nur als Masse,GND etc. z.B. hier an einem Netzteilmodul: +12V,-12V,COM


    Deswegen bin ich zuerst auch drauf rein gefallen ....


    ABER: Man muss halt immer einmal mehr hinsehen.


    COM wie common muss halt nicht GND bedeuten....

    Gruß,

    Christian


    „Der größte Feind des Wissens ist nicht Unwissenheit, sondern die Illusion, wissend zu sein.“
    Stephen Hawking

  • Hallo,


    mein Freund baut mir nun eine Platine mit 6 der kleinen Schaltungen, dann ist das alles sauber aufgebaut. Ich berichte dann vom Ergebnis.


    Gruß Klaus

  • Hi,
    Ich habe damals bei meinen ersten Test's Pololu Treiber auf das Ramps Board gesteckt. Funktionierte.


    Bei deinem Motorteibern hier würde ich fast vermuten das der Atmega die Optokoppler direkt treiben kann.
    Kommt natürlich auf den genauen Typ des Optos an der dort verbaut ist.


    Mit den Transistoren ist es natürlich der sicherere Weg.
    Ein 74LS244 würde z.b auch gehen, die nehme ich immer für sowas, unter anderem weil ich jede Menge davon im meiner Bastelkiste habe.

    Dem Schaltbild nach scheinen die Eingänge aber alle "active LOW" zu sein.


    D.H. gegen Masse gezogen = signal. (Dem Optokoppler wegen....)

    Würde dann fast zu einer Emitterschaltung tendieren, das würde die Phasendrehung elimineren.
    Und vor allem den Pin sauber auf LOW ziehen.


    Die Phasendrehung wäre natürlich auch in der Software zu kompensieren.
    Aber wenn es wirklich so ist, das der Schritttreiber ein LOW braucht, weil die Led im Opto mit dem anderem Bein über einen R auf 5V hängt wird die oben vorgeschlagene Schaltung (Kollektorschaltung) nicht funktionieren.


    Will hier nicht "klugscheißen" ;) , ist meine Meinung zu dieser Situation.


    Grüße Rudi.

  • Will hier nicht "klugscheißen" ;) , ist meine Meinung zu dieser Situation.


    Hast wohl recht Rudi.


    Am Besten nimmt dr das Schaltbild (Datenblatt) zu seinem Kumpel mit.
    Der sollte dann das richtige bauen können.


    Ich vermute allerdings auch das der INO durchaus in der Lage sein dürfte die Optos zu treiben.
    Ich glaube kaum das die mehr als 20mA ziehen.

    Gruß,

    Christian


    „Der größte Feind des Wissens ist nicht Unwissenheit, sondern die Illusion, wissend zu sein.“
    Stephen Hawking

  • Ich vermute allerdings auch das der INO durchaus in der Lage sein dürfte die Optos zu treiben.


    Ich glaube kaum das die mehr als 20mA ziehen.

    Für einen Pin sehe ich das auch so, nur er braucht pro Achse 3 Ausgänge.
    Dann zieht das ganze nur die diese Pin's im ungüstigensten Fall 120mA.
    Man müßte in's Datenblatt schauen was der Atmega insgesamt max.Treiben kann.


    Schön finde ich sowas nicht.
    Bei meinem Eigenbau geht kein einziger Port Pin direkt raus.
    Habe dort Puffer IC's drin, der Controller muß den Strom nicht selber treiben.
    Ich nutze einen ARM der mit 3.3V arbeitet, und grundsätzlich weniger Strom treiben kann als ein Atmega.


    Von daher geht es nicht ohne Pegelwandler und Treiber.
    Und es ist auch irgendwo eine Sicherheit, wenn ein Ausgang mal kurzgeschlossen oder auch sonst auf einen verbotenen Pegel gelegt wird.
    Dann macht nur der Treiber die Biege, der Controller bleibt intakt.

  • Also produktiv würde ich das ganze auch mit Treiber(Puffer) IC's ausstatten.
    Oder halt ne Transistorschaltung wie vorgeschlagen.


    Aber zum Testen dürfte der Ino das wohl wegstecken.
    Übrigens sind 3x 20mA nicht 60mA ? ?(


    Geradte dem Datenblatt für den 328P entnommen :


    32.1. Absolute Maximum Ratings


    DC Current per I/O Pin 40.0mA
    DC Current VCC and GND Pins 200.0mA


    edit :


    Das Ramps läüft ja auf dem Arduino Mega mit dem ATmega2560
    Dort sind die gleichen Maximalwerte im Datenblatt angegeben.

    Gruß,

    Christian


    „Der größte Feind des Wissens ist nicht Unwissenheit, sondern die Illusion, wissend zu sein.“
    Stephen Hawking

    Einmal editiert, zuletzt von ichbinsnur ()

  • Hallo,


    könnt ihr mir das mal aufzeichnen was ihr meint? Das sind böhmische Dörfer für mich und Diemo wird sicher auch noch etwas dazu sagen können. Vielen Dank an euch.


    Gruß Klaus