Talaan ng mga Nilalaman:

Serial Controlled Variable Speed Motor: 6 na Hakbang
Serial Controlled Variable Speed Motor: 6 na Hakbang

Video: Serial Controlled Variable Speed Motor: 6 na Hakbang

Video: Serial Controlled Variable Speed Motor: 6 na Hakbang
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Hulyo
Anonim
Serial Controlled Variable Speed Motor
Serial Controlled Variable Speed Motor

Kontrolin ang bilis ng isang maliit na DC motor na walang anuman kundi ang serial port sa iyong computer, isang solong MOSFET, at ilang walang gaanong software. (Ang MOSFET at ang serial port ay bumubuo sa "speed control"; kakailanganin mo pa rin ang isang motor at isang naaangkop na supply ng kuryente para sa motor na iyon; habang ang serial port ay maaaring magbigay ng boltahe upang i-on at i-off ang isang mosfet, maaari itong ' t magbigay ng kasalukuyang kinakailangan ng isang karaniwang motor.)

Hakbang 1: Tingnan ang Circuit

Tingnan ang Circuit
Tingnan ang Circuit

Gagawin namin ang Pulse Width Modulation gamit ang isang generic na N-channel power MOSFET na konektado sa Transmit data pin mula sa port ng rs232 ng computer. Kapag ang serial port ay idle, ang pin ay uupo sa estado na "1", na sa oras na isinalin ito sa rs232, ay tulad ng -12V (depende sa mga driver, maaaring mas malapit ito sa -9V o -5V), at ang transistor ay magiging lubos na OFF. Kapag nagpapadala kami ng "0" na mga piraso sa serial port, ang pin na rs232 ay pupunta sa + 12V o higit pa, na sapat upang mai-on nang maayos ang karamihan sa mga mosfet.

Kung magpapadala kami ng maraming "0" bis nang magkakasunod, ang motor ay malapit sa ganap na ON at mabilis na tatakbo ang motor. Kung magpapadala kami ng halos "1" na mga piraso, ang motor ay tatakbo nang mas mabagal.

Hakbang 2: Wire It Up

Wire It Up
Wire It Up

Dahil mayroon lamang isang solong bahagi at kaunting koneksyon lamang, maaari mo lamang idagdag ang mga wire na "freeform."

Ang mga MOSFET ay static sensitve, kaya't maging maingat, ngunit kaunti ang kritikal.

Hakbang 3: I-set Up ang Mga File Sa Mga Halaga ng PWM

I-set up ang Mga File Sa Mga Halaga ng PWM
I-set up ang Mga File Sa Mga Halaga ng PWM

Ang isang paraan upang makontrol ang motor nang hindi kinakailangang magsulat ng ANUMANG software ay upang maghanda ng ilang mga file na naglalaman ng naaangkop na mga byte (na may higit pa o mas mababa sa 0 bits), at simpleng COPY ang mga ito sa COM port kung saan nakakonekta ang motor. Naghanda ako ng maraming mga file (gamit ang mga emac, ngunit anuman ang gumagana para sa iyo ay mabuti):

  • 0.pwm:: naglalaman ng 5000 mga character na Null (control-space sa karamihan ng mga keyboard) [br] Ito ay malapit sa "buong bilis" dahil makukuha namin ang diskarteng ito.
  • 1.pwm:: naglalaman ng 5000 control-A na mga character (ascii 01) (isang "1" bit bawat char)
  • 3.pwm:: naglalaman ng 5000 control-C character (ascii 03) (dalawang "1" bits bawat char)
  • 7.pwm:: naglalaman ng 5000 control-G character (ascii 07) (tatlong "1" bits bawat char)
  • 15.pwm:: naglalaman ng 5000 control-O character (ascii 15) (apat na "1" na bit bawat char)
  • 31.pwm:: naglalaman ng 5000 control-_ character (ascii 31) (limang "1" bits bawat char)
  • 63.pwm:: naglalaman ng 5000 "?" mga character (ascii 63) (anim na "1" na piraso bawat character)
  • 127.pwm:: naglalaman ng 5000 mga character na DEL (ascii 127) (pitong "1" na mga piraso bawat karakter)

(Ngayon na gumuhit ako ng mga larawan, mapapansin mo na ang tunay na mga pattern ng bit ay hindi perpekto. Dahil ang serial na rs232 ay nagpapadala muna ng LSB, nais talaga naming ilipat ang mga zero sa halip na mga. Isang ehersisyo para sa mag-aaral!)

Hakbang 4: I-play Sa DOS: I-configure ang Iyong COM Port at Kopyahin ang Mga File

I-play Sa DOS: I-configure ang Iyong COM Port at Kopyahin ang Mga File
I-play Sa DOS: I-configure ang Iyong COM Port at Kopyahin ang Mga File

Ang 9600 bps ay isang pangkaraniwang bitrate. Maayos itong tumutugma sa "halos" isang byte bawat millisecond, kaya sa kasong ito ay corosponds ito sa isang dalas ng PWM na 1000Hz, na sa palagay ko ay ok para sa mga maliit na motor. Maaari kang mag-eksperimento sa iba't ibang mga rate ng bit upang makita kung paano gumagana ang mga bagay, na kung saan ay isa sa mga pakinabang ng pamamaraang ito. Lumikha ng isang window ng DOS (o "Command prompt") (ipinapalagay na gumagamit ka ng isang windows OS), at i-configure ang iyong com port tulad ng: mode com1: 9600, n, 7, 1 "Sinasabi nito sa comm port na tumakbo sa 9600bps, at magpadala ng 7 bits sa bawat character (upang tumugma sa aming 7 magkakaibang haba.) Ang" n "ay nangangahulugang WALANG pagkakapantay-pantay, kaya't ang mga iyon ay magiging tanging mga bits ng data. Ang "1" ay nangangahulugang magkakaroon ng isang "hintuan" na bit, na makakapigil sa amin na buksan ang motor hanggang sa lahat (oh well.) Kaya ngayon maaari mong i-on ang motor na may mga utos tulad ng: kopyahin 0.pwm com1: Dahil nagpapadala kami ng 5000 mga character nang halos 1 bawat millisecond, dapat na i-on ng motor ang malapit sa buong bilis ng halos 5 segundo. Kung nais mo ng mas mababa sa 5 segundo, gumawa ng isang mas maikling file. Katulad nito, maaari mong gawin: kopyahin ang 127.pwm com1: upang patakbuhin ang motor sa pinakamababang posibleng bilis. Sa pag-setup na mayroon ako, ang motor ay hindi talaga lumiliko sa anumang "mas mabagal" kaysa sa 31pwm, ngunit YMMV (payat ako k Mayroon akong 12V motor na tumatakbo sa 5V ng mga baterya.) Hinahayaan ka ng utos ng COPY na mag-string ng mga file nang sama-sama, kaya kung nais mong bumilis ang iyong motor at pagkatapos ay bumagal muli, maaari kang gumawa tulad ng: kopyahin ang 31.pwm + 15. pwm + 7.pwm + 0.pwm + 7.pwm + 15.pwm + 31.pwm com1:

Hakbang 5: Kontrolin ang Motor Mula sa Isang Program

Kontrolin ang Motor Mula sa Isang Programa
Kontrolin ang Motor Mula sa Isang Programa

Kung nagsusulat ka ng isang programa, maaari mong buksan ang COM1: bilang isang file at sumulat lamang dito na para bang ibang file. Ang kakayahang i-oras ang mga panahon na ang motor ay nasa pamamagitan ng pag-output ng isang partikular na bilang ng mga character ay tila napaka-madaling gamiting. Huwag kalimutan na ang system ay malamang na map buffer ang mga character na ipinadala mo sa serial port, kaya dahil lamang sa isang pagbalik ng WRITE call ay hindi nangangahulugang natapos na ng motor ang anumang sinabi mo rito. Dahil wala kaming ginawang "magarbong" gamit ang mga signal ng com port, hindi mo dapat na imbestigahan ang mga pagpipilian sa arcane na maaaring suportahan nito. (bagaman, kung maaari mong malaman kung paano magpadala ng isang pagkakasunud-sunod ng BREAK sa com port, iyon ay isang tuluy-tuloy na "0" na estado, at tatakbo sa motor LAHAT ng paraan; higit pa sa pagpapadala ng tuluy-tuloy na 0 character.)

Kung hindi ka pinapayagan ng iyong wika ng programa na mag-output sa COM1:, maaari mo pa ring makontrol ang motor sa pamamagitan ng "pagtawag sa" DOS upang gumawa ng mga kopya ng utos. (OK. Na-download ko ang Visual Basic Express ng Microsoft 2005 (na libre) at pinamamahalaang itali ang isang pahalang na scroll bar sa bilis ng motor, kinokontrol sa pamamagitan ng serial port. Zip na nakakabit. Marahil ay mayroong higit sa kinakailangan upang madoble ang programa sa iyong system, ngunit hindi ko mawari nang eksakto kung aling mga piraso ang kinakailangan. Ang programa ay kapwa pinasimple at ginawang mas mahirap unawain (paumanhin) sa pamamagitan ng pagiging multi-thread. Ang isang thread ay walang ginawa kundi ang output sa serial port, at ang binabasa ng pangunahing thread ang scroll bar at ina-update ang impormasyon na ginamit ng serial thread.)

Hakbang 6: Eksperimento

Eksperimento!
Eksperimento!

Kung ang mga bagay ay karaniwang gumagana, nagbibigay ito ng isang kakila-kilabot na maraming silid para sa eksperimento.

  • Ayusin ang aking mga pattern ng bit!
  • Mahalaga ba ang bitrate?
  • Kailangan mo bang makontrol ang lapad ng "on" at "off" na mga pulso, o simpleng kontrolin ang kanilang ratio na sapat?
  • Kung kakailanganin mo lamang kontrolin ang ratio, maaari mong isaalang-alang ang mga pagkakasunud-sunod ng multi-character sa mas mataas na mga rate ng bit upang makakuha ng mas maraming mga antas ng bilis. Ang output 0 na sinusundan ng 127 ay halos kalahati sa.
  • Dapat itong gumana para sa pagpapalabo ng mga bombilya ng flashlight, masyadong.

Inirerekumendang: