- Stepper Motor:
- ULN2003 Stepper Motor Driver:
- Mga Kinakailangan na Bahagi
- Circuit Diagram at Paliwanag
- Paliwanag sa Code
Ang Stepper Motor ay isang espesyal na idinisenyong motor na paikutin sa mga hakbang. Ang bilis ng stepper motor ay nakasalalay sa rate ng electrical signal na inilapat dito. Ang magkakaibang mga pattern ay maaaring makontrol ang direksyon at uri ng pag-ikot ng stepper motor. Pangunahin ang dalawang uri ng mga stepper motor ay magagamit, Unipolar at Bipolar. Ang Unipolar ay mas madaling patakbuhin, kontrolin at mas madaling makuha din. Dito sa tutorial na ito ay nakikipag-ugnay kami sa Stepper Motor sa PIC Microcontroller PIC16F877A.
Gumagamit kami ng 28BYJ-48 stepper motor para sa proyektong ito na mura at madaling magagamit. Ito ay 5V DC unipolar stepper motor. Gumagamit din kami ng magagamit na Module sa motor na ito na binubuo ng ULN2003 Stepper Motor Driver IC. Ang ULN2003 ay isang Darlington pares na array, na kung saan ay kapaki-pakinabang upang himukin ang motor na ito, dahil ang PIC microcontroller ay hindi maaaring magbigay ng sapat na kasalukuyang upang magmaneho. Ang ULN2003A ay may kakayahang magmaneho ng 500mA ng pagkarga na may 600mA ng kasalukuyang rurok.
Stepper Motor:
Tingnan natin ang pagtutukoy ng 28BYJ-48 Stepper Motor mula sa datasheet.
Paano paikutin ang Stepper Motor:
Kung nakikita natin ang datasheet makikita natin ang pin-out.
Sa loob ng motor ay may magagamit na dalawang gitnang naka-tap na coil. Ang pulang kawad ay karaniwan para sa pareho na makokonekta sa VCC o 5V.
Ang iba pang 4 na wires na rosas, pula, dilaw at asul ay makokontrol ang pag-ikot depende sa signal ng elektrisidad. Gayundin, depende sa paggalaw, ang motor na ito ay maaaring makontrol gamit ang 3 mga hakbang. Full drive mode, Half Drive mode at Wave drive mode.
Tatlong Mga Mode ng Pagmamaneho ng Stepper Motor:
Buong Drive: Kung ang dalawang stator electromagnets ay pinalakas sa bawat oras, ang motor ay tatakbo sa buong metalikang kuwintas na tinutukoy bilang mode ng pagkakasunud-sunod ng full-drive.
Hakbang |
Bughaw |
Kulay rosas |
Dilaw |
Kahel |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive: Kapag kahalili isa at dalawang phase ay pinalakas, ang motor ay tatakbo sa kalahating drive mode. Ginagamit ito upang madagdagan ang angular na resolusyon. Ang drawback ay hindi gaanong metalikang kuwintas na ginawa sa kilusang ito.
Hakbang |
Bughaw |
Kulay rosas |
Dilaw |
Kahel |
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 |
Wave Drive: Sa mode na ito, naka-on ang isang stator electromagnet. Sumusunod ito sa 4 na mga hakbang na katulad ng Full-drive mode. Naubos nito ang mababang lakas na may mababang metalikang kuwintas.
Hakbang |
Bughaw |
Kulay rosas |
Dilaw |
Kahel |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Na-interfaced namin ang Stepper Motor sa iba pang mga Microcontroller:
Ang stepper motor ay maaari ring kontrolin nang walang anumang Microcontroller, tingnan ang Stepper Motor Driver Circuit na ito.
ULN2003 Stepper Motor Driver:
Unawain natin ang break out board na binubuo ng ULN2003 IC. Mahalagang maunawaan ang pin out.
Ang dilaw na bahagi ay ginagamit upang ikonekta ang motor, Ang Pula na bahagi ay nagpapakita ng isang lumulukso, Mahalagang ilagay ang jumper dahil paganahin nito ang proteksyon ng freewheeling diode para sa motor . Ang pink na input ay para sa koneksyon ng microcontroller.
Paikutin namin ang motor sa buong mode ng drive sa orasan na matalinong direksyon at muli itong paikutin gamit ang mode ng drive drive sa direksyon na kontra-relo. Suriin ang demonstration Video sa dulo.
Mga Kinakailangan na Bahagi
- Pic16F877A
- Programing kit
- Breadboard
- 20Mhz Crystal
- 33pF disc capacitor - 2pcs
- 4.7k risistor
- Berg wires at pin
- Breakout board ng ULN2003A kasama ang 28BYJ-48 Stepper motor.
- Karagdagang mga wire upang kumonekta
- 5V power supply unit o wall adapter na may rating na 500mA
Circuit Diagram at Paliwanag
Sa circuit diagram, sa kaliwang bahagi ang PIC16F877A ay ipinapakita at sa kanang bahagi ay nagpapakita ang koneksyon ng ULN2003A. Ang bahagi ng ULN2003 at ang Stepper motor ay nasa loob ng breakout board.
Ang Koneksyon mula sa Breakout board papunta sa unit ng microcontroller ay-
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Ikinonekta ko ang lahat ng mga bahagi at iyong hardware upang paikutin ang Stepper motor na may PIC microcontroller na handa na.
Kung bago ka sa PIC Microcontroller kaysa sundin ang aming Mga Tutorial sa PIC Microcontroller na nagsasaad sa Pagsisimula sa PIC Microcontroller.
Paliwanag sa Code
Ang buong code para sa nakabatay sa PIC na Stepper Motor Driver na ito ay ibinigay sa pagtatapos ng tutorial na ito na may isang Demonstration Video. Tulad ng lagi na una, kailangan naming itakda ang mga config bit sa pic microcontroller at pagkatapos ay magsimula sa walang bisa na pangunahing pagpapaandar.
Ito ang macros para sa mga config bit ng unit ng microcontroller at mga file ng header ng library.
#define _XTAL_FREQ 200000000 // Crystal Frequency, ginamit sa pagkaantala #define speed 1 // Speed Range 10 to 1 10 = pinakamababa, 1 = kataas-taasang #tukoy ang mga hakbang na 250 // kung gaano karaming hakbang ang tatagal ng # tukuyin nang pakaliwa 0 // direksyon sa direksyon. macro # tukuyin ang anti_clockwise 1 // anti na direksyon sa direksyon nang direksyon sa macro
Sa unang linya tinukoy namin ang dalas ng kristal na kinakailangan para sa pagkaantala ng gawain. Ginagamit ang iba pang mga macros upang tukuyin ang mga pagpipilian na nauugnay sa gumagamit.
Kung nakikita mo ang code, mayroong tatlong mga pag-andar na tinukoy para sa pagmamaneho ng motor sa tatlong mga mode na may orasan na marunong sa orasan at laban sa orasan. Narito ang tatlong mga pag-andar:
1. walang bisa full_drive (direksyon ng char)
2. walang bisa half_drive (direksyon ng char)
3. walang bisa wave_drive (direksyon ng char)
Suriin ang mga kahulugan ng mga pagpapaandar na ito sa kumpletong code na ibinigay sa ibaba:
Ngayon sa walang bisa na pangunahing pag- andar, hinihimok namin ang motor nang paikot gamit ang full-drive mode depende sa mga hakbang at pagkatapos ng ilang segundo na pagkaantala ay paikutin namin ulit ang motor na anti-clockwise gamit ang wave drive mode.
void main (void) { system_init (); habang (1) { / * Magmaneho ng motor sa buong drive mode na pakaliwa * / para sa (int i = 0; i
Ito ay kung paano namin maiikot ang stepper motor na may PIC Microcontroller. Ang Stepper Motors ay lubhang kapaki-pakinabang sa mga machine ng CNC, robotics at iba pang naka-embed na application.