Stepper Motor Test Fixture: 3 trinn
Stepper Motor Test Fixture: 3 trinn
Anonim
Image
Image
Kabling
Kabling

Jeg hadde liten eller ingen erfaring med å kjøre steppermotorer, så før jeg designet, skrev ut, monterte og programmerte den 'antikke' autokorrigerende analoge klokken (https://www.instructables.com/id/Antique-Auto-Correcting-Analog-Clock/) Ved hjelp av en trinnmotor bestemte jeg meg for å designe og teste programvaren ved hjelp av en mye enklere testarmatur. Hvis du, som jeg, har liten eller ingen erfaring med trinnmotorer, så forhåpentligvis vil denne korte Instructable med kildekoden hjelpe.

Testen krever følgende komponenter:

  • Et prototypebrett.
  • En Adafruit Feather ESP32 med hunnhoder.
  • Et ULN2003 -basert trinnkontrollerkort.
  • En 28BYJ-48 5vdc trinnmotor.
  • Noen stikkontakter fra mann til kvinne.
  • Et Adafruit 3.7vdc litiumbatteri.
  • En 3D -trykt indikatorhånd.

Stepper-kontrolleren, trinnmotoren og hoppetrådene jeg brukte, er inkludert i en 5-pakning som jeg kjøpte som et kit online (søk etter "TIMESETL 5pcs DC 5V Stepper Motor 28BYJ-48 + 5pcs ULN2003 Driver Board + 40pcs Female Female Jumper Wire Cable ").

Batteriet er valgfritt. Legg merke til batteriutgangene 3.7vdc, men trinnkontrollerkortet og trinnet er 5vdc. Testen fungerer bare på batteristrøm, selv ved lavere spenning.

Jeg har inkludert en video som viser trinnene som kreves for å laste ned programvaren til ESP32, koble ESP32 til trinnmotorkontrolleren og plugg inn trinnmotoren og batteriet.

Trinn 1: Kabling

Kabling
Kabling
Kabling
Kabling

Jeg brukte hode- / huntrådene som følger med i settet for å koble testarmaturet. Seks ledninger kreves og settes inn som følger:

  1. ESP32 pin 14 (hann) til trinnplate IN4 (hunn).
  2. ESP32 pin 32 (hann) til trinnplate IN3 (hunn).
  3. ESP32 pin 15 (hann) til trinnplate IN2 (hunn).
  4. ESP32 pin 33 (hann) til trinnplate IN1 (hunn).
  5. ESP32-pinne "GND" (hann) til trinnbrettet "-" (hunn).
  6. ESP32 -pinne "USB" (hann) for USB -drift ELLER "BAT" (hann) for batteridrift, til trinnkortet "+" (hunn).

Når ledningene er satt inn og dobbeltsjekket, kobler du trinnmotorkabelen til kontakten på trinnmotorens styrekort. Koblingen er tastet og vil bare passe én vei.

Til slutt, hvis du bruker et batteri, kobler du det til ESP32 -batterikontakten.

Trinn 2: Indikator

Indikator
Indikator

For en indikator på trinnmotoren, designet og 3D -trykte jeg en indikatorhånd "Hand.stl". Jeg trykte indikatorhånden på.15 mm laghøyde, 20% fylling uten støtter, og presset den deretter på trinnmotorakselen.

Som et alternativ kan tape, papp eller annet materiale brukes som en indikator.

Trinn 3: Programvare

Programvare
Programvare

Jeg skrev stepper -testprogramvaren i Arduino 1.8.5 -miljøet. Hvis du ikke allerede har gjort det, kan du laste ned Arduino -miljøet og nødvendige USB -drivere til datamaskinen og installere dem. Besøk også Adafruit -nettstedet for ytterligere Adafruit ESP32 -relatert programvare. Jeg syntes denne lenken var veldig nyttig: Adafruit ESP32 og Arduino Environment.

Med en USB -kabel koblet mellom datamaskinen og ESP32, og "Stepper.ino" lastet inn i Arduino -miljøet, laster du ned "Stepper.ino" til ESP32.

Når den er lastet ned, bør trinnet gå 6 grader en gang i sekundet.

Jeg skrev denne testprogramvaren av to grunner; først, for å lære å kjøre en trinnmotor, og for det andre å konvertere de 4096 trinnene per rotasjon av trinnmotoren til 60 sekunder og 6 graders "flått" for klokken.

Funksjonen "Step (nDirection)" driver trinnmotoren. Denne funksjonen opprettholder en lokal (statisk) heltallsvariabel "nPhase", som enten økes eller reduseres med én (hver gang funksjonen kalles), i henhold til tegnet på funksjonsargumentet nDirection. Denne variabelen er begrenset i området til 0 til 7, som, når den brukes sammen med etasjebryteren, driver motorfasene i henhold til produsentens spesifikasjoner for hvert trinn.

Funksjonen "Update ()" bestemmer når og hvor mange trinn som skal tas for hvert kryss for å jevnt fordele 60 flått per 360 grader rotasjon. Denne funksjonen trinnfører trinnmotoren enten 68 eller 69 trinn for hvert kryss. For eksempel, hvis funksjonen bare brukte 68 trinn per kryss, ville (68 trinn * 60 flått) = 4080 trinn ikke være nok trinn til å fullføre 360 grader rotasjon (husk at trinnmaskinen krever 4096 trinn for 360 grader rotasjon). Og hvis funksjonen brukte 69 trinn per kryss, ville (69 trinn * 60 flått) = 4140 være for mange trinn. Den enkle algoritmen jeg skrev fordeler 68 og 69 trinnflått jevnt gjennom 360 graders rotasjon, og kan bestemme hvilken rotasjonsretning som er raskest til ønsket andre telling (brukt i klokken).

Og det var slik jeg designet og testet programvaren for 'Antique' Auto Correcting Analog Clock.

Hvis du har forslag og / eller spørsmål, er du velkommen til å kommentere, så skal jeg gjøre mitt beste for å svare.

Anbefalt: