L293D mit Schrittmotor, Pi hängt sich auf

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)

  • Zum Halbschritt: Hab mich da etwas eingelesen, aber meistens steht dort, dass dadurch doppelt so viele Schritte gemacht werden würden, bei mir sind es aber komischerweise ja nur halb so viele (10 statt 20).

    kommt halt auf die Guckweise drauf an, oder anders gesagt rate mal warum bei dir nur halb so viele Schritte erfolgen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin moin beinand,

    wichtige Korrektur, falls Du die Library (das Modul) aus meinem Beitrag 1:1 umsetzt:

    ich musste für meinen Stepper beim Rückwärtsdrehen nicht die Anzahl der Steps für eine Umdrehung mit (-1) multipliziert übergeben, sondern diese Step-Anzahl vor der Negierung noch um eins erhöhen.
    Sonst verschiebt sich langsam aber sicher der Nullpunkt ;) ...

    Liegt wohl an der Schleife ...

    bye,
    -ds-

  • Hey,

    ich steh etwas auf dem Schlauch: Mein Motor hat doch laut Datenblatt nur 4 Möglichkeiten, deiner jedoch 8. Ich kann bei mir doch nur die, die im Datenblatt stehen angeben (bzw. gebe ich noch ähnliche Zwischenschritte wie du sie hast (1 1 0 1 z.B.) zuckt er nur noch rum und dreht sich gar nicht mehr). Daher kann ich es ja nicht so umsetzen..
    Bei den 4 Möglichkeiten, die ich angegeben habe, bewegt er sich bei zweien, bei den anderen beiden zuckt er auch nur leicht, tut aber nicht. Kann das an der Stromstärke liegen?

    LG
    mlt

  • Mahlzeit mlt,

    ja, ist durchaus möglich dass der Strom da eine Rolle spielt. Ich kann mich erinnern dass ich mal mit - ich weiss nicht mehr genau ob es Stepper oder Servos waren - auch so einen Effekt hatte, dass der Motor nur ab und zu einen kleinen Hüpfer machte und sonst nur so leise vor sich hin brummte.
    Letzteres war kein Zeichen von Zufriedenheit sondern der knurrende "Magen" des Motors, der mehr Power wollte ;) ...

    Hast Du denn mal eine solche Abfolge von acht Steps meines Motors an Deinen geschickt?
    Ich bin mir ziemlich sicher, dass dabei die Abfolge sehr wichtig ist.
    Nach einem Reset setzt der Arduino immer auf Step 7 auf und hangelt sich dann rückwärts bis 0.
    Ausserdem merkt er sich die letzte Bitfolge und geht von dieser aus entweder eins rauf oder runter.

    Ich meine, Du hast ja auch vier Drähte an deinem Motor (vielleicht sogar dieselben Farben?) ... also hast Du auch acht Möglichkeiten.
    Und - das ist jetzt aber reiner Spekulatius - möglicherweise liegt der Grund, dass Dein Motor nur 10 statt 20 Schritten macht der, dass Du immer einen Schritt überspringst :denker:

    Ich glaube dass es sich lohnen würde zu versuchen dieselben Bitfolgen in derselben Reihenfolge wie ich zu schicken. Möglicherweise kommt es Dir nur so vor, als täte er bei einem "Zwischenschritt" nichts - und in Wirklichkeit ist der Strom zu niedrig :s

    Hier sind sicherheitsalber noch mal die Bitfolgen:

    Spoiler anzeigen


    switch (thisStep) {
    case 0:
    digitalWrite(motor_pin_1, LOW); //BLU
    digitalWrite(motor_pin_2, LOW); //Pink
    digitalWrite(motor_pin_3, LOW); //Yellow
    digitalWrite(motor_pin_4, HIGH); //Orange
    break;
    case 1:
    digitalWrite(motor_pin_1, LOW); //BLU
    digitalWrite(motor_pin_2, LOW); //Pink
    digitalWrite(motor_pin_3, HIGH); //Yellow
    digitalWrite(motor_pin_4, HIGH); //Orange
    break;
    case 2:
    digitalWrite(motor_pin_1, LOW); //BLU
    digitalWrite(motor_pin_2, LOW); //Pink
    digitalWrite(motor_pin_3, HIGH); //Yellow
    digitalWrite(motor_pin_4, LOW); //Orange
    break;
    case 3:
    digitalWrite(motor_pin_1, LOW); //BLU
    digitalWrite(motor_pin_2, HIGH); //Pink
    digitalWrite(motor_pin_3, HIGH); //Yellow
    digitalWrite(motor_pin_4, LOW); //Orange
    break;
    case 4:
    digitalWrite(motor_pin_1, LOW); //BLU
    digitalWrite(motor_pin_2, HIGH); //Pink
    digitalWrite(motor_pin_3, LOW); //Yellow
    digitalWrite(motor_pin_4, LOW); //Orange
    break;
    case 5:
    digitalWrite(motor_pin_1, HIGH); //BLU
    digitalWrite(motor_pin_2, HIGH); //Pink
    digitalWrite(motor_pin_3, LOW); //Yellow
    digitalWrite(motor_pin_4, LOW); //Orange
    break;
    case 6:
    digitalWrite(motor_pin_1, HIGH); //BLU
    digitalWrite(motor_pin_2, LOW); //Pink
    digitalWrite(motor_pin_3, LOW); //Yellow
    digitalWrite(motor_pin_4, LOW); //Orange
    break;
    case 7:
    digitalWrite(motor_pin_1, HIGH); //BLU
    digitalWrite(motor_pin_2, LOW); //Pink
    digitalWrite(motor_pin_3, LOW); //Yellow
    digitalWrite(motor_pin_4, HIGH); //Orange
    break;

    Die Reihenfolge ist bei mir immer 7-6-5-4-3-2-1-0 ....

    Bin ja mal gespannt,
    -ds-

  • Hey,
    ich werd die Reihenfolge gleich mal ausprobieren, bei mir sind die Farben:
    Orange => Schwarz, Pink => Rot, Blau => Gelb, Gelb => Braun

    Falls es an der fehlenden Stromstärke (benötigt 400mA und 3V, ich habe 5V mit 4Ohm Widerstand angeschlossen), müsste ich wissen wie ich da noch mehr zu speisen kann, ohne den Pi zu grillen.

    Poste das Ergebnis dann gleich.

    //edit: genau die selbe Bewegung :mad_GREEN:

    Spoiler anzeigen

    Einmal editiert, zuletzt von mlt (13. April 2014 um 14:18)

  • Ich denke schon ... das ist ja ein Treiber-IC für Schrittmotoren.
    Allerdings reicht mir mein Sandkasten-Wissen in Sachen Elektronik nicht aus, um Dir das zu empfehlen ... das muss sich imho ein Experte ansehen.
    Solange es um meine eigenen Büchsen geht ist das was anderes ;) ...

    cu,
    -ds-

  • Hab die Schaltung jetzt mal ausprobiert, aber genau die selben Schritte wie davor, jedoch piepst er nun leise, als würde er sich aufladen (denn wenn das piepsen aufhört macht er einen Schritt).

  • Kommt mir irgendwie bekannt vor ... das Piepsen ...
    Ist der Motor evtl. in so einer Art "Positions-Halte-Modus" ??
    Oder warte ... gibt nicht mein RC-Buggy solche Töne von sich, wenn ich den Fahrtregler ganz langsam nur einen Tick aufdrehen :s ... ich glaub, das wars.
    Meine Folgerung wäre: keine ausreichende Strom-Versorgung - allerdings ohne Kalaschnikow ... äh Gewähr :) ..

    -ds-

  • Er piepst nur bei den Schritten, die er nicht macht, die zwei statt 4 macht er immernoch.
    Ich habe 6xAA (1,2V) Akkus zusätzlich angeschlossen, habe jetzt nicht genau gemessen wie viel Stromstärke die geben, aber an Spannung sollte min. 5V vorhanden sein (nicht alle voll), wobei der Motor nur 3V mit 400mA braucht.

  • na klar, aber dieser Motor scheint nicht all zu verbreitet sein (wahrscheinlich wegen den recht großen Schritten), alles was man so findet ist über diesen eBay Motor. Ich hab mir den auch mal bestellt, sobald er da ist versuche ich dessen Controller mal mit meinem Motor, vielleicht geht es damit.

  • Da ich endlich wieder mehr Zeit habe, möchte ich mich diesem Thema nochmal widmen, denn ich habe es erneut versucht:

    Diesen Aufbau habe ich benutzt (Batterie nun 6V):

    Das ist mein Code:

    Spoiler anzeigen

    Und so sieht das Ergebnis aus:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Die ersten 8 Steps macht er wie er sollte, danach tritt er einfach zurück und "hängt" (macht 2 Schritte und einen zurück).
    Ich bin mir sicher, dass es nicht am Code liegt, kann es etwas mit den technischen Details zu tun haben?

    Ich habe auch schon einen baugleichen Motor ausprobiert, daran liegt es auch nicht.

    LG
    mlt

    Einmal editiert, zuletzt von mlt (17. August 2014 um 15:50)


  • Die ersten 8 Steps macht er wie er sollte, danach tritt er einfach zurück und "hängt" (macht 2 Schritte und einen zurück).

    liest sich so als wenn nach wenigen Schritten die Batterie ? schwächelt ? bis zur Erholungspause.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • liest sich so als wenn nach wenigen Schritten die Batterie ? schwächelt ? bis zur Erholungspause.

    Ich habe nochmal ein wenig ausprobiert und es klappt immer nachdem ich beide Ströme (Batterien und Pi) an den L293D abgestellt habe, danach erneut anschließe und das Programm starte. Nach den 8-9 Steps muss ich wieder trennen und kann es dann erneut starten (starte ich ohne trennen neu, zuckt er nur weiter wie im Video zu sehen).
    Kann es damit zu tun haben, dass sich zu viel Strom "ansammelt", so sieht es für mich als Laien zumindest aus.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!