Innholdsfortegnelse:
- Trinn 1: StepDriver Library
- Trinn 2: Globale variabler
- Trinn 3: Funksjoner - Angi driverpinnene
- Trinn 4: Funksjoner - grunnleggende funksjoner for sjåføren
- Trinn 5: Funksjoner - Motor trinninnstilling
- Trinn 6: Funksjoner - Innstilling av motortrinnmodus
- Trinn 7: Funksjoner - Innstilling av grensebryterne
- Trinn 8: Funksjoner - Lesing av grensebrytere
- Trinn 9: Funksjoner - Bevegelsesoppsett
- Trinn 10: Funksjoner - Bevegelsesfunksjon
- Trinn 11: Funksjoner - Bevegelsesfunksjon - Variabler
- Trinn 12: Funksjoner - Bevegelsesfunksjon - Akselerasjon
- Trinn 13: Funksjoner - Bevegelsesfunksjon - Kontinuerlig hastighet
- Trinn 14: Funksjoner - Bevegelsesfunksjon - Retardasjon
- Trinn 15: Funksjoner - Bevegelsesfunksjon - Kontinuerlig hastighet
- Trinn 16: Funksjoner - Flyttefunksjon - Flytt svinger
- Trinn 17: Bevegelseskart - Posisjonshastighet
- Trinn 18: Bevegelseskart - Posisjon Vs. Posisjon
- Trinn 19: Bevegelseskart - Velocity vs. Øyeblikk
Video: Arduino: Precision Lib for trinnmotor: 19 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
I dag vil jeg vise deg et bibliotek for en motor med full trinn med grensebrytere og motorbevegelse med akselerasjon og mikrotrinn. Denne Lib, som fungerer på både Arduino Uno og Arduino Mega, lar deg flytte motorene ikke bare basert på antall trinn, men også på millimeter. Og det er ganske nøyaktig også.
Et viktig trekk ved dette biblioteket er at det lar deg bygge din egen CNC -maskin, som ikke nødvendigvis bare er X, Y, men også en seksjonsbryter, for eksempel fordi den ikke er en klar GRBL, men heller programmeringen som lar deg lage den ideelle maskinen for deg.
Imidlertid er følgende uttalelse en viktig detalj! Denne videoen er bare for de som allerede er vant til å programmere. Hvis du ikke er kjent med Arduino -programmering, bør du først se andre mer introduksjonsvideoer på kanalen min. Dette er fordi jeg diskuterer et avansert emne i denne spesifikke videoen, og forklarer mer detaljert Lib som ble brukt i videoen: Step Motor with Acceleration and End of Stroke.
Trinn 1: StepDriver Library
Dette biblioteket dekker de tre vanligste driver -typene på markedet: A4988, DRV8825 og TB6600. Den konfigurerer pinnene til driverne, slik at de kan utføre tilbakestillingen og plasseringen i hvilemodus, samt aktivere og deaktivere motorutgangene som virker på aktiveringsnålen. Det angir også inngangene til mikrotrinnpinnene til driveren, og begrenser brytere og deres aktiveringsnivå (høyt eller lavt). Den har også motorbevegelseskode med kontinuerlig akselerasjon i mm / s², maksimal hastighet i mm / s og minimumshastighet i mm / s.
For de som så på del 1 og 2 av videoen Step Motor with Acceleration and End of Stroke, last ned dette nye biblioteket som er tilgjengelig i dag, fordi jeg gjorde noen endringer i den første filen for å lette bruken.
Trinn 2: Globale variabler
Jeg viser nøyaktig hva hver av de globale variablene er til for.
Trinn 3: Funksjoner - Angi driverpinnene
Her beskriver jeg noen metoder.
Jeg satte Pinout -innstillingen og Arduino -pinnene som utgang.
Trinn 4: Funksjoner - grunnleggende funksjoner for sjåføren
I denne delen arbeider vi med konfigurasjonen av driveren og dens grunnleggende funksjoner.
Trinn 5: Funksjoner - Motor trinninnstilling
I dette trinnet i koden konfigurerer vi mengden trinn per millimeter som motoren må utføre.
Trinn 6: Funksjoner - Innstilling av motortrinnmodus
Denne tabellen viser innstillingene for motortrinnmodus. Her er noen eksempler.
Trinn 7: Funksjoner - Innstilling av grensebryterne
Her må jeg lese hele og boolske verdier. Det er nødvendig å angi om den aktive tasten er opp eller ned, mens du angir maks- og minimumsgrensen for endepinne.
Trinn 8: Funksjoner - Lesing av grensebrytere
Denne delen er forskjellig fra den i Lib som jeg gjorde tilgjengelig forrige uke. Hvorfor endret jeg det? Vel, jeg opprettet eRead for å erstatte noen andre. Her vil eRead lese LVL, digitalRead (pin), og vil returnere TRUE. Alt dette må utføres på høyden. Følgende arbeid med den aktive nøkkelen vil være på lavt nivå. Jeg vil bruke den her til å vise deg "Sannhet" -tabellen.
I bildet av koden plasserte jeg et diagram som vil hjelpe i forståelsen av at jeg i denne delen av kildekoden beveger meg mot stigende og ennå ikke har nådd slutten av kurs -tasten.
Nå, i dette bildet os kode bool DRV8825, viser jeg motoren som fremdeles beveger seg i den voksende retningen. Maksimal grensebryter er imidlertid aktivert. Mekanismen må da stoppe bevegelsen.
Til slutt viser jeg den samme bevegelsen, men i motsatt retning.
Her har du allerede sluttkursbryteren aktivert.
Trinn 9: Funksjoner - Bevegelsesoppsett
Hovedverktøyet til motionConfig -metoden er å konvertere millimeter per sekund (en måling som brukes i CNC -maskiner) til trinn for å møte kontrolleren til en trinnmotor. Det er derfor i denne delen jeg instanser variablene for å forstå trinnene og ikke millimeterne.
Trinn 10: Funksjoner - Bevegelsesfunksjon
I dette trinnet behandler vi kommandoen som beveger et trinn i ønsket retning i en periode i mikrosekunder. Vi stiller også inn førerens retningspinne, forsinkelsestid og retning for grensebrytere.
Trinn 11: Funksjoner - Bevegelsesfunksjon - Variabler
I denne delen konfigurerer vi alle variablene som inkluderer perioder med maksimal og minimumshastighet, banens avstand og trinn som er nødvendige for å avbryte banen, blant andre.
Trinn 12: Funksjoner - Bevegelsesfunksjon - Akselerasjon
Her presenterer jeg noen detaljer om hvordan vi kom frem til akselerasjonsdataene, som ble beregnet gjennom Torricellis ligning, siden dette tar hensyn til mellomrommene for å arbeide akselerasjonen og ikke tiden. Men det er viktig her å forstå at hele denne ligningen bare handler om bare en kodelinje.
Vi identifiserte en trapez i bildet ovenfor, fordi de første turtallene er dårlige for de fleste trinnmotorer. Det samme skjer med retardasjonen. På grunn av dette visualiserer vi et trapes i perioden mellom akselerasjon og retardasjon.
Trinn 13: Funksjoner - Bevegelsesfunksjon - Kontinuerlig hastighet
Her beholder vi antall trinn som brukes i akselerasjonen, vi fortsetter i kontinuerlig hastighet og holder med maksimal hastighet, som kan sees på bildet nedenfor.
Trinn 14: Funksjoner - Bevegelsesfunksjon - Retardasjon
Her har vi en annen ligning, denne gangen med en negativ akselerasjonsverdi. Den vises også i en kodelinje, som i bildet nedenfor representerer rektangelet merket Deceleration.
Trinn 15: Funksjoner - Bevegelsesfunksjon - Kontinuerlig hastighet
Vi går tilbake til kontinuerlig hastighet for å arbeide andre halvdel av banen, som vist nedenfor.
Trinn 16: Funksjoner - Flyttefunksjon - Flytt svinger
I denne delen beveger vi motoren i et visst antall omdreininger i ønsket retning, og konverterer antall omdreininger i millimeter. Til slutt flytter vi motoren i ønsket retning.
Trinn 17: Bevegelseskart - Posisjonshastighet
I denne grafen har jeg data som ble trukket ut fra ligningen som vi brukte i delen av akselerasjon. Jeg tok verdiene og spilte på Arduino -serien, og jeg gikk fra dette til Excel, noe som resulterte i denne tabellen. Denne tabellen viser fremdriften i trinnet.
Trinn 18: Bevegelseskart - Posisjon Vs. Posisjon
Her tar vi posisjonen, i trinn, og hastigheten og konverterer den til periode, i mikrosekund. Vi merker i dette trinnet at perioden er omvendt proporsjonal med hastigheten.
Trinn 19: Bevegelseskart - Velocity vs. Øyeblikk
Til slutt har vi hastigheten som en funksjon av øyeblikket, og på grunn av dette har vi en rett linje, siden det er hastigheten som en funksjon av tiden.
Anbefalt:
Trinnmotor med Arduino UNO: 3 trinn
Steppermotor med Arduino UNO: Steppermotorer er likestrømsmotorer som beveger seg i diskrete trinn. De har flere spoler som er organisert i grupper kalt "faser". Ved å aktivere hver fase i rekkefølge, vil motoren rotere, ett trinn om gangen. Trinnmotorer er veldig nyttige
Steppermotor kontrollert trinnmotor - Trinnmotor som roterende koder: 11 trinn (med bilder)
Steppermotor kontrollert trinnmotor | Steppermotor som roterende encoder: Har et par trinnmotorer liggende og vil gjøre noe? I denne instruksen, la oss bruke en trinnmotor som en roterende encoder for å kontrollere en annen trinnmotors posisjon ved hjelp av en Arduino mikrokontroller. Så uten videre, la oss gi
Hvordan bruke trinnmotor som roterende koder og OLED -skjerm for trinn: 6 trinn
Hvordan bruke trinnmotor som roterende koder og OLED -skjerm for trinn: I denne opplæringen lærer vi hvordan du sporer trinnmotortrinnene på OLED -skjermen. Se en demonstrasjonsvideo. Kreditt for den originale opplæringen går til youtube -brukeren " sky4fly "
Velge en trinnmotor og driver for et Arduino Automated Shade Screen Project: 12 trinn (med bilder)
Velge en trinnmotor og driver for et Arduino automatisert skjermskjermprosjekt: I denne instruksen vil jeg gå gjennom trinnene jeg tok for å velge en trinnmotor og driver for et prototype Automated Shade Screen -prosjekt. Skygge -skjermene er de populære og rimelige Coolaroo håndsvingede modellene, og jeg ønsket å erstatte
Vinkel posisjonskontroll av 28BYJ-48 trinnmotor med Arduino og analog joystick: 3 trinn
Vinkel posisjonskontroll av 28BYJ-48 trinnmotor med Arduino og analog joystick: Dette er et kontrollopplegg for 28BYJ-48 trinnmotor som jeg har utviklet for å bruke som en del av mitt siste års avhandlingsprosjekt. Jeg har ikke sett dette gjort før, så tenkte jeg skulle laste opp det jeg oppdaget. Forhåpentligvis vil dette hjelpe noen andre