Stepper motor: integrasjon med Arduino

Stepper motor

Elektriske motorer er stadig mer etterspurt, blant dem skiller det seg kanskje ut de som jobber med likestrøm, det mest populære innen prosjektene til produsenter med Arduino, siden de gir mobilitet. Blant dem, høydepunkt trinnmotorer som brukes til flere applikasjoner, spesielt for robotikk, som aktuatorer osv.

Elektriske biler, små autonome roboter, industrielle applikasjoner for automatisering, repeterende bevegelsesenheter osv. Årsaken til at servomotorer og trinnmotorer er så gode for disse applikasjonene, er at de kan utføre sakte eller raske bevegelser, men fremfor alt kontrollert. I tillegg er stasjonene kontinuerlige for applikasjoner der mange stopp og starter kreves med stor presisjon.

Typer av elektriske motorer

Innenfor elektriske motorer følgende typer kan fremheves:

  • DC- eller DC-motor: DC-motorer jobber med denne typen strøm, som navnet antyder. De kan variere fra noen få mW kraft til noen få MW i de kraftigste og store, som brukes til industrielle applikasjoner, biler, heiser, transportbånd, vifter, etc. Dreiehastigheten (RPM) og det anvendte dreiemomentet kan reguleres i henhold til fôret.
  • AC- eller AC-motor (asynkron og viklet rotor): de jobber med vekselstrøm, med en veldig spesifikk rotor som fungerer takket være fasene at denne typen strøm bidrar til å generere rotasjonen ved hjelp av magnetisk frastøting av elektromagneten på en lignende måte som DC-ens gjør. De er veldig billige og går opp i flere kW. De kan reguleres i rotasjonshastighet, men reguleringselementene er dyrere enn DC. Disse brukes ofte til husholdningsapparater.
  • Stepper motor- Også kjent som steppers, de ligner på mange måter DC, men med lave sentrifugeringshastigheter og krefter. Her er det som skiller seg ut, plasseringen av aksen, det vil si presisjonen for å sette dem i en bestemt posisjon. Rotasjonsvinkelen og hastigheten deres kan kontrolleres mye, og det var derfor de pleide å brukes i diskettstasjoner, harddisker (HDD), roboter, prosessautomatisering, etc.
  • Servomotor: det kan sies at det er en utvikling av trinnmotoren, som arbeider med små krefter og hastigheter som i noen tilfeller går opp til 7000 RPM. Denne motoren har en reduksjonsboks og en kontrollkrets. De har samme posisjonspresisjon som steppere og er veldig stabile når det gjelder anvendt dreiemoment, noe som gjør dem ideelle for noen roboter og industrielle applikasjoner.

Stepper motorer og servomotorer

rotor og stator

Du vet allerede hva disse to typene elektronisk motor er, men jeg vil gjerne si noe mer om steppers. Turnen de gjør, blir ikke gjort kontinuerlig, men i små trinn, derav navnet deres. Rotoren (delen som roterer) har form av et tannhjul, mens statoren (delen som ikke roterer) består av sammenflettede polariserte elektromagneter. På denne måten, når man blir "aktivert", aktiveres ikke de på sidene, noe som tiltrekker rotortannen mot den, slik at den presise fremdrift som de er karakterisert for.

drv8825
Relatert artikkel:
DRV8825: driveren for trinnmotorer

Avhengig av rotortenner, vil det være mulig å gå videre mer eller mindre i svingen. Hvis du har flere tenner, er det flere trinn som trengs for å fullføre en sving, men trinnene blir kortere, så det blir en mer nøyaktig motor. Hvis du har få tenner, vil trinnene være mer brå hopp, uten like mye presisjon. Derfor vil trinnene som en trinnmotor må ta for å fullføre en sving avhenge av vinkeltrappene.

Disse trinnene vinkel er standardisert, selv om du finner noen motorer som har ikke-standard tonehøyde. Vinklene er vanligvis: 1.8 º, 5.625 º, 7.5 º, 11.25 º, 18 º, 45 º og 90 º. For å beregne hvor mange trinn en trinnmotor trenger for å fullføre en hel sving eller sving (360 º), trenger du bare å dele. Hvis du for eksempel har en 45 ° trinnmotor, vil du ha 8 trinn (360/45 = 8).

spinn med skjevhet (fase)

Innenfor disse motorene har du unipolar (mest populær), med 5 eller 6 kabler, eller bipolar, med 4 kabler. I følge dette vil det ene eller det andre bli utført polarisasjonssekvenser passerer strøm gjennom spolene:

  • Polarisering for bipolar:
Trinn Terminal A Terminal B Terminal C Terminal D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • For unipolar:
Trinn Spole A Spole B Spole C Spole D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

Operasjonen i begge tilfeller er den samme, og polariserer spolene for å tiltrekke rotoren dit du vil at aksen skal plasseres. Hvis du vil hold den i en posisjon, du må opprettholde polarisasjonen for den stillingen og voila. Og hvis du vil at den skal bevege seg fremover, polariserer du neste magnet, og det tar et nytt skritt, og så videre ...

Hvis du bruker a Servo motor, du vet allerede at det i utgangspunktet er en trinnmotor, derfor fungerer alt som er sagt for dem også. Det eneste som inkluderer reduksjonsgirene for å oppnå mange flere trinn per sving og dermed ha en mye høyere presisjon. For eksempel kan du finne en motor med 8 trinn per sving at hvis den hadde en girkasse 1:64, siden det betyr at hvert trinn av de åtte er delt inn i 64 mindre trinn, noe som vil gi maksimalt 512 trinn per sving. Det vil si at hvert trinn vil være omtrent 0.7 º.

l298n
Relatert artikkel:
L298N: modul for å kontrollere motorer for Arduino

Legg også til at du bør bruke noen kontrolleren som du kan kontrollere polarisering, hastighet osv. med, for eksempel H-Bridge. Noen modeller er L293, ULN2003, ULQ2003, etc.

Hvor å kjøpe

Du kjøp den på forskjellige nettsteder eller i spesialiserte elektronikkbutikker. Hvis du er nybegynner, kan du også bruke sett som inneholder alt du trenger og til og med tallerkenen Arduino UNO og manual for å begynne å eksperimentere og lage prosjekter. Disse settene inkluderer alt du trenger, fra selve motoren, kontrollerne, brettene, brødbrettet osv.

Stepper motor eksempel med Arduino

Arduino med trinnmotor og kontroller

Vis til slutt en praktisk eksempel med Arduino, bruker ULN2003-kontroller og 28BYJ-48 trinnmotor. Det er veldig enkelt, men det vil være nok for deg å begynne å bli kjent med hvordan det fungerer, slik at du kan begynne å gjøre noen tester og se hvordan det oppfører seg ...

Som sett i koblingsskjemaet, er motorspolene A (IN1), B (IN2), C (IN3) og D (IN4) tilordnet forbindelsene 8, 9, 10 og 11 til Arduino-kortet. På den annen side må sjåføren eller kontrollerkortet mates på 5-12V-pinnene (til GND og 5V på Arduino) med riktig spenning, slik at den igjen mater motoren som er koblet til den hvite plastkontakten som har denne driveren eller kontrolleren.

Dette 28BYJ-48 motor Det er en ensidig trinnmotor med fire spoler. Derfor, for å gi deg en ide om hvordan det fungerer, kan du sende HIGH (1) eller LOW (0) verdier til spolene fra Arduino-kortet som følger for trinnene:

Trinn Spole A Spole B Spole C Spole D
1 HØY HØY LAV LAV
2 LAV HØY HØY LAV
3 LAV LAV HØY HØY
4 HØY LAV LAV HØY

Som til skisse eller kode som trengs for å programmere bevegelsen din, som det ville være følgende å bruke Arduino IDE (modifiser den og eksperimenter for å teste hvordan bevegelsen endres):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.