Inhoudsopgave:

Stappenmotor testarmatuur - Ajarnpa
Stappenmotor testarmatuur - Ajarnpa

Video: Stappenmotor testarmatuur - Ajarnpa

Video: Stappenmotor testarmatuur - Ajarnpa
Video: Как работает шаговый двигатель? 2024, November
Anonim
Image
Image
Bedrading
Bedrading

Ik had weinig tot geen ervaring met het besturen van stappenmotoren, dus voordat ik de 'Antique' Auto Correcting Analog Clock (https://www.instructables.com/id/Antique-Auto-Correcting-Analog-Clock/) ontwierp, printte, assembleerde en programmeerde) met behulp van een stappenmotor besloot ik de software te ontwerpen en te testen met een veel eenvoudiger testopstelling. Als jij, net als ik, weinig tot geen ervaring hebt met stappenmotoren, dan zal deze korte Instructable met broncode hopelijk helpen.

De testopstelling vereist de volgende componenten:

  • Een prototypebord.
  • Een Adafruit Feather ESP32 met vrouwelijke headers.
  • Een op ULN2003 gebaseerde stappencontrollerkaart.
  • Een 28BYJ-48 5vdc stappenmotor.
  • Sommige mannelijke naar vrouwelijke jumperdraden.
  • Een Adafruit 3.7vdc lithiumbatterij.
  • Een 3D-geprinte indicatorhand.

De stappencontroller, stappenmotor en jumperdraden die ik heb gebruikt, zijn opgenomen in een pakket van 5 die ik online als een kit heb gekocht (zoek naar "TIMESETL 5pcs DC 5V Stepper Motor 28BYJ-48 + 5pcs ULN2003 Driver Board + 40pcs Male Female Jumper Wire Cable ").

De batterij is optioneel. Let op de batterij uitgangen 3.7vdc, maar de stepper controller board en stepper zijn 5vdc. De testopstelling werkt alleen op batterijvoeding, zelfs bij de lagere spanning.

Ik heb een video bijgevoegd die de stappen toont die nodig zijn om de software naar de ESP32 te downloaden, de ESP32 aan te sluiten op de stappenmotorcontroller en de stappenmotor en batterij aan te sluiten.

Stap 1: bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Ik heb de mannelijke / vrouwelijke jumperdraden gebruikt die in de set zijn meegeleverd om de testopstelling te bedraden. Er zijn zes draden nodig, die als volgt worden ingevoegd:

  1. ESP32 pin 14 (mannelijk) naar stepper board pin IN4 (vrouwelijk).
  2. ESP32 pin 32 (mannelijk) naar stepper board pin IN3 (vrouwelijk).
  3. ESP32 pin 15 (mannelijk) naar stepper board pin IN2 (vrouwelijk).
  4. ESP32 pin 33 (mannelijk) naar stepper board pin IN1 (vrouwelijk).
  5. ESP32 pin "GND" (mannelijk) naar de stepper board pin "-" (vrouwelijk).
  6. ESP32 pin "USB" (mannelijk) voor USB-gebruik OF "BAT" (mannelijk) voor batterijvoeding, naar de stepper board-pin "+" (vrouwelijk).

Zodra de draden zijn geplaatst en dubbel zijn gecontroleerd, steekt u de stappenmotorkabel in de connector van de stappenmotorcontrollerkaart. De connector is voorzien van een sleutel en past maar op één manier.

Als u ten slotte een batterij gebruikt, sluit u deze aan op de ESP32-batterijconnector.

Stap 2: Indicator

Indicator
Indicator

Voor een indicator op de stappenmotor heb ik een indicatorhand "Hand.stl" ontworpen en 3D geprint. Ik drukte de indicatorhand af op een laaghoogte van 0,15 mm, 20% vulling zonder steunen, en drukte hem vervolgens op de as van de stappenmotor.

Als alternatief kan tape, karton of ander materiaal als indicator worden gebruikt.

Stap 3: Software

Software
Software

Ik schreef de stepper-testsoftware in de Arduino 1.8.5-omgeving. Als je dat nog niet hebt gedaan, download dan de Arduino-omgeving en de benodigde USB-stuurprogramma's op je computer en installeer ze. Bezoek ook de Adafruit-website voor aanvullende Adafruit ESP32-gerelateerde software. Ik vond deze link erg nuttig: Adafruit ESP32 en de Arduino-omgeving.

Met een USB-kabel aangesloten tussen uw computer en de ESP32, en "Stepper.ino" geladen in de Arduino-omgeving, download "Stepper.ino" naar de ESP32.

Na het downloaden moet de stepper eenmaal per seconde 6 graden stappen.

Ik heb deze testsoftware om twee redenen geschreven; ten eerste om te leren hoe je een stappenmotor aanstuurt, en ten tweede om de 4096 stappen per omwenteling van de stappenmotor om te zetten in 60 één seconde 6 graden "tikken" voor de klok.

De functie "Step(nDirection)" stuurt de stappenmotor aan. Deze functie handhaaft een lokale (statische) integer-variabele "nPhase", die met één wordt verhoogd of verlaagd (elke keer dat de functie wordt aangeroepen), volgens het teken van het functieargument nDirection. Deze variabele is beperkt in het bereik van 0 tot en met 7, die, indien gebruikt in combinatie met de behuizingsschakelaar, de motorfasen aanstuurt in overeenstemming met de specificaties van de fabrikant voor elke stap.

De functie "Update()" bepaalt wanneer en hoeveel stappen er voor elke tick moeten worden genomen om 60 ticks gelijkmatig te verdelen per 360 graden rotatie. Deze functie zet de stappenmotor 68 of 69 stappen voor elke tik. Als de functie bijvoorbeeld slechts 68 stappen per vinkje gebruikt, dan zijn (68 stappen * 60 ticks) = 4080 stappen niet genoeg stappen om de 360 graden rotatie te voltooien (onthoud dat de stepper 4096 stappen nodig heeft voor 360 graden rotatie). En als de functie 69 stappen per vinkje zou gebruiken, dan zou (69 stappen * 60 ticks) = 4140 te veel stappen zijn. Het eenvoudige algoritme dat ik heb geschreven, verdeelt 68 en 69 staptikken gelijkmatig over de 360 graden rotatie en kan bepalen welke rotatierichting het snelst is tot de gewenste tweede telling (gebruikt in de klok).

En zo heb ik de software voor 'Antique' Auto Correcting Analog Clock ontworpen en getest.

Als u suggesties en/of vragen heeft, aarzel dan niet om commentaar te geven en ik zal mijn best doen om te antwoorden.

Aanbevolen: