Controlați motorul pas cu pas unipolar cu ajutorul unui USB PC, platforma de conținut

*, Student de 4 ani al Facultății de tehnologie și educație profesională pedagogică, T-PROI101, Academia de Stat Altai de Educație numit. Orașul Biysk.







*, Profesor asociat al Departamentului de Fizică și Informatică, Academia de Stat Altai de Educație numită. Orașul Biysk.

*, lector senior de la Departamentul de Fizică și Informatică, Altai Academia de Stat de Educație numit după. Orașul Biysk.

GESTIONAREA UNUI MOTOR MOVED UNIPOLAR, CU AJUTORUL UNUI COMPUTRU PERSONAL USB

Cuvinte cheie: motor pas cu pas, driver de motor pas cu pas, driver USBasp, placă de dezvoltare AVR-USB-MEGA16, microcontrolerATMEGA32, libraryLibUSB.

Articolul se referă la problema controlului unui motor pas cu pas unipolar prin portul USB al unui computer personal. Sarcina este de a gestiona motorul pas cu pas folosind computerul personal USB și driverul. Ca parte a acestei lucrări propune o soluție la această problemă prin intermediul: un șofer cu motor pas cu pas care constă dintr-un breadboard AVR-USB-MEGA16 și modulul de alimentare pe bază de tranzistori, sistem programmirovaniyaDelphi, bibliotecă suplimentară pentru programmirovaniyaLibUSB și firmware pentru șofer mikrokontrolleraATMEGA32 USBasp.

Motorul pas cu pas este utilizat pe scară largă într-o varietate de moduri: în dispozitivele periferice de mașini de calcul, aparatul de înregistrare în serie, două coordonate XY-plotter, în mașini-unelte cu comandă numerică, XY-mese și rotative mese, mașini de frezat, mașini de desen și alte aplicații. Lucrarea se ocupă cu un sistem de control al unui motor pas cu pas prin intermediul PC-ului USB și metoda de asamblare.

Pentru a implementa acest sistem, trebuie să vă pregătiți să funcționeze panoul AVR-USB-MEGA16 [1].

Primul lucru pe care trebuie să-l faceți este să bligeți tabla. Este echipat cu bootloader bootloadHID, care îi va permite să clipească prin USB. Pentru aceasta, instalați un jumper între picioarele 4 și 6 ale conectorului U1 ISP și conectați cardul la computerul personal prin USB. Se va aprinde un LED roșu iar Windows va detecta un programator USBasp. După aceea, executați programul pentru microcontrolerul firmware și încărcați firmware-ul pentru ATMEGA32 cu frecvența necesară [2], care clipește. Dezactivați placa de dezvoltare AVR-USB-MEGA16 și scoateți jumper-ul.

În al doilea rând, trebuie să instalați driverul USBaps [3] al cardului, dacă acesta nu se află pe calculatorul personal pe care lucrați. Reconectați cardul la computerul USB și detectează un dispozitiv nou. Dacă driverul nu este instalat pe acesta, nu îl va putea detecta. Pentru a recunoaște manual cardul prin managerul de dispozitiv, instalați driverul. Acum, consiliul este pe deplin operațional.

Modulul de putere al sistemului constă din patru tranzistoare (KT972B), patru rezistoare (330 ohmi) și patru diode (1N4001S). Ele sunt legate între ele în conformitate cu următoarea schemă (Figura 1) [2].







Controlați motorul pas cu pas unipolar cu ajutorul unui USB PC, platforma de conținut

Fig. 1. Diagrama modulului de alimentare

Modulul de alimentare funcționează în conformitate cu următoarea schemă. Când unul dintre tranzistori este deschis, curentul va curge prin înfășurarea corespunzătoare a motorului pas cu pas. Pentru a controla tranzistoarele, se utilizează ieșirile libere ale microcontrolerului AVR-USB-MEGA16.

tranzistori de tip depinde de cablul de alimentare al motorului, tensiunea de alimentare și porturile sale microcontroler de capacitate portantă. În acest design tranzistori utilizat KT972B având suficient câștig curent, cu admis tensiunea colector-emitor la 45 V, colectorul de curent - la 4 A.

Deoarece sarcina inductivă în circuit sunt diode de protecție. Am folosit 1-tensiune diode 1N4001S, dar puteți face fără ele. diode de protecție downslope creștere a timpului în înfășurările motorului pas cu pas, ceea ce reduce viteza maximă posibilă a motorului pas cu pas. Dacă eliminați diode, în timp ce actuala recesiune va fi minim, motorul este capabil să se rotească mai repede, dar există un pericol de emisii EMF auto-induse de tranzistori care pot depăși stresul admisibil pentru ei 45 V.

Colectăm totul în conformitate cu schema prezentată în figura 1, iar partea tehnică a lucrării se termină aici.

Înainte de a începe dezvoltarea algoritmului de control, este necesar să instalați o bibliotecă suplimentară LibUSB pe calculatorul personal [4]. Este instalat ca un program normal. După aceea, în mediul de programare Delphi, creați sau luați modulul suplimentar LibUSB [2] pentru bibliotecă. Acum, să începem să scriem partea generală a programului în sine. Partea generală include funcțiile: obținerea secvenței ASCII, deschiderea dispozitivului USB și trimiterea de mesaje către controler prin USB. Partea generală poate fi de asemenea luată din sursă [2].

Trimiterea unui mesaj către placa de dezvoltare prin USB se face prin intermediul funcției SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 1, aPORTA, 0, date);

SendUSBControlMessage ... este numele funcției.

... PC2USB ... - mesajul este trimis de la computerul personal la USB.

... RQ_IO_WRITE ... este o comandă de scriere.

1. - ce este scris în microcontroler.

... aPORTA, ... - unde scriem sau numele portului microcontrolerului.

... 0, date - ce este scris în clipboard-ul microcontrolerului.

Caracteristica de mai sus ia tensiunea este de 5 volți la liber de ieșire P1 breadboard AVR-USB-MEGA16. SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 2, aPORTA, 0, date) - ia tensiunea la P2 de ieșire, iar P1 nu va energizat, din 2 în notație binară 0,010, 0 mergeți la P1, și 1-P2. Pentru a activa P1 și P2, în același timp suficient pentru a scrie SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 3, aPORTA, 0, date). 3 în notația binară este 0011. Pentru a reseta tensiunea pe toate ieșirile "Port A" trebuie să utilizați comanda SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 0, aPORTA, 0, date).

Utilizând această funcție, atribuim o activare secvențială a înfășurărilor motorului pas cu pas. În același timp, ne bazăm pe secvența de control prezentată în tabelele 1 și 2.

Secvența de control pentru etapa completă

O jumătate de pas. Cu o astfel de secvență de control, rotorul are nevoie de 96 de impulsuri pentru a finaliza o revoluție completă (360 de grade). Fiecare puls mișcă rotorul la aproximativ 3,75 grade.

Circuitul de mai sus vă permite să controlați motorul pas cu pas prin intermediul unui PC, prin interfața USB. În [5], este luată în considerare utilizarea acestui sistem pentru controlul unui complex de baterii solare, ceea ce face posibilă creșterea eficienței acestora cu 30%.







Articole similare

Trimiteți-le prietenilor: