Innehållsförteckning:
- Steg 1: StepDriver -bibliotek
- Steg 2: Globala variabler
- Steg 3: Funktioner - Ställa in drivrutinstiften
- Steg 4: Funktioner - Grundläggande funktioner för föraren
- Steg 5: Funktioner - Motorstegsinställning
- Steg 6: Funktioner - Ställa in motorstegsläget
- Steg 7: Funktioner - Inställning av gränslägesbrytare
- Steg 8: Funktioner - Läsning av gränslägesbrytare
- Steg 9: Funktioner - Rörelseinställning
- Steg 10: Funktioner - rörelsefunktion
- Steg 11: Funktioner - rörelsefunktion - variabler
- Steg 12: Funktioner - rörelsefunktion - acceleration
- Steg 13: Funktioner - Rörelsefunktion - Kontinuerlig hastighet
- Steg 14: Funktioner - Rörelsefunktion - Retardation
- Steg 15: Funktioner - Rörelsefunktion - Kontinuerlig hastighet
- Steg 16: Funktioner - Flytta funktion - Flytta svängar
- Steg 17: Rörelsediagram - positionshastighet
- Steg 18: Rörelsediagram - Position Vs. Placera
- Steg 19: Rörelsediagram - Velocity Vs. Ögonblick
Video: Arduino: Precision Lib för stegmotor: 19 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Idag kommer jag att visa dig ett bibliotek för en fullstegsmotorförare med gränslägesbrytare och motorrörelse med acceleration och mikrosteg. Denna Lib, som fungerar på både Arduino Uno och Arduino Mega, låter dig flytta motorerna inte bara baserat på antalet steg, utan också på millimeter. Och det är ganska exakt också.
En viktig egenskap hos detta bibliotek är att det låter dig bygga din egen CNC -maskin, vilket inte nödvändigtvis bara är X, Y, utan också en sektionsomkopplare, till exempel eftersom det inte är en klar GRBL, utan snarare den programmering som låter dig göra den perfekta maskinen för dig.
Men följande uttalande är en viktig detalj! Denna video är bara för dem som redan är vana vid programmering. Om du inte är bekant med Arduino -programmering bör du först titta på andra mer introduktionsvideor på min kanal. Detta beror på att jag diskuterar ett avancerat ämne i den här specifika videon och förklarar mer detaljerat Lib som används i videon: Stegmotor med acceleration och slut på slag.
Steg 1: StepDriver -bibliotek
Detta bibliotek täcker de tre vanligaste förartyperna på marknaden: A4988, DRV8825 och TB6600. Den konfigurerar förarnas stiften, så att de kan utföra återställningen och placeringen i viloläge, samt aktivera och inaktivera motorutgångarna som verkar på aktiveringsstiftet. Den ställer också in ingångarna för föraren med mikrosteg och begränsar omkopplare och deras aktiveringsnivå (hög eller låg). Den har också motorrörelsekod med kontinuerlig acceleration i mm / s², maximal hastighet i mm / s och minsta hastighet i mm / s.
För dem som tittade på del 1 och 2 i videon Step Motor with Acceleration and End of Stroke, ladda ner det här nya biblioteket som finns tillgängligt idag, eftersom jag gjorde några ändringar i den första filen för att underlätta dess användning.
Steg 2: Globala variabler
Jag visar exakt vad var och en av de globala variablerna är till för.
Steg 3: Funktioner - Ställa in drivrutinstiften
Här beskriver jag några metoder.
Jag ställde in Pinout -inställningen och Arduino -stiften som utgång.
Steg 4: Funktioner - Grundläggande funktioner för föraren
I denna del arbetar vi med konfigurationen av drivrutinen och dess grundläggande funktioner.
Steg 5: Funktioner - Motorstegsinställning
I detta steg i koden konfigurerar vi mängden steg per millimeter som motorn måste utföra.
Steg 6: Funktioner - Ställa in motorstegsläget
Denna tabell visar inställningarna för motorstegsläget. Här är några exempel.
Steg 7: Funktioner - Inställning av gränslägesbrytare
Här måste jag läsa hela och booleska värden. Det är nödvändigt att ställa in om den aktiva nyckeln är uppåt eller nedåt, samtidigt som max- och minimigränsens slutpinne ställs in.
Steg 8: Funktioner - Läsning av gränslägesbrytare
Den här delen skiljer sig från den i Lib som jag gjorde tillgänglig förra veckan. Varför ändrade jag det? Jag skapade eRead för att ersätta några andra. Här kommer eRead att läsa LVL, digitalRead (pin) och returnera TRUE. Allt detta måste utföras på hög. Följande arbete med den aktiva nyckeln kommer att ligga på den låga nivån. Jag använder den här för att visa tabellen "Sanning".
I bilden av koden placerade jag ett diagram som hjälper till att förstå att i denna del av källkoden går jag mot stigande och har ännu inte träffat slutet på kursen.
Nu, i denna bild os kod bool DRV8825, visar jag att motorn fortfarande rör sig i växande riktning. Den maximala gränslägesbrytaren är dock aktiverad. Mekanismen måste alltså stoppa rörelsen.
Till sist visar jag samma rörelse, men i motsatt riktning.
Här har du redan kursen för slutkurs aktiverad.
Steg 9: Funktioner - Rörelseinställning
MotionConfig -metodens huvudsakliga nytta är att konvertera millimeter per sekund (en mätning som används i CNC -maskiner) till steg för att möta styrenheten för en stegmotor. Det är därför i denna del som jag instansierar variablerna för att förstå stegen och inte millimeterna.
Steg 10: Funktioner - rörelsefunktion
I detta steg behandlar vi kommandot som rör ett steg i önskad riktning under en period i mikrosekunder. Vi ställer också in förarens riktningsstift, fördröjningstid och riktning för gränslägesbrytare.
Steg 11: Funktioner - rörelsefunktion - variabler
I den här delen konfigurerar vi alla variabler som innefattar perioder med maximal och minsta hastighet, banans avstånd och steg som är nödvändiga för att bland annat avbryta banan.
Steg 12: Funktioner - rörelsefunktion - acceleration
Här presenterar jag några detaljer om hur vi kom fram till accelerationsdata, som beräknades genom Torricellis ekvation, eftersom detta tar hänsyn till utrymmena för att arbeta accelerationen och inte tiden. Men det är viktigt här att förstå att hela denna ekvation bara handlar om bara en kodrad.
Vi identifierade en trapez i bilden ovan, eftersom de första varvtalen är dåliga för de flesta stegmotorer. Samma sak händer med retardationen. På grund av detta visualiserar vi en trapets under perioden mellan acceleration och retardation.
Steg 13: Funktioner - Rörelsefunktion - Kontinuerlig hastighet
Här behåller vi antalet steg som används i accelerationen, vi fortsätter i kontinuerlig hastighet och håller med den maximala hastigheten, som kan ses på bilden nedan.
Steg 14: Funktioner - Rörelsefunktion - Retardation
Här har vi en annan ekvation, denna gång med ett negativt accelerationsvärde. Det visas också i en kodrad, som i bilden nedan representerar rektangeln märkt Retardation.
Steg 15: Funktioner - Rörelsefunktion - Kontinuerlig hastighet
Vi återgår till kontinuerlig hastighet för att arbeta andra halvan av banan, enligt nedan.
Steg 16: Funktioner - Flytta funktion - Flytta svängar
I denna del flyttar vi motorn i ett visst antal varv i önskad riktning och omvandlar antalet varv i millimeter. Slutligen flyttar vi motorn i önskad riktning.
Steg 17: Rörelsediagram - positionshastighet
I den här grafen har jag data som extraherades från ekvationen som vi använde i delen Acceleration. Jag tog värdena och spelade på Arduino -serien, och jag gick från detta till Excel, vilket resulterade i den här tabellen. Denna tabell visar stegets framsteg.
Steg 18: Rörelsediagram - Position Vs. Placera
Här tar vi positionen, i steg, och hastigheten och omvandlar den till period, i mikrosekund. Vi noterar i detta steg att perioden är omvänt proportionell mot hastighet.
Steg 19: Rörelsediagram - Velocity Vs. Ögonblick
Slutligen har vi hastigheten som funktion av ögonblicket, och på grund av detta har vi en rak linje, eftersom det är hastigheten som en funktion av tiden.
Rekommenderad:
Hur man gör en HIGH Current Driver för en stegmotor: 5 steg
Hur man gör en HÖG strömdrivrutin för en stegmotor: här kommer vi att se hur man gör en stegmotordrivrutin med hjälp av Toshibas TB6560AHQ -styrenhet. Detta är en fullfjädrad controller som bara behöver 2 variabler som ingång och det gör allt arbete. Eftersom jag behövde två av dessa har jag gjort dem båda med
Stegmotorstyrd stegmotor - Stegmotor som roterande kodare: 11 steg (med bilder)
Stegmotorstyrd stegmotor | Stegmotor som roterande kodare: Har ett par stegmotorer liggande och vill göra något? I denna instruerbara, låt oss använda en stegmotor som en roterande kodare för att styra en annan stegmotors position med en Arduino -mikrokontroller. Så utan vidare, låt oss ge
Hur man använder stegmotor som roterande kodare och OLED -display för steg: 6 steg
Så här använder du stegmotor som roterande kodare och OLED -skärm för steg: I denna handledning lär vi oss hur du spårar stegmotorstegen på OLED -skärmen. Titta på en demonstrationsvideo. Kredit för den ursprungliga handledningen går till YouTube -användaren " sky4fly "
Välja en stegmotor och drivrutin för ett Arduino Automated Shade Screen Project: 12 steg (med bilder)
Välja en stegmotor och drivrutin för ett Arduino Automated Shade Screen Project: I denna instruktionsbok kommer jag att gå igenom stegen som jag tog för att välja en Step Motor och Driver för ett prototyp Automated Shade Screen -projekt. Skärmskärmarna är de populära och billiga Coolaroo handvävda modellerna, och jag ville byta ut
Smart styrsystem för robotbilar som använder stegmotor för gammal diskett/CD -enhet: 8 steg (med bilder)
Smart styrsystem för robotbilar med stegmotor för gammal diskett/CD -enhet: Smart styrsystem för robotbilar Är du orolig för att skapa ett bra styrsystem för din robotbil? Här är en utmärkt lösning bara med dina gamla diskett/ CD/ DVD -enheter. se upp det och få en uppfattning om det Besök georgeraveen.blogspot.com