- Mga paraan ng pagpapatakbo sa Stepper Motor
- Lumilikha ng MATLAB Graphical User Interface para sa pagkontrol sa Stepper Motor
- MATLAB Code para sa pagkontrol sa Stepper Motor na may Arduino
- Kinakailangan na Materyal
- Diagram ng Circuit
- Pagkontrol ng Stepper Motor na may MATLAB
Ang stepper motors ay isang brushless DC motor na umiikot sa discrete na mga hakbang, at ang pinakamahusay na pagpipilian para sa maraming mga aplikasyon ng kontrol sa paggalaw ng katumpakan. Gayundin, ang mga stepper motor ay mabuti para sa pagpoposisyon, kontrol sa bilis at mga aplikasyon na nangangailangan ng mataas na metalikang kuwintas sa mababang bilis.
Sa nakaraang mga tutorial ng MATLAB, ipinaliwanag namin na kung paano gamitin ang MATLAB upang makontrol ang DC motor, Servo motor at mga gamit sa Home. Ngayon ay matututunan natin kung paano makontrol ang Stepper Motor gamit ang MATALB at Arduino. Kung bago ka sa MATLAB pagkatapos inirerekumenda na magsimula sa simpleng programa ng LED blink sa MATLAB.
Mga paraan ng pagpapatakbo sa Stepper Motor
Bago ka magsimula sa pag-coding para sa stepper motor dapat mong maunawaan ang gumagana o umiikot na konsepto ng isang stepper motor. Dahil ang stator ng stepper mode ay binuo ng iba't ibang mga pares ng coil, ang bawat pares ng coil ay maaaring nasasabik sa maraming iba't ibang mga pamamaraan, pinapagana nito ang mga mode na maitulak sa maraming iba't ibang mga mode. Ang mga sumusunod ay ang malawak na pag-uuri
Buong Mode ng Hakbang
Sa buong hakbang na paggulo mode maaari naming makamit ang isang buong pag-ikot ng 360 ° na may minimum na bilang ng mga liko (mga hakbang). Ngunit hahantong ito sa mas kaunting pagkawalang-galaw at pati na rin ang pag-ikot ay hindi magiging maayos. Mayroong karagdagang dalawang mga pag-uuri sa Buong Hakbang na pagganyak, ang mga ito ay isang phase-on na hakbang na alon at dalawang phase-on mode.
1. Isang phase-on stepping o Wave Stepping: Sa mode na ito isang terminal (phase) lamang ng motor ang magpapasigla sa anumang naibigay na oras. Ito ay may mas kaunting bilang ng mga hakbang at samakatuwid ay maaaring makamit ang isang buong 360 ° na pag-ikot. Dahil ang bilang ng mga hakbang ay mas mababa ang kasalukuyang natupok ng pamamaraang ito ay napakababa din. Ipinapakita ng sumusunod na talahanayan ang pagkakasunud-sunod ng stepping ng alon para sa isang 4 phase stepper motor
Hakbang | Phase 1 (Asul) | Phase 2 (Pink) | Phase 3 (Dilaw) | Phase 4 (Orange) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Dalawang Phase-on stepping: Tulad ng isinasaad ng pangalan sa pamamaraang ito ang dalawang mga phase ay magiging isa. Ito ay may parehong bilang ng mga hakbang sa Wave stepping, ngunit dahil ang dalawang coil ay pinalakas sa isang pagkakataon maaari itong magbigay ng mas mahusay na metalikang kuwintas at bilis kumpara sa nakaraang pamamaraan. Bagaman ang isang down side ay ang pamamaraang ito na gumagamit din ng mas maraming lakas.
Hakbang |
Phase 1 (Asul) |
Phase 2 (Pink) |
Phase 3 (Dilaw) |
Phase 4 (Orange) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half Step Mode
Ang mode na Half Step ay ang kombinasyon ng isang phase-on at two-phase sa mga mode. Ang kumbinasyon na ito ay makakatulong sa amin upang makakuha ng higit sa nabanggit na kawalan ng parehong mga mode.
Tulad ng maaaring nahulaan mo ito dahil pinagsasama namin ang parehong mga pamamaraan na magkakaroon kami upang magsagawa ng 8-hakbang sa pamamaraang ito upang makakuha ng isang kumpletong pag-ikot. Ang pagkakasunud-sunod ng paglipat para sa isang 4-phase stepper motor na ipinakita sa ibaba
Hakbang |
Phase 1 (Asul) |
Phase 2 (Pink) |
Phase 3 (Dilaw) |
Phase 4 (Orange) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Samakatuwid, pinili mo na i-program ang iyong stepper motor sa anumang mode, ngunit mas gusto ko ang Dalawang Phase-on na pag-apak na Full Step Mode. Dahil ang pamamaraang ito ay naghahatid ng mas mabilis na bilis pagkatapos ng isang paraan ng isang bahagi at sa ihambing sa kalahating mode ang bahagi ng pag-cod ay mas mababa dahil sa mas kaunting bilang ng mga hakbang sa pamamaraang dalawang-bahagi.
Matuto nang higit pa tungkol sa mga stepper motor at mga mode dito
Lumilikha ng MATLAB Graphical User Interface para sa pagkontrol sa Stepper Motor
Pagkatapos kailangan nating bumuo ng GUI (Graphical User Interface) upang makontrol ang Stepper motor. Upang ilunsad ang GUI, i-type ang utos sa ibaba sa window ng command
gabay
Magbubukas ang isang popup window, pagkatapos ay pumili ng bagong blangko GUI tulad ng ipinakita sa imaheng nasa ibaba,
Pumili ngayon ng dalawang mga pindutan ng toggle para sa pag-ikot ng stepper Motor Clockwise at Anti-clockwise, tulad ng ipinakita sa ibaba,
Upang baguhin ang laki o upang baguhin ang hugis ng pindutan, mag-click lamang dito at magagawa mong i-drag ang mga sulok ng pindutan. Sa pamamagitan ng pag-double click sa pindutan ng toggle maaari mong baguhin ang kulay, string at tag ng partikular na pindutan. Na-customize namin ang dalawang mga pindutan tulad ng ipinakita sa larawan sa ibaba.
Maaari mong ipasadya ang mga pindutan ayon sa iyong pinili. Ngayon kapag na-save mo ito, nabubuo ang isang code sa window ng Editor ng MATLAB. Upang mai-code ang iyong Arduino para sa pagsasagawa ng anumang gawain na nauugnay sa iyong proyekto, palaging kailangan mong i-edit ang nabuong code na ito. Kaya sa ibaba ay na-edit namin ang MATLAB code. Maaari kang matuto nang higit pa tungkol sa window ng Command, window ng editor atbp sa pagsisimula sa tutorial ng MATLAB.
MATLAB Code para sa pagkontrol sa Stepper Motor na may Arduino
Ang kumpletong MATLAB code, para sa pagkontrol ng motor ng Stepper, ay ibinibigay sa pagtatapos ng proyektong ito. Dagdag dito ay isinasama namin ang GUI file (.fig) at code file (.m) dito para sa pag-download (pag-right click sa link pagkatapos ay piliin ang 'I-save ang link bilang…')), gamit kung saan maaari mong ipasadya ang mga pindutan ayon sa iyong kinakailangan. Nasa ibaba ang ilang mga pag-aayos na ginawa namin para sa pag-ikot ng Stepper Motor na pakaliwa at anticlockwise gamit ang dalawang mga toggle button.
Kopyahin at i-paste ang code sa ibaba sa linya no. 74 upang matiyak na ang Arduino ay nakikipag-usap sa MATLAB sa tuwing pinapatakbo mo ang m-file.
Alisin lahat; pandaigdigan a; a = arduino ();
Kapag nag-scroll ka pababa, makikita mo na mayroong dalawang mga pagpapaandar na nilikha para sa parehong mga Pindutan sa GUI. Ngayon isulat ang code sa parehong mga pag-andar ayon sa gawain na nais mong maisagawa sa pag-click.
Sa pagpapaandar ng pindutan ng Clockwise , kopyahin at i-paste ang code sa ibaba bago ang pagtatapos ng pagpapaandar upang paikutin ang motor sa direksyon sa direksyon ng relo. Para sa patuloy na pag-ikot ng stepper motor sa direksyon sa direksyon, gumagamit kami habang loop upang ulitin ang dalawang phase-on na hakbang sa buong mga hakbang sa mode para sa direksyon sa direksyon.
habang kumuha (hObject, 'Halaga') pandaigdigan a; isulatDigitalPin (a, 'D8', 1); isulatDigitalPin (a, 'D9', 0); isulatDigitalPin (a, 'D10', 0); isulatDigitalPin (a, 'D11', 1); pag-pause (0,0002); isulatDigitalPin (a, 'D8', 0); isulatDigitalPin (a, 'D9', 0); isulatDigitalPin (a, 'D10', 1); isulatDigitalPin (a, 'D11', 1); pag-pause (0,0002); isulatDigitalPin (a, 'D8', 0); isulatDigitalPin (a, 'D9', 1); isulatDigitalPin (a, 'D10', 1); isulatDigitalPin (a, 'D11', 0); pag-pause (0,0002); isulatDigitalPin (a, 'D8', 1); isulatDigitalPin (a, 'D9', 1); isulatDigitalPin (a, 'D10', 0); isulatDigitalPin (a, 'D11', 0); pag-pause (0,0002); tapusin
Ngayon sa pag - andar ng pindutan na Anti-clockwise , i-paste ang code sa ibaba sa ang pagpapaandar upang paikutin ang motor sa direksyon na laban sa relo. Para sa tuluy-tuloy na pag-ikot ng stepper motor sa direksyon laban sa pag-orasan, gumagamit kami habang loop upang ulitin ang dalawang yugto-sa pag-apak na buong mga hakbang sa mode para sa direksyon na laban sa pakaliwa.
habang kumuha (hObject, 'Halaga') pandaigdigan a; isulatDigitalPin (a, 'D8', 1); isulatDigitalPin (a, 'D9', 1); isulatDigitalPin (a, 'D10', 0); isulatDigitalPin (a, 'D11', 0); pag-pause (0,0002); isulatDigitalPin (a, 'D8', 0); isulatDigitalPin (a, 'D9', 1); isulatDigitalPin (a, 'D10', 1); isulatDigitalPin (a, 'D11', 0); pag-pause (0,0002); isulatDigitalPin (a, 'D8', 0); isulatDigitalPin (a, 'D9', 0); isulatDigitalPin (a, 'D10', 1); isulatDigitalPin (a, 'D11', 1); pag-pause (0,0002); isulatDigitalPin (a, 'D8', 1); isulatDigitalPin (a, 'D9', 0); isulatDigitalPin (a, 'D10', 0); isulatDigitalPin (a, 'D11', 1); pag-pause (0,0002); tapusin
Kinakailangan na Materyal
- Naka-install na MATLAB na Laptop (Kagustuhan: R2016a o mas mataas na mga bersyon)
- Arduino UNO
- Stepper Motor (28BYJ-48, 5VDC)
- ULN2003 - Stepper motor driver
Diagram ng Circuit
Pagkontrol ng Stepper Motor na may MATLAB
Matapos i-setup ang hardware alinsunod sa circuit diagram, mag-click lamang sa run button upang patakbuhin ang na-edit na code sa.m file
Ang MATLAB ay maaaring tumagal ng ilang segundo upang tumugon, huwag mag-click sa anumang mga pindutan ng GUI hanggang sa magpakita ang MATLAB ng abalang mensahe sa ibabang bahagi ng kaliwang sulok tulad ng ipinakita sa ibaba,
Kapag handa na ang lahat, mag-click sa pindutan ng pakaliwa o anticlockwise na pindutan upang paikutin ang motor. Habang gumagamit kami ng toggle button, ang stepper motor ay patuloy na lilipat sa direksyon sa direksyon hanggang sa pindutin muli ang pindutan. Katulad nito, sa pamamagitan ng pagpindot sa pindutan ng pag-toggle na anti-clockwise, ang motor ay nagsisimulang umiikot sa direksyon laban sa pakaliwa hanggang sa muli naming pindutin ang pindutan.