Indholdsfortegnelse:

Arduino: Precision Lib for trinmotor: 19 trin
Arduino: Precision Lib for trinmotor: 19 trin

Video: Arduino: Precision Lib for trinmotor: 19 trin

Video: Arduino: Precision Lib for trinmotor: 19 trin
Video: Arduino - Homing Stepper Motors using the AccelStepper Library - Tutorial 2024, Juli
Anonim
Image
Image
Globale variabler
Globale variabler

I dag vil jeg vise dig et bibliotek til en motor med fuld trin med grænsekontakter og motorbevægelse med acceleration og mikrotrin. Denne Lib, der fungerer på både Arduino Uno og Arduino Mega, giver dig mulighed for at flytte motorerne ikke kun baseret på antallet af trin, men også på millimeter. Og det er også ret præcist.

Et vigtigt træk ved dette bibliotek er, at det giver dig mulighed for at bygge din egen CNC -maskine, som ikke nødvendigvis kun er X, Y, men også en sektionsafbryder, for eksempel fordi den ikke er en klar GRBL, men derimod den programmering, der giver dig mulighed for at lave den ideelle maskine til dig.

Den følgende erklæring er imidlertid en vigtig detalje! Denne video er kun for dem, der allerede er vant til at programmere. Hvis du ikke er bekendt med Arduino -programmering, skal du først se andre mere introduktionsvideoer på min kanal. Dette er fordi jeg diskuterer et avanceret emne i denne specifikke video og forklarer mere detaljeret den Lib, der blev brugt i videoen: Trinmotor med acceleration og afslutning af slagtilfælde.

Trin 1: StepDriver -bibliotek

Dette bibliotek dækker de tre mest almindelige drivertyper på markedet: A4988, DRV8825 og TB6600. Det konfigurerer drivernes stifter, så de kan udføre nulstilling og placering i dvaletilstand, samt aktivere og deaktivere motorudgange, der virker på aktiveringsnålen. Det indstiller også input til driverens mikrotrinstifter og begrænser switches og deres aktiveringsniveau (højt eller lavt). Den har også motorbevægelseskode med kontinuerlig acceleration i mm / s², maksimal hastighed i mm / s og minimumshastighed i mm / s.

For dem, der så del 1 og 2 i videoen Step Motor with Acceleration and End of Stroke, download dette nye bibliotek, der er tilgængeligt i dag, fordi jeg lavede nogle ændringer i den første fil for at lette dens brug.

Trin 2: Globale variabler

Jeg viser præcis, hvad hver af de globale variabler er til.

Trin 3: Funktioner - Indstilling af drivernålene

Funktioner - Indstilling af drivernålene
Funktioner - Indstilling af drivernålene

Her beskriver jeg nogle metoder.

Jeg indstillede Pinout -indstillingen og Arduino -benene som output.

Trin 4: Funktioner - Grundlæggende funktioner i driveren

Funktioner - Grundlæggende funktioner i føreren
Funktioner - Grundlæggende funktioner i føreren

I denne del arbejder vi med konfigurationen af driveren og dens grundlæggende funktioner.

Trin 5: Funktioner - Motor trinindstilling

Funktioner - Motortrinindstilling
Funktioner - Motortrinindstilling
Funktioner - Motortrinindstilling
Funktioner - Motortrinindstilling

I dette trin i koden konfigurerer vi mængden af trin pr. Millimeter, som motoren skal udføre.

Trin 6: Funktioner - Indstilling af motortrinstilstand

Funktioner - Indstilling af motortrinstilstand
Funktioner - Indstilling af motortrinstilstand
Funktioner - Indstilling af motortrinstilstand
Funktioner - Indstilling af motortrinstilstand
Funktioner - Indstilling af motortrinstilstand
Funktioner - Indstilling af motortrinstilstand

Denne tabel viser indstillingerne for motortrinstilstanden. Her er nogle eksempler.

Trin 7: Funktioner - Indstilling af grænsekontakter

Funktioner - Indstilling af grænsekontakter
Funktioner - Indstilling af grænsekontakter

Her skal jeg læse hele og boolske værdier. Det er nødvendigt at indstille, om den aktive nøgle er op eller ned, mens maks. Og minimumsgrænseindstillingsnål indstilles.

Trin 8: Funktioner - Aflæsning af grænsekontakter

Funktioner - Aflæsning af grænsekontakter
Funktioner - Aflæsning af grænsekontakter
Funktioner - Aflæsning af grænsekontakter
Funktioner - Aflæsning af grænsekontakter
Funktioner - Aflæsning af grænsekontakter
Funktioner - Aflæsning af grænsekontakter

Denne del er forskellig fra den i Lib, som jeg stillede til rådighed i sidste uge. Hvorfor ændrede jeg det? Nå, jeg oprettede eRead for at erstatte nogle andre. Her vil eRead læse LVL, digitalRead (pin) og returnere TRUE. Alt dette skal udføres i højden. Følgende arbejde med den aktive nøgle vil være på det lave niveau. Jeg vil bruge den her til at vise dig "Sandhedstabellen".

I billedets kode placerede jeg et diagram, der vil hjælpe med at forstå, at jeg i denne del af kildekoden bevæger mig mod Stigende og endnu ikke har ramt afslutningstasten.

Nu, i dette billede os kode bool DRV8825, viser jeg motoren stadig bevæger sig i den voksende retning. Den maksimale grænsekontakt er dog aktiveret. Mekanismen skal altså standse bevægelsen.

Til sidst viser jeg den samme bevægelse, men i den modsatte retning.

Her har du allerede afslutningskontakten aktiveret.

Trin 9: Funktioner - Bevægelsesopsætning

Funktioner - Bevægelsesopsætning
Funktioner - Bevægelsesopsætning

Det vigtigste værktøj ved motionConfig -metoden er at konvertere millimeter i sekundet (en måling, der bruges i CNC -maskiner) til trin, for at møde controlleren af en trinmotor. Det er derfor i denne del, at jeg instantiserer variablerne for at forstå trinene og ikke millimeterne.

Trin 10: Funktioner - Bevægelsesfunktion

Funktioner - Bevægelsesfunktion
Funktioner - Bevægelsesfunktion

I dette trin behandler vi kommandoen, der bevæger et trin i den ønskede retning i en periode i mikrosekunder. Vi indstiller også førerens retningspind, forsinkelsestid og retning for grænseomskiftere.

Trin 11: Funktioner - Bevægelsesfunktion - Variabler

Funktioner - Bevægelsesfunktion - Variabler
Funktioner - Bevægelsesfunktion - Variabler

I denne del konfigurerer vi alle de variabler, der involverer perioder med maksimal og minimumshastighed, banens afstand og trin, der er nødvendige for at afbryde banen, blandt andre.

Trin 12: Funktioner - Bevægelsesfunktion - Acceleration

Funktioner - Bevægelsesfunktion - Acceleration
Funktioner - Bevægelsesfunktion - Acceleration
Funktioner - Bevægelsesfunktion - Acceleration
Funktioner - Bevægelsesfunktion - Acceleration

Her præsenterer jeg nogle detaljer om, hvordan vi nåede frem til accelerationsdataene, som blev beregnet gennem Torricellis ligning, da dette tager højde for mellemrummene til at arbejde accelerationen og ikke tiden. Men det er vigtigt her at forstå, at hele denne ligning kun handler om kun en kodelinje.

Vi identificerede en trapez i billedet ovenfor, fordi de indledende omdrejningstal er dårlige for de fleste steppermotorer. Det samme sker med decelerationen. På grund af dette visualiserer vi et trapez i perioden mellem acceleration og deceleration.

Trin 13: Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed

Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed
Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed
Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed
Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed

Her beholder vi antallet af trin, der bruges i accelerationen, vi fortsætter i kontinuerlig hastighed og holder med den maksimale hastighed, som kan ses på billedet herunder.

Trin 14: Funktioner - Bevægelsesfunktion - Deceleration

Funktioner - Bevægelsesfunktion - Deceleration
Funktioner - Bevægelsesfunktion - Deceleration
Funktioner - Bevægelsesfunktion - Deceleration
Funktioner - Bevægelsesfunktion - Deceleration

Her har vi en anden ligning, denne gang med en negativ accelerationsværdi. Det vises også i en kodelinje, som på billedet herunder repræsenterer rektanglet mærket Deceleration.

Trin 15: Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed

Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed
Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed
Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed
Funktioner - Bevægelsesfunktion - Kontinuerlig hastighed

Vi vender tilbage til kontinuerlig hastighed for at arbejde med anden halvdel af banen, som det ses nedenfor.

Trin 16: Funktioner - Flytfunktion - Flyt drejer

Funktioner - Flytfunktion - Flyt drejer
Funktioner - Flytfunktion - Flyt drejer

I denne del flytter vi motoren i et bestemt antal omdrejninger i den ønskede retning, og konverterer antallet af omdrejninger i millimeter. Endelig flytter vi motoren i den ønskede retning.

Trin 17: Motion Chart - Position Velocity

Bevægelsesskema - positionshastighed
Bevægelsesskema - positionshastighed

I denne graf har jeg data, der blev ekstraheret fra ligningen, som vi brugte i delen af Acceleration. Jeg tog værdierne og spillede på Arduino -serien, og jeg gik fra dette til Excel, hvilket resulterede i denne tabel. Denne tabel viser trinets fremskridt.

Trin 18: Motion Chart - Position vs. Position

Motion Chart - Position Vs. Position
Motion Chart - Position Vs. Position

Her tager vi positionen i trin og hastigheden og konverterer den til periode i mikrosekund. Vi bemærker i dette trin, at perioden er omvendt proportional med hastighed.

Trin 19: Motion Chart - Velocity vs. Øjeblik

Motion Chart - Velocity vs. Øjeblik
Motion Chart - Velocity vs. Øjeblik

Endelig har vi hastigheden som funktion af øjeblikket, og på grund af dette har vi en lige linje, da det er hastigheden som funktion af tiden.

Anbefalede: