Stepmotor: Forskelle mellem versioner
Bar (diskussion | bidrag) m 1 version importeret |
Bar (diskussion | bidrag) |
||
| Linje 133: | Linje 133: | ||
Denne måde at styre på ligger også i STEP.JAL og STEP_PIN.JAL. Forskellen er at man angiver step_driver_inv til true inden man includer step.jal. | Denne måde at styre på ligger også i STEP.JAL og STEP_PIN.JAL. Forskellen er at man angiver step_driver_inv til true inden man includer step.jal. | ||
STEP.JAL er selve rutinen der laver steppene til højre og venstre, og hvis man vil tage 20 full-step til venstre, skriver man følgende: | STEP.JAL er selve rutinen der laver steppene til højre og venstre, og hvis man vil tage 20 full-step til venstre, skriver man følgende: | ||
<source lang="Jal"> | <source lang="Jal"> | ||
Nuværende version fra 22. okt. 2022, 11:54
Moduler til stepmotorer, der skal tilsluttes PIC-en skrevet i JAL
Der findes flere forskellige typer stepmotorer, men de to der typisk bruges i dag er den Bi-polare og den Uni-polare.
Det er den samme software til både den bi-polare stepmotor og den den uni-polare stepmotor og den ligger i en JAL-version pakket i en zip-fil
Der ligger også en C-version pakket i en zip-fil, den er godt nok ikke testet.
I C-versionen kan man ved hjælp af compilerdirectiver (#define) vælge hvilken type styring man bruger (beskrives længere nede på siden).
Software biblioteker til stepmotoren - til Arduino
Som standard kan man anvende Stepper[1] biblioteket, som er standard installeret sammen med Arduino softwaren.
Standard biblioteket til stepmotoren har det problem, at softwaren blokerer programafvikling, mens man stepper - dette kan være ret uheldigt i forbindelse med betjening og kommunikation, eller generelt det at få flere ting til at ske "samtidigt"[2] i softwaren.
Der er udviklet et bibliotek på github[3] - Unistep2.
Her på wikien er der forklaret et andet bibliotek til steppermotoren, som både understøtter samtidighed og accelleration.
Gennemgang af stepmotoren
En stepmotor er designet til at trække noget frem i små step - deraf navnet. Når man sætter strøm på en stepmotor vil den altså stå stille i en bestemt position. For at få den til at dreje skal man steppe den fremad.
Ankeret i en stepmotor består af en permanent magnet, der er forbundet til akslen på motoren.
Princippet i at få en stepmotor til at dreje rundt er, at man laver et magnetfelt ved hjælp af en spole, og det magnetfelt trækker ankeret hen i en position. Ved hjælp af en anden spole der sidder forskudt for den anden kan man trække ankeret hen i en ny position. Ved at vende strømmene i spolerne eller have flere spoler kan man trække ankeret videre, så motoren kommer til at dreje rundt.
Normal vil ankeret i en stepmotor indeholde mange magneter der ligger med et bestemt antal graders forskydning, så der kommer mange step på en omgang. Spolerne der trækker ankeret er så placeret så de trækker de tilsvarende step.
For at finde mere beskrivelse af stepmotorer henvises til www.cs.uiowa.edu/~jones/step/
Den bi-polare stepmotor
Softwaren kan styre motoren på to forskellige måder. Som full-step vil der altid være spænding på begge spoler, og dermed er det den måde der holder bedst styr på motoren. Faserne kommer som følger:
Med denne styringsmåde vil motoren i princippet have 4 step, men i praksis vil en omgang bestå af et multiplum af 4, f.x. 48 step.
Den anden styringsmåde er half-step, hvor der kommer dobbelt så mange step pr. omgang, men til gengæld er der tidspunkter hvor kun den ene vikling er tændt, hvilket gør at den heller ikke kan trække så meget, hvis man styrer den på denne måde. Faserne ser så ud som følger:
Med denne styringsmåde vil motoren i princippet have 8 step, men i praksis vil en omgang bestå af et multiplum af 8, f.x. 96 step.
Den elektriske styring til den bi-polære stepmotor
Rent elektrisk er man nødt til at kunne vende spændingen på begge spoler uafhængigt, og ligeledes slukke spændingen, hvis man vil arbejde i halfstep. Man kan godt få færdige kredse der kan styre en motor, men det er heller ikke så kompliceret at lave det ved hjælp af transistorer. Opstillingen kaldes en H-bro, ud fra den måde de 4 transistorer og spolen sidder på.
Diagrammet er ikke færdiggjort. De 4 transistorer BD241 og BD242 skal være transistorer der kan klare den strøm der skal løbe i spolen, mens de andre transistorer blot skal kunne styre dem. Modstandene skal beregnes ud fra disse strømme.
En anden ting der mangler er en god stor kondensator koblet over forsyningen, hvis motoren trækker bare en minimal strøm.
Det kan også være praktisk, at motoren kan forsynes af en separat spændings-kilde, som måske endda skal have en anden spændings-værdi. Det vil kræve lidt ændringer i modstandsberegningerne.
Når motoren styres gøres det ved at sætte et højt niveau ind på enten IN_L eller IN_R, så enten Q2 og Q5 tændes eller at Q3 og Q6 tændes, så spolen får spænding enten i den ene retning eller i den anden.
Det er vigtigt at motoren styres korrekt, når man anvender en H-bro. Hvis man tænder både for IN_L og IN_R vil der ske det at alle transistorerne tænder og dermed vil de kortslutte forsyningen.
Den uni-polare stepmotor
Den uni-polare stepmotor har 4 viklinger, der sidder sammen to og to på samme anker, så de kan polarisere ankeret hver sin vej. Typen kan kendes på at der kommer 6 ledninger ud af motoren. En skitseret illustration af motoren kan se ud som følger:
Det at der skal ligge to viklinger, hvor der i den bi-polare kun skal ligge en, gør at denne motortype normalt ikke kan trække så meget.
Softwaren kan styre motoren på to forskellige måder. Som full-step vil der altid være spænding på den ene af spolerne i begge spolesæt, og dermed er det den måde der holder bedst styr på motoren. Faserne kommer som følger:
Den anden styringsmåde er half-step, hvor der kommer dobbelt så mange step pr. omgang, men til gengæld er der tidspunkter hvor der kun er en vikling tændt. Faserne ser så ud som følger:
Den elektriske styring til den uni-polære stepmotor
Hvis man kan nøjes med at lave full-step, så kan man gøre det endnu enklere, ved at man kun styrer hvert viklingssæt med en udgang fra PIC'en, så en motor kan styres af kun to udgange.
Det tilsvarende kan laves til den bi-polare stepmotor, men der er ikke vist diagrammer til det.
Softwaren til at styre stepmotorerne med
Det er den samme software til både den bi-polare stepmotor og den den uni-polare stepmotor og den ligger pakket i en zip-fil.
Softwaren i modulet er lavet så det kun kan styre en motor. Hvis man ønsker at styre flere motorer fra den samme softvare, så må man lave en ekstra kopi af procedurer og variabler og omdøbe dem med f.x. et nummer på for at identificere hver motor.
Som omtalt ved den elektriske styring af motorerne, så er der to måder at styre stepmotorne på. Dette angives i en konstant i softwaren, enten ved at step_driver_all er true eller ved at step_driver_inv er true.
Styring af stepmotorerne med 4 udgange
Den ene hvor man styrer direkte på indgangene IN_R og IN_L. Det betyder at man skal bruge 4 ben på PIC-en, for at styre en motor, lige meget om man vil køre full-step eller half-step
Den måde at styre på ligger i ved at sætte step_driver_all til true.
STEP.JAL er selve rutinen der laver steppene til højre og venstre, og hvis man vil steppe til højre, først et full-step og derefter et half-step, skriver man følgende:
step_full_right
step_half_rightSTEP_PIN.JAL indeholder definitionerne på de ben på PIC-en man vil bruge til motoren
I STEP_DEMO.JAL ligger en simpel demonstration af stepmotoren, lavet så det fungerer med demo-boardet. Programmet kan steppe full til højre og venstre på to knapper, og ligeledes half-step til højre og venstre på to andre knapper.
Styring af stepmotorerne med 2 udgange
Denne måde at styre på ligger også i STEP.JAL og STEP_PIN.JAL. Forskellen er at man angiver step_driver_inv til true inden man includer step.jal.
STEP.JAL er selve rutinen der laver steppene til højre og venstre, og hvis man vil tage 20 full-step til venstre, skriver man følgende:
for 20 loop
inv_full_left
end loopSTEP_PIN.JAL indeholder definitionerne på de ben på PIC-en man vil bruge til motoren
Normalt vil man bruge denne måde at styre på, hvis man kun vil bruge 2 ben fra PIC-en, men det har så den begrænsning at man kun kan få den til at køre full-step.
I STEP_DEMO.JAL ligger en simpel demonstration af stepmotoren, lavet så det fungerer med demo-boardet. Programmet kan steppe full til højre og venstre på to knapper, da koden ikke kan half-steppe, så er der ikke lavet mulighed for det i demo-programmet.
| Moduler på Holstebro HTX | |||||||
|---|---|---|---|---|---|---|---|
| Tastaturer | Displays | AD-konvertering | I/O-ekspander | Serielt | Interface | Færdige | Andre |
| RC-tast - AD-tast - M_tast | ALCD - LCD | ADC_holst - ADC mcp3201 - mcp3208 |
input - output | Seriel_holst - Serial hardware Serial hw int cts - Serial software |
Stepmotor - RFID RGB - RF-link - Afstand |
Humidity - Analog temp - Dig temp Accelerometer |
Rotary Encoder |
Oversigt over Hardware Moduler på Holstebro HTX
| Tastaturer | Displays | AD-konvertering | I/O-ekspander | Serielt | Interface | Færdige | Andre |
|---|---|---|---|---|---|---|---|
| RC-tast - AD-tast - M_tast | ALCD - LCD | ADC_holst - ADC mcp3201 - mcp3208 |
input - output | Seriel_holst - Serial hardware Serial hw int cts - Serial software |
Stepmotor - RFID RGB - RF-link - Afstand |
Humidity - Analog temp - Dig temp Accelerometer |
Rotary Encoder |








