Stepper Motors er en type DC -synkrone motorer som deler rotasjonssyklusen deres i flere små trinn. Det er mange applikasjoner for dem, alt fra 3D -skrivere til CNC -maskiner. Steppermotorer er viktig der presisjon og nøyaktighet av bevegelige gjenstander er nødvendig. Ved hjelp av Arduino kan vi kontrollere trinnmotorbevegelse veldig enkelt, noe som hjelper til med å bygge flere robotiske prosjekter som menneskelige roboter. La oss nå diskutere hvor mange trinnmotorer vi kan integrere med et enkelt Arduino -brett.
Stepper Motors med Arduino
Trinnmotorer kan kontrolleres med høy grad av presisjon uten behov for et tilbakemeldingssystem. Disse motorene kan dele sin komplette rotasjonssyklus i flere små diskrete trinn i henhold til den digitale inngangen mottatt fra Arduino -styret. Hver digital puls fra Arduino kan endre trinnmotorbevegelse til antall trinn eller brøkdel av fullstendig syklus som ofte refereres til som “Mikro stepping”.
Generelt faller steppermotorer i to kategorier:
Forskjell mellom disse to motorene kan fortelles ved å se på antall utgangsledninger de har. Unipolar Stepper kommer med 4 ledninger, og det er mest brukt, mens Bipolar trinnmotorer har 6 ledninger utgang.
For å kontrollere disse trinnmotorene, trenger vi en ekstern motordriver. Disse motorførerne er nødvendige fordi Arduino ikke kan holde tilbake strømmen mer enn 20mA Og normalt tar trinnmotorer strøm mye mer enn dette. Et annet problem er Kickback, Steppermotorer har magnetiske komponenter; De vil fortsette å skape strøm selv når strømmen er avskåret, noe som kan føre til nok negativ spenning som kan skade Arduino -tavlen. Så i korte motorførere er nødvendige for å kontrollere trinnmotorer. En av de ofte brukte motorførerne er A4988 -modul.
Figuren viser at en unipolar trinnmotor er koblet til Arduino ved hjelp av A4988 Motor Driver -modul:
For å lese mer om hvordan vi kan koble en trinnmotor med Arduino, klikk her.
Nå vil vi bevege oss mot hoveddelen for å finne ut hvor mange Steppers Motors Arduino kan støtte.
Hvor mange trinnmotorer kan Arduino kontroll
Arduino kan kontrollere så mange trinnmotorer du vil, det avhenger av brettet vi bruker og antall inngangspostpinner som er tilgjengelige i et Arduino -brett. Arduino Uno har totalt 20 I/O -pinner tilgjengelig hvorav 14 er digitale og 6 analoge pinner. Vi kan imidlertid også bruke analoge pinner for å kjøre en trinnmotor ved hjelp av en motordriver.
Ved hjelp av A4988 Motor Driver -modulen tar det opp til to pinner å kjøre en enkelt steppermotor, noe som betyr at Arduino Uno kan støtte totalt 10 Steppers Motors på en gang. De 10 motorene inkluderer også TX- og RX -pinnene på Arduino -brettet, husk at mens vi bruker disse pinnene, kan vi ikke laste opp eller feilsøke Arduino -skisser lenger. For å unngå dette, bør kommunikasjonspinner forbli gratis slik at seriell dataoverføring kan være mulig når som helst.
Flere trinnmotorer ved hjelp av ekstern motordriver
En enkelt Arduino kan kontrollere flere trinnmotorer. Alt avhenger av hvilken motordrivermodul vi bruker med Arduino. Arduino -pinner spiller en viktig rolle i å kontrollere flere trinnmotorer.
Som nevnt tidligere, hvis vi bruker A4988 Motor Driver -modulen med Arduino UNO, har den kapasitet til å kontrollere opptil 10 motorer. Disse 10 steppermotorene inkluderer også en tilkobling ved serielle pinner TX og RX. Mens disse to pinnene er i bruk, kan Arduino ikke kommunisere serielt.
A4988 Motordriver tar bare to pins trinn og dir. Disse pinnene er nok til å kjøre en enkelt trinnmotor lett. Hvis vi kobler sammen flere stepper med Arduino, krever hver av dem en egen motordrivermodul.
Her i kretsdiagrammet nedenfor har vi koblet 9 Stepper Motors ved hjelp av A4988 -modul. Alle tar to kontrollpinner fra Arduino.
Bruke en egen motordrivermodul har flere fordeler:
Flere trinnmotorer som bruker I2C -protokoller mellom to Arduino
En annen måte å kontrollere flere trinnmotorer er ved å koble til flere Arduino -tavler ved hjelp av I2C -kommunikasjonsprotokoller. I2C har en fordel av Master-Slave Konfigurasjon som gjør at en enhet kan kontrollere mange uten behov for eksterne periferiutstyr og ledninger. Ved å bruke I2C kan vi øke antallet Arduino -brett som resulterer i å gi flere pinner. Alle disse pinnene kan kontrollere trinnmotorer veldig enkelt.
Under diagram illustrerer hvordan master-slave-enheter er tilkoblet og ved å begrense antall ledninger hvordan vi kan kontrollere flere trinnmotorer.
To Arduino -tavler kan kobles til ved hjelp av SDA og SCL pinner som er på henholdsvis analoge pinner A4 og A5. På denne måten er to Arduino-tavler koblet sammen i master-slavekonfigurasjon. Nå kan hver av disse Arduino -tavlene støtte 8 Stepper Motors som eliminerer to trådpar, en for seriell kommunikasjon og en vi nettopp brukte til I2C -kommunikasjon.
Arduino analog pin | I2C PIN |
A4 | SDA |
A5 | SCL |
Konklusjon
Stepper Motors spiller en viktig rolle i å designe robotiske prosjekter. Noen prosjekter kan kreve flere trinnmotorer for deres funksjonalitet. Å kontrollere flere motorer kan være mulig på flere måter, her fremhevet vi hvordan vi kan kontrollere flere trinnmotorer ved bruk av I2C -protokoll og A4988 Motor Driver Module.