Cuprins:

Motor cu viteză variabilă controlată în serie: 6 pași
Motor cu viteză variabilă controlată în serie: 6 pași

Video: Motor cu viteză variabilă controlată în serie: 6 pași

Video: Motor cu viteză variabilă controlată în serie: 6 pași
Video: EPURATOR INFUNDAT Audi A4 B7 1.9 TDI BRB DPF 2007 2024, Iulie
Anonim
Motor cu viteză variabilă controlată în serie
Motor cu viteză variabilă controlată în serie

Controlați viteza unui mic motor DC fără nimic altceva decât portul serial de pe computer, un singur MOSFET și un software banal. (MOSFET și portul serial alcătuiesc „controlul vitezei”; veți avea în continuare nevoie de un motor și de o sursă de alimentare adecvată pentru acel motor; în timp ce portul serial poate furniza tensiunea pentru a porni și opri un mosfet, poate alimentați curentul necesar unui motor tipic.)

Pasul 1: Uită-te la circuit

Uită-te la Circuit
Uită-te la Circuit

Vom face Modularea lățimii impulsurilor folosind un MOSFET generic de putere N-canal conectat la pinul de date Transmit din portul RS232 al computerului. Când portul serial este inactiv, pinul va sta la starea „1”, care până când este tradus la rs232, este ceva de genul -12V (în funcție de drivere, ar putea fi mai aproape de -9V sau -5V) și tranzistorul va fi destul de OPRIT. Când transmitem "0" biți pe portul serial, pinul RS232 va merge la + 12V sau cam așa ceva, ceea ce este suficient pentru a porni destul de bine majoritatea mosfetelor.

Dacă transmitem o mulțime de "0" bis la rând, motorul va fi aproape complet pornit și motorul va funcționa rapid. Dacă transmitem în mare parte „1” biți, motorul va funcționa mai încet.

Pasul 2: conectați-l

Wire It Up
Wire It Up

Întrucât există doar o singură componentă și doar câteva conexiuni, puteți adăuga firele „freeform”.

MOSFET-urile sunt sensibile static, deci fiți puțin atenți, dar foarte puțin este esențial.

Pasul 3: Configurați fișiere cu valori PWM

Configurați fișiere cu valori PWM
Configurați fișiere cu valori PWM

O modalitate de a controla motorul fără a fi nevoie să scrieți ORICE software este pregătirea unor fișiere care conțin octeți corespunzători (cu mai mult sau mai puțin 0 biți) și pur și simplu COPIAȚI-le în portul COM unde aveți motorul conectat. Am pregătit mai multe fișiere (folosind emacs, dar orice funcționează pentru dvs. este bine):

  • 0.pwm:: conține 5000 de caractere NULL (spațiu de control pe majoritatea tastaturilor) [br] Acest lucru este la fel de aproape de „viteza maximă” pe care îl vom putea obține cu această tehnică.
  • 1.pwm:: conține 5000 de caractere control-A (ascii 01) (un bit "1" pe caracter)
  • 3.pwm:: conține 5000 de caractere control-C (ascii 03) (doi biți "1" pe caracter)
  • 7.pwm:: conține 5000 de caractere control-G (ascii 07) (trei biți "1" pe caracter)
  • 15.pwm:: conține 5000 de caractere control-O (ascii 15) (patru biți "1" pe caracter)
  • 31.pwm:: conține 5000 de caractere control-_ (ascii 31) (cinci biți "1" pe caracter)
  • 63.pwm:: conține 5000 "?" caractere (ascii 63) (șase biți "1" pe caracter)
  • 127.pwm:: conține 5000 caractere DEL (ascii 127) (șapte biți "1" pe caracter)

(Acum că am desenat imagini, veți observa că modelele reale de biți nu sunt ideale. Deoarece seria rs232 transmite mai întâi LSB, vrem cu adevărat să ne deplasăm în zerouri în loc de altele. O exercițiu pentru elev!)

Pasul 4: Joacă-te cu DOS: configurează-ți portul COM și copiază fișierele

Jucați-vă cu DOS: configurați portul COM și copiați fișierele
Jucați-vă cu DOS: configurați portul COM și copiați fișierele

9600 bps este un bitrate obișnuit. Se potrivește frumos cu „aproximativ” un octet pe milisecundă, așa că, în acest caz, corespunde unei frecvențe PWM de 1000Hz, care cred că ar trebui să fie ok pentru motoarele mici. Puteți experimenta cu diferite rate de biți pentru a vedea cum funcționează lucrurile, care este unul dintre avantajele acestei metode. Creați o fereastră DOS (sau „prompt de comandă”) (presupunând că utilizați un sistem de operare Windows) și configurați portul: mode com1: 9600, n, 7, 1 "Asta spune portului de comunicare să ruleze la 9600bps și să trimită 7 biți în fiecare caracter (pentru a se potrivi cu cele 7 lungimi de biți diferite ale noastre.)" N "înseamnă NO paritate, deci aceia vor fi singurii biți de date. „1” înseamnă că va exista un bit de „oprire”, care ne va împiedica să pornim motorul până la capăt (oh bine.) Deci, acum puteți porni motorul cu comenzi cum ar fi: copiați 0.pwm com1: Deoarece trimitem 5000 de caractere la aproximativ 1 pe milisecundă, motorul ar trebui să pornească aproape de viteza maximă timp de aproximativ 5 secunde. Dacă doriți mai puțin de 5 secunde, faceți un fișier mai scurt. În mod similar, puteți face: copiați 127.pwm com1: pentru a rula motorul la cea mai mică viteză posibilă. Cu configurarea pe care am avut-o, motorul nu se va întoarce deloc cu nimic „mai lent” decât 31.pwm, dar YMMV (eu subțire k Am avut un motor de 12V care scotea 5V de baterii.) Comanda COPY vă permite să înșirați fișiere împreună, deci dacă doriți ca motorul dvs. să accelereze și apoi să încetinească din nou, puteți face ceva de genul: copiați 31.pwm + 15. pwm + 7.pwm + 0.pwm + 7.pwm + 15.pwm + 31.pwm com1:

Pasul 5: Controlați motorul dintr-un program

Controlați motorul dintr-un program
Controlați motorul dintr-un program

Dacă scrieți un program, probabil că puteți deschide COM1: ca fișier și pur și simplu să-i scrieți ca și cum ar fi orice alt fișier. A fi capabil să cronometreze perioadele de pornire a motorului prin emiterea unui anumit număr de caractere pare a fi foarte la îndemână. Nu uitați că este foarte probabil ca sistemul să tamponeze caracterele pe care le trimiteți la portul serial, deci doar pentru că revine un apel WRITE nu înseamnă că motorul a terminat de făcut tot ce i-ați spus. Deoarece nu facem nimic „fantezist” cu semnalele portului de comutare, nu ar trebui să investigați opțiunile arcane pe care le-ar putea suporta. (deși, dacă vă dați seama cum să trimiteți o secvență BREAK la portul de comutare, aceasta este o stare continuă „0” și va conduce motorul TOAT până la capăt; mai mult decât trimiterea continuă a 0 caractere.)

Dacă limbajul dvs. de programare nu vă permite să ieșiți la COM1:, este posibil să puteți controla motorul „apelând” DOS pentru a face comenzi de copiere. (OK. Am descărcat Visual Basic Express 2005 de la Microsoft (care este gratuit) și am reușit să leg o bară de defilare orizontală la viteza motorului, controlată prin portul serial. Zip atașat. Probabil că are mai mult decât trebuie pentru a duplica programul pe sistemul dvs., dar nu mi-am putut da seama exact de ce biți erau necesari. Programul este simplificat și este mai dificil de înțeles (îmi pare rău) prin faptul că este multi-threaded. firul principal citește bara de derulare și actualizează informațiile folosite de firul serial.)

Pasul 6: Experimentați

Experiment!
Experiment!

Dacă lucrurile funcționează practic, acest lucru oferă mult spațiu pentru experimentare.

  • Remediați tiparele mele de biți!
  • Contează mult bitrate-ul?
  • Trebuie să controlați lățimea impulsurilor „on” și „off” sau pur și simplu controlul raportului lor este suficient?
  • Dacă trebuie doar să controlați raportul, puteți lua în considerare secvențe de mai multe caractere la rate de biți mai mari pentru a obține mai multe niveluri de viteză. Ieșirea 0 urmată de 127 ar fi aproximativ jumătate activată.
  • Acest lucru ar trebui să funcționeze și pentru diminuarea becurilor lanternei.

Recomandat: