Innholdsfortegnelse:

Kjøring av en trinnmotor uten mikrokontroller: 7 trinn
Kjøring av en trinnmotor uten mikrokontroller: 7 trinn

Video: Kjøring av en trinnmotor uten mikrokontroller: 7 trinn

Video: Kjøring av en trinnmotor uten mikrokontroller: 7 trinn
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image

I denne instruksen vil jeg kjøre en 28-BYJ-48 trinnsmotor, med et UNL2003 darlington array-kort, noen ganger kalt x113647, uten mikrokontroller.

Den vil ha start/stopp, forover/bakover og hastighetskontroll.

Motoren er en unipolar trinnmotor med 2048 trinn per omdreining i fulltrinnsmodus. Databladet for motoren finnes på

De to enhetene kan kjøpes sammen fra flere leverandører. Jeg fikk min fra kjell.com

Ring det eller google det for å finne en leverandør i nærheten av deg.

Jeg vil først gå gjennom noen trinn og deler som trengs for å få det til å kjøre, og deretter legge til noen trinn og deler for litt mer kontroll.

Du bør advares om at delene jeg bruker, er de som jeg tilfeldigvis har i skattekisten, og ikke nødvendigvis de delene som er best egnet for formålet.

Du bør også bli advart om at dette er min første instruks, og at jeg er ganske ny innen elektronikk.

Legg til kommentarer hvis du tror jeg har gjort noe som jeg ikke burde, eller hvis du har forslag til forbedringer eller forslag til deler som passer bedre.

Trinn 1: Delliste

Hoveddelene
Hoveddelene

Delene som brukes til dette prosjektet er

  • Brødbrett
  • Trinnmotor 28byj-48
  • Darlington transistor array ULN2003 -kort (x113647)
  • 74HC595 skiftregister
  • 74HC393 binær ringteller
  • DS1809-100 Dallastat digitalt potensiometer
  • 74HC241 oktal buffer
  • 3 × taktile knapper
  • 3 × 10kΩ motstander
  • 2 × 0,1µF keramiske kondensatorer
  • 1 × 0,01 µF keramisk kondensator
  • Tilkoblingskabler
  • 5V strømforsyning

Trinn 2: Hoveddelene

Hoveddelene
Hoveddelene

74HC595 skiftregister

Motoren flyttes ved at de fire inngangspinnene på UNL2003 -kortet gjentatte ganger gir denne sekvensen:

1100-0110-0011-1001

Dette vil drive motoren i det som kalles fulltrinnsmodus. Mønsteret 1100 flyttes gjentatte ganger til høyre. Dette antyder et skiftregister. Måten et skiftregister fungerer på, i hver klokkesyklus, skifter bitene i registret ett sted til høyre, og bytter ut bitene lengst til venstre med verdien av inngangspinnen den gangen. Derfor bør den mates med to klokkesykluser på 1 og deretter to klokkesykluser på 0 for å generere mønsteret for dykking av motoren.

For å generere klokkesignalene trengs en oscillator som genererer en jevn serie pulser, fortrinnsvis en ren firkantbølge. Dette vil danne grunnlaget for skiftende patten av signaler til motoren.

For å generere "to sykluser med en og deretter to sykluser med 0", brukes flip-flops.

Jeg har et 74HC595 skiftregister. Dette er en veldig populær brikke, som er beskrevet i mange instruksjons- og Youtube -videoer.

Dataarket finnes på

En fin Instructable er 74HC595-Shift-Register-Demistified av bweaver6, 74HC595 -skiftregisteret fungerer slik at dataene i 8 -bitersregisteret forskyves til høyre for hver klokkesyklus og verdien i inngangspinnen i posisjonen lengst til venstre. Derfor bør den mates med to klokkesykluser på 1 og deretter to klokkesykluser på 0.

Dataene forskyves ved stigende kant av klokkepulsen. Henc flip-floppen skal veksle i den fallende kanten av klokken, så 74HC595 vil ha stabil datainngang ved den stigende klokkekanten.

74HC595 in kan kobles slik:

Pin 8 (GND) -> GND

Pin 16 (VCC) -> 5V Pin 14 (SER) -> Data i Pin 12 (RCLK) -> Klokkeinngang Pin 11 (SRCLK) -> Klokkeinngang Pin 13 (OE) -> GND Pin 10 (SRCRL) -> 5V Pins 15 og 1-3 sender ut mønsteret for å drive motoren.

Tilkobling av RCLK og SRCLK sikrer at chipdataregisteret alltid er synkronisert med utdataregisteret. Når du setter pinne 13 på bakken, blir innholdet i utgangsregisteret umiddelbart synlig for utgangspinnene (Q0 - Q7).

555 -timeren

For å generere klokkepulsen kan 555 timer -brikken brukes. Dette er også en veldig populær brikke, og er enda mer beskrevet og diskutert enn skiftregisteret. Wikipedia har en fin artikkel på

Dataarket er her:

Denne brikken kan blant annet generere firkantbølge klokkepuls. Eksterne motstander og kondensatorer brukes til å kontrollere frekvensen og driftssyklusen (on-fraction).

Når den er satt opp for å gjentatte ganger generere pulser, sies 555 -brikken å være i en stabil modus. Dette gjøres ved å koble den til som på bildet ovenfor. (bilde av jjbeard [Public domain], via Wikimedia Commons):

Pin 1 -> GND

Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 er output Pin 4 (reset) -> 5V Pin 5 -> 0.01µF -> GND Pin 6 -> 0.1µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Pin 8 -> 5V

Utgangen fra Pin 3 vil bli koblet til inngangsklokke -pinnene (Pin 11 og Pin 12) i 74HC595 -skiftregisteret.

Frekvensen til utgangssignalet (og dermed hastigheten til trinnmotoren) bestemmes av verdiene til motstanden R1 og R2, og verdien til kondensatoren C.

Syklusstiden T vil være ln (2) C (R1 + 2 R2) eller omtrent 0,7 C (R1 + 2 R2). Frekvensen er 1/T.

Driftssyklusen, brøkdelen av syklustiden som signalet er høyt, er (R1 + R2) / (R1 + 2R2). Driftssyklusen er ikke veldig viktig for dette prosjektet.

Jeg bruker 10kΩ, for både R1 og R2, og C = 0.1µF.

Dette gir en frekvens på omtrent 480Hz, og er nær den maksimale frekvensen jeg fant at trinnmotoren kan håndtere uten å stoppe.

For å generere det 1100 skiftede, gjentatte mønsteret fra 74HC595, bør pinne 14 (SER) holdes høy i to klokkesykluser, og deretter lav i to klokkesykluser gjentatte ganger. Det vil si at pinnen skal svinge med halve frekvensen av klokken.

74HC393 dobbel binær krusningsteller

74HC393 teller i binær, og det betyr også at den kan brukes til å dele pulsfrekvenser med potens på to, Databladet er her:

74HC393 er dobbel, den har en 4 -bits teller på hver side.

Ved den fallende kanten av klokkepulsen slår den første utgangspinnen av og på. Derfor vil utgangspinne en svinge med halv frekvens av inngangsklokken. Ved fallende kant av utgangspinne én, slår utgangspinne to av og på. Og så videre for alle de fire utgangspinnene. Når pin n slås av, bytter n+1.

Pin n+1 endres halvparten så ofte som pin n. Dette er binær telling. Telleren kan telle til 15 (alle fire bitene 1) før den starter på null igjen. Hvis den siste utgangspinnen til teller 1 er koblet som en klokke til teller 2, kan den telle til 255 (8 bits).

For å opprette en puls med halve frekvensen av inngangsklokken, trengs bare utgangspinne 1. Det vil si bare å telle fra null til en.

Så hvis tellingen gjøres med klokkepulsen fra 555, vil pinnen på 74HC393 -telleren som representerer bit 2, svinge med halv frekvens av klokken. Derfor kan dette kobles til SER -pinnen i skiftregisteret 74HC595, for å få dette til å generere ønsket mønster.

Kablingene til den binære telleren 74HC393 bør være:

Pin 1 (1CLK) -> 74HC595 Pin 11, 12 og 555 Pin 3

Pin 2 (1CLR) -> GND Pin 4 (1QB) -> 74HC595 Pin 14 Pin 7 (GND) -> GND Pin 14 (VCC) -> 5V Pin 13 (2CLK) -> GND (ikke brukt) Pin 12 (2CLR)) -> 5V (ikke brukt)

Trinn 3: Få det til å kjøre

Få det til å løpe
Få det til å løpe
Få det til å løpe
Få det til å løpe

Vi kan nå få motoren til å kjøre, hvis pinnene 0-3 på 74HC595 er koblet til henholdsvis pinnene 1-4 på ULN2003-kortet.

For øyeblikket må du erstatte 0,1µF kondensatoren på pin 6 i 555 -timeren med en 10µF. Dette vil gjøre klokken syklusen hundre ganger lengre, og man vil kunne se hva som skjer.

Lysdiodene på ULN2003 -kortene kan brukes til dette. Koble motoren fra ULN2003 -kortet. Koble pinnene 1 til 4 på kortet til utgangen QA-QD (pinner 7, 9, 10 og 11) på 74HC595. Koble - og + på ULN2003 -kortet til bakken og 5V. Hvis strømmen er slått på, bør du se ønsket mønster på lysdiodene.

Hvis du vil se hva som skjer i den binære telleren 74HC393, kobler du til pinnene 3-6 på den i stedet.

Hvis mønsteret virker riktig, slå av strømmen, bytt ut kondensatoren med 0,1µF igjen, koble inngangspinnene 1 - 4 på ULN2003 -kortet til utgangspinnene QA - QD på 74HC595, og koble til motoren igjen.

Med strømmen på bør motoren nå gå.

Trinn 4: Hastighetskontroll

Fartskontroll
Fartskontroll

Hastigheten til trinnmotoren styres av frekvensen for utgangen til 555 -timeren. Dette styres igjen av verdiene til motstandene R1 og R2 og kondensatoren C1 som er koblet til den. Ved å koble et 100kΩ potensiometer i serie med R2, kan frekvensen være mellom 480Hz og 63Hz. Trinnene pr. sekund av motoren, vil være halvparten av 555 timerfrekvensen.

Jeg brukte et DS1809-100 digitalt potensiometer, som er laget for bruk av trykknapper. Trykknapper som forbinder pinne 2 (UC) og pinne 7 (DC) til 5V gjør at motstanden øker/reduseres mellom RH (pin 1) eller RL (pin 4) terminaler og viskerpinnen 6 (RW). Hvis du holder en knapp inne i mer enn et sekund, blir knappen gjentatt automatisk.

Databladet finner du her:

Ledningen er slik:

Pin 1 (RH) ubrukt

Pin 2 (UC) -> taktil knapp 1 Pin 3 (STR) -> GND Pin 4 (RL) -> 555 Pin 2 Pin 5 -> GND Pin 6 (RW) -> 10kΩ -> 555 pin 7 Pin 7 (DC) -> taktil knapp 2 Pin 8 -> 5V

Kabling for taktil knapp 1:

Pin 1/2 -> DS1809 Pin 2

Pin 3/4 -> 5V

Ledningene for taktil knapp 2:

Pin 1/2 -> DS1809 Pin 7

Pin 3/4 -> 5V

Nå kan hastigheten reguleres.

Trinn 5: Start / Stopp

Start stopp
Start stopp

For å starte og stoppe trinnmotoren kan Pin 4 (Reset pin) på 555 timeren brukes. Hvis dette trekkes lavt, vil det ikke være noen utgangspulser fra pin 3.

En taktil knapp vil bli brukt til å veksle mellom start og stopp. Ved å trykke på knappen en gang, bør motoren startes, og ved å trykke på den igjen, bør den stoppe. For å få denne oppførselen er det nødvendig med en flip-flop. Men 74HC393 som allerede er der, kan også brukes. 74HC393 har to deler, og bare den ene halvdelen brukes som en frekvensdeler for klokkepulsen.

Siden den binære telleren faktisk bare er et sett med vekslende flip-flops i serie, kan den første flip-floppen til den andre delen brukes. Ved å koble til en taktil knapp slik at Pin 13 (2CLK) er lav når knappen trykkes, og høy hvis den ikke er det, vil Pin 12 veksle på hver lav. Koble pin 12 til pin 4 på 555, vil starte og stoppe utgangen, og dermed motoren.

Taktile knapper er litt vanskelige, fordi de er mekaniske. De kan "sprette", det vil si at de kan sende flere signaler for hvert trykk. Å koble en 0,1 µF kondensator over knappen hjelper deg med å unngå dette.

Så en taktil knapp (knapp 3 legges til, og tilkoblingen til pin 4 på 555 endres.

Kabling av knappen:

Pin 1/2 -> 10kΩ -> 5V

Pin 1/2 -> 0.1µF -> Pin Pin 3/4 -> 74HC393 Pin 13 (2CLK)

Følgende endringer gjøres på 555:

Pin 4 (Tilbakestill) -> 74HC393 Pin 11 (2QA)

Knapp 3 skal nå fungere som start/stopp -veksle.

Vær oppmerksom på at en motor stoppet på denne måten, fortsatt vil bruke strøm.

Trinn 6: Retningskontroll

Retningskontroll
Retningskontroll

For å kontrollere motorens retning, er det nødvendig med en annen trykknapp, og deretter en ny flip-flop. Imidlertid vil jeg jukse ved å bruke den neste flip-floppen på 74HC393, etter av/på-flip-floppen og av/på-knappen.

Når retningspinnen (Pin 2QA) går lavt, veksles neste pin (Pin 2QB). Derfor vil det å trykke flere ganger på trykknappen resultere i AV - PÅ FREM - AV - PÅ BAKGANG - AV - PÅ FRAM etc.

For å få motoren til å kjøre bakover, bør mønsteret som mates til ULN2003 reverseres. Det kan gjøres med et toveis skiftregister, men jeg har ikke et. 74HC595 er ikke toveis.

Imidlertid fant jeg ut at jeg kunne bruke min 74HC241 oktalbuffer. Denne bufferen har to 4 -biters deler, med separate OE -pinner (utgangsaktivering). Den første OE -pinnen styrer de fire første utgangspinnene, og den andre de fire siste utgangspinnene. Når OE er på utgangspinnene har samme verdi som de tilsvarende inngangspinnene, og når den er av, vil utgangspinnene være i høy impedans -tilstand, som om de ikke var tilkoblet. Videre er en av OE -pinnen aktiv lav, og den andre er aktiv høy, så når du kobler dem sammen, vil bare halvparten av bufferen være aktiv den gangen.

Så for den samme inngangen kan den ene halvdelen av bufferen drive motoren fremover, og den andre halvparten bakover. Hvilken halvdel som er aktiv, avhenger av verdien til OE -pinnene.

Dataarket for 74HC241 finnes på

Ledningen kan være slik:

Pin 1 (1OE) -> 74HC293 Pin 10 (2QB)

Pin 2 (1A1) -> 74HC595 Pin 15 Pin 3 (1Y4) -> ULN2003 Pin 1 Pin 4 (1A2) -> 74HC595 Pin 1 Pin 5 (1Y3) -> ULN2003 Pin 2 Pin 6 (1A3) -> 74HC595 Pin 2 Pin 7 (1Y2) -> ULN2003 Pin 3 Pin 8 (1A4) -> 74HC595 Pin 3 Pin 9 (1Y1) -> ULN2003 Pin 4 Pin 10 (GND) -> Ground Pin 11 (2A1) -> Pin 2 (1A1) Pin 12 (1Y4) -> Pin 9 (2Y1) Pin 13 (2A2) -> Pin 4 (1A2) Pin 14 (1Y3) -> Pin 7 (2Y2) Pin 15 (2A3) -> Pin 6 (1A3) Pin 16 (1Y2) -> Pin 5 (2Y3) Pin 17 (2A3) -> Pin 8 (1A4) Pin 18 (1Y2) -> Pin 3 (2Y4) Pin 19 (2OE) -> Pin 1 (1OE) Pin 20 (VCC) -> 5V

Nå bør ledningene fullføres bare ved å slå på med 5V. Pass på at strømforsyningen kan levere nok strøm til å drive både motoren og kretsene.

Trinn 7: Konklusjoner

Konklusjoner
Konklusjoner

Trinnmotoren kan styres uten mikrokontroller.

ICene som ble brukt her, var noen jeg hadde fra før. De fleste av dem er ikke optimale for dette, og flere alternativer kan brukes.

  • For å generere pulser er 555 timer -brikken en godbit, men det finnes flere alternativer, f.eks. Den som er beskrevet i denne instruksjonsboken.
  • For hastighetskontroll kan ethvert potensiometer brukes, ikke bare et digitalt. Hvis du har et 10kΩ potensiometer, i stedet for et 100kΩ, kan 10kΩ motstandene erstattes med 1KΩ, og 0,1 µF kondensatoren med en 1µF kondensator (del alle motstander og multipliser kondensatoren med samme nummer for å beholde timingen).
  • Ved å bruke et toveis skiftregister, f.eks. 74HC194 ville gjøre retningskontrollen enklere.
  • For knappestyring kan 74HC393 byttes ut med en flip-flop, f.eks. 74HC73. 555 kan også være koblet til å fungere som en veksle.

Anbefalt: