Stepper motor: integrimi me Arduino

Motor me hapa

Motorët elektrikë janë gjithnjë e më të kërkuar, mes tyre ndoshta dallohen ata që punojnë me rrymë të drejtpërdrejtë, më të njohurit në projektet e prodhuesve me Arduino, pasi ato sigurojnë lëvizshmëri. Midis tyre, nxjerr në pah motorë me hapa që përdoren për aplikime të shumëfishta, veçanërisht për robotikë, siç janë aktuatorët, etj.

Makina elektrike, robotë të vegjël autonome, aplikacione industriale për automatizim, pajisje lëvizje të përsëritura, etj. Arsyeja që motorët ndihmës dhe motorët stepper janë aq të mirë për këto aplikacione është se ata munden kryejnë lëvizje të ngadalta ose të shpejta, por mbi të gjitha të kontrolluara. Për më tepër, disqet janë të vazhdueshëm për aplikime ku shumë ndalesa dhe startime kërkohen me shumë saktësi.

Llojet e motorëve elektrikë

Brenda motorë elektrikë mund të theksohen llojet e mëposhtme:

  • Motor DC ose DC: Motorët DC punojnë me këtë lloj rryme, siç sugjeron emri. Ato mund të variojnë nga disa mW energji deri në disa MW në ato më të fuqishmet dhe të mëdha, të cilat përdoren për aplikime industriale, automjete, ashensorë, rripa transportues, ventilator, etj. Shpejtësia e tij e kthimit (RPM) dhe çift rrotullimi i aplikuar mund të rregullohen në përputhje me furnizimin.
  • Motor AC ose AC (rotor asinkron dhe plagë): ata punojnë me rrymë alternative, me një rotor shumë specifik që punon falë fazave që ky lloj i rrymës kontribuon për të gjeneruar rrotullimin me anë të zmbrapsjes magnetike të elektromagnetit në një mënyrë të ngjashme me atë se si veprojnë ato DC. Ata janë shumë të lirë dhe shkojnë deri në disa kW. Ato mund të rregullohen në shpejtësinë e rrotullimit, por elementët e rregullimit janë më të kushtueshëm se ato DC. Këto përdoren shpesh për pajisjet shtëpiake.
  • Motor me hapa- Njihen gjithashtu si hapa, ata janë të ngjashëm në shumë mënyra me DC, por me shpejtësi dhe fuqi të ulët të rrotullimit. Këtu ajo që bie në sy është pozicionimi i boshtit, domethënë saktësia për t'i vendosur ato në një pozicion specifik. Këndi i rrotullimit dhe shpejtësia e tyre mund të kontrollohen shumë, kjo është arsyeja pse ato më parë përdoreshin në disqet, disqet e ngurta (HDD), robotët, automatizimin e procesit, etj.
  • servomotor: mund të thuhet se është një evolucion i motorit stepper, duke punuar me fuqi dhe shpejtësi të vogla që shkojnë deri në 7000 RPM në disa raste. Ky motor përfshin një kuti për zvogëlimin e ingranazheve dhe një qark kontrolli. Ata kanë të njëjtën saktësi të pozicionimit si hapat dhe janë shumë të qëndrueshëm për sa i përket momentit rrotullues të aplikuar, duke i bërë ato idealë për disa robotë dhe aplikime industriale.

Motorë me hapa dhe motorë ndihmës

rotori dhe statori

Ju tashmë e dini se cilat janë këto dy lloje të motorëve elektronikë, por unë do të doja të them diçka më shumë rreth hapave. Kthesa që ata bëjnë nuk bëhet vazhdimisht, por me hapa të vegjël, prandaj dhe emri i tyre. Rotori (pjesa që rrotullohet) ka formën e një rrote me dhëmbë, ndërsa statori (pjesa që nuk rrotullohet) përbëhet nga elektromagnet të polarizuar të ndërlidhur. Në këtë mënyrë, kur një është "aktivizuar" nuk janë aktivizuar ata në anët e tij, gjë që tërheq dhëmbin e rotorit drejt tij, duke lejuar përparimin e saktë për të cilin karakterizohen.

drv8825
Artikulli i lidhur:
DRV8825: drejtuesi i motorëve stepper

Varet nga dhëmbët e rotorit, do të jetë e mundur të përparojmë pak a shumë nga ana tjetër. Nëse keni më shumë dhëmbë, nevojiten më shumë hapa për të përfunduar një kthesë, por hapat do të jenë më të shkurtër, kështu që do të jetë një motor më i saktë. Nëse keni disa dhëmbë, hapat do të jenë kërcime më të menjëhershme, pa aq saktësi. Prandaj, hapat që do të duhet të ndërmarrë një motor stepper për të përfunduar një kthesë do të varen nga hapat këndorë.

Ato hapa këndore janë standardizuar, megjithëse mund të gjeni disa motorë që kanë lartësi jo standarde. Këndet janë zakonisht: 1.8º, 5.625º, 7.5º, 11.25º, 18º, 45º dhe 90º. Për të llogaritur sa hapa ka nevojë një motor stepper për të përfunduar një kthesë ose kthesë të plotë (360º), thjesht duhet të ndani. Për shembull, nëse keni një motor stere 45º, do të kishit 8 hapa (360/45 = 8).

tjerr me paragjykim (faza)

Brenda këtyre motorëve keni unipolare (më të njohurit), me 5 ose 6 kabllo, ose bipolar, me 4 kabllo. Sipas kësaj, njëra ose tjetra do të kryhen sekuencat e polarizimit kalimi i rrymës nëpër mbështjelljet e tij:

  • Polarizimi për bipolar:
Paso Terminali A Terminali B Terminali C Terminali D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • Për unipolare:
Paso Spiralja A Spiralja B Spiralja C Spiralja D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

Operacioni në të dy rastet është i njëjtë, duke polarizuar mbështjelljet për të tërhequr rotorin atje ku dëshironi të vendoset boshti. Nëse dëshironi mbajeni në një pozicion, duhet të ruani polarizimin për atë pozicion dhe voila. Dhe nëse doni që ajo të ecë përpara, ju polarizoni magnetin tjetër dhe do të bëjë një hap tjetër, dhe kështu me radhë ...

Nëse përdorni një servo motor, ju tashmë e dini që në thelb është një motor stepper prandaj gjithçka që thuhet funksionon edhe për ta. E vetmja gjë që përfshin ato ingranazhe reduktimi për të marrë shumë më shumë hapa për kthesë dhe kështu të ketë një saktësi shumë më të lartë. Për shembull, mund të gjesh një motor me 8 hapa për kthesë që nëse do të kishte një kuti ingranazhi 1:64, pasi kjo do të thotë që secili hap nga ata tetë ndahet në 64 shkallë më të vogla, gjë që do të jepte maksimumi 512 hapa për kthesë. Kjo do të thotë, secili hap do të ishte rreth 0.7º.

l298n
Artikulli i lidhur:
L298N: modul për të kontrolluar motorët për Arduino

Shtoni gjithashtu se duhet të përdorni disa kontrollues me të cilin kontrollohet polarizimi, shpejtësia, etj., me, për shembull, Urën-H. Disa modele janë L293, ULN2003, ULQ2003, etj.

Ku për të blerë

Ju mundeni blini atë në faqe të ndryshme në internet ose në dyqane të specializuara elektronike. Gjithashtu, nëse jeni fillestar, mund të përdorni komplete që përfshijnë gjithçka që ju nevojitet, madje edhe pjatën Arduino UNO dhe manual për të filluar eksperimentimin dhe krijimin e projekteve tuaja. Këto komplete përfshijnë gjithçka që ju nevojitet, nga vetë motori, kontrolluesit, bordet, tabela, etj.

Shembull motor stepper me Arduino

Arduino me motor stepper dhe kontrollues

Në fund, tregoni një shembull praktik me Arduino, duke përdorur kontrolluesin ULN2003 dhe motorin stepper 28BYJ-48. Veryshtë shumë e thjeshtë, por do të jetë e mjaftueshme që ju të filloni të familjarizoheni me mënyrën e funksionimit në mënyrë që të filloni të bëni disa teste dhe të shihni se si sillet ...

Siç shihet në skema e lidhjes, mbështjellësit motorikë A (IN1), B (IN2), C (IN3) dhe D (IN4) janë caktuar në lidhjet 8, 9, 10 dhe 11 përkatësisht në bordin Arduino. Nga ana tjetër, bordi i drejtuesit ose kontrolluesit duhet të ushqehet në kunjat e tij 5-12V (në GND dhe 5V të Arduino) me tensionin e duhur në mënyrë që të ushqejë motorin e lidhur me lidhësin e bardhë plastik që ka ky drejtues ose kontrollues.

kjo Motor 28BYJ-48 Isshtë një motor stepper i tipit njëpolar me katër mbështjellje. Prandaj, për t'ju dhënë një ide se si funksionon, mund të dërgoni vlera të LARTA (1) ose të ULTA (0) në mbështjellje nga bordi Arduino si më poshtë për hapat:

Paso Spiralja A Spiralja B Spiralja C Spiralja D
1 HIGH HIGH ULET ULET
2 ULET HIGH HIGH ULET
3 ULET ULET HIGH HIGH
4 HIGH ULET ULET HIGH

Për të skica ose kodi i nevojshëm për të programuar lëvizjen tuaj, siç do të ishte përdorimi i mëposhtëm Arduino IDE (modifikojeni dhe eksperimentoni për të provuar se si ndryshohet lëvizja):

// 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);
    }
}


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.