Conectarea motorului HDD la microcontroler, programarea microcontrolerelor pic

Conectarea motorului HDD la microcontroler, programarea microcontrolerelor pic

În hard disk-uri, de regulă, sunt utilizate motoare cu trei faze fără perii. Înfășurările motorului sunt conectate printr-o stea, adică obținem 3 ieșiri (3 faze). Unele motoare au 4 știfturi, în cadrul cărora se deduce în plus punctul mediu de conectare al tuturor înfășurărilor.







Pentru a desprinde motorul fără perii, este necesar, în ordinea corectă și în anumite momente în timp, în funcție de poziția rotorului, să se aplice tensiune înfășurărilor. Pentru a determina momentul trecerii la motor, sunt instalate senzorii halei, care joacă rolul de feedback.

În discurile dure se folosește un alt mod de determinare a timpului de comutare, în fiecare moment al timpului sunt conectate două surse la sursa de alimentare, iar a treia este utilizată pentru măsurarea tensiunii de la care se efectuează comutarea. 4-sârmă pentru acest exemplu de realizare, atât ieșire liberă disponibilă înfășurării, iar în cazul unui motor cu 3 pini creat in continuare punctul de mijloc virtual, cu ajutorul rezistoare conectate în stea și sunt conectate în paralel cu înfășurările motorului. Deoarece comutarea bobinelor se face prin poziția rotorului, există o sincronizare între viteza de rotație a rotorului și câmpul magnetic creat de înfășurările motorului. Încălcarea sincronizării poate duce la oprirea rotorului.

Conectarea motorului HDD la microcontroler, programarea microcontrolerelor pic

Există jetoane specializate, cum ar fi TDA5140, TDA5141, 42,43 și altele, destinate să controleze motoarele trifazate fără perii, dar nu le voi considera aici.

În cazul general, diagrama de comutație este de 3 semnale cu impulsuri de formă dreptunghiulară, deplasate în fază cu 120 de grade. În cea mai simplă versiune, motorul poate fi pornit fără feedback, dându-i doar 3 semnale dreptunghiulare (meander), deplasate cu 120 de grade, ceea ce am făcut. În timpul unei perioade de meander, câmpul magnetic creat de înfășurări face o revoluție completă în jurul axei motorului. Viteza de rotație a rotorului depinde de numărul de poli magnetici de pe el. Dacă numărul de poli este de două (o pereche de poli), rotorul se va roti la aceeași frecvență cu câmpul magnetic. În cazul meu, rotorul are 8 poli (4 perechi de poli), adică rotorul se rotește de 4 ori mai lent decât câmpul magnetic. Pentru cele mai multe unități de hard disk cu o viteză de rotație de 7200 rpm, rotorul ar trebui să aibă 8 poli, dar aceasta este doar presupunerea mea, deoarece nu am verificat o grămadă de hard disk-uri.

Conectarea motorului HDD la microcontroler, programarea microcontrolerelor pic

Dacă motorul este pulsat la frecvența necesară, în funcție de viteza dorită a rotorului, acesta nu se va roti. Aici avem nevoie de o procedură de accelerare, adică, vom aplica mai întâi impulsuri cu o frecvență joasă, apoi vom crește treptat la frecvența necesară. În plus, procesul de accelerare depinde de încărcarea arborelui.







Pentru a porni motorul, am aplicat microcontrolerul PIC16F628A. În secțiunea de putere există o punte trifazată pe tranzistoare bipolare, deși este mai bine să se utilizeze tranzistoare cu efect de câmp pentru a reduce disiparea căldurii. În subrutina procesorului de întrerupere se formează impulsuri dreptunghiulare. Pentru a obține 3 semnale deplasate în fază, se efectuează 6 întreruperi, astfel se obține o perioadă a meandrului. În programul microcontrolerului, mi-am dat seama de o creștere ușoară a frecvenței semnalului la o valoare specificată. Un total de 8 moduri cu frecvență setată diferită a semnalului: 40, 80, 120, 160, 200, 240, 280, 320 Hz. La 8 poli pe rotor se obțin următoarele viteze de rotație: 10, 20, 30, 40, 50, 60, 70, 80 rpm.

Conectarea motorului HDD la microcontroler, programarea microcontrolerelor pic

MK firmware și sursă + fișier proiect Proteus_7.7

Accelerația începe cu 3 Hz timp de 0,5 secunde, de data aceasta experimental necesar pentru rotorul de centrifugare inițială într-o direcție corespunzătoare, așa cum se întâmplă că rotorul este rotit cu un unghi mic în direcția opusă, dar apoi începe să se rotească în direcția corespunzătoare. Este pierdut momentul de inerție, iar dacă începe imediat frecvența în creștere, există desincronizat, rotorul în alternarea pur și simplu nu va ține pasul cu câmpul magnetic. Pentru a schimba direcția de rotație, trebuie doar să schimbați cele 2 faze ale motorului.

După 0,5 secunde, frecvența semnalului crește treptat până la valoarea specificată. Frecvența crește conform unei legi neliniare, rata de creștere a frecvenței crește în cursul accelerației. Timpul de accelerare al rotorului la vitezele specificate: 3,8; 7,8; 11,9; 16; 20.2; 26,3; 37,5; 48,2 secunde. În general, fără feedback, motorul accelerează rapid, timpul necesar de accelerație depinde de sarcina pe arbore, am efectuat toate experimentele fără a scoate discul magnetic ("pancake"), fără a putea accelera accelerația.

Modul buton de comutare SB1 este efectuată în timp ce modurile de afișare se face cu LED-uri HL1-HL3, informațiile sunt afișate în cod binar, HL3 - bit zero, HL2 - primul bit, HL1 - al treilea bit. Când toate LED-urile sunt stinse, pentru a primi numărul zero, acest lucru corespunde primului mod (40 Hz, 10 rot / sec), în cazul în care, de exemplu, LED-ul este aprins HL1, obține numărul 4, care corespunde celui de al cincilea mod (200 Hz, 50 rot / sec). Prin comutatorul SA1 pornim sau oprim motorul, comanda "Start" corespunde stării închise a contactelor.

Modul de viteză selectat poate fi scris pe EEPROM-ul microcontrolerului, pentru aceasta trebuie să țineți apăsat butonul SB1 timp de o secundă și toate LED-urile vor clipi, confirmând astfel înregistrarea. În mod implicit, când nu există scriere pe EEPROM, microcontrolerul intră în primul mod. Astfel, prin scrierea modului în memorie și prin poziționarea comutatorului SA1 în poziția "Start", este posibilă pornirea motorului pur și simplu alimentând aparatul.

Cuplul la motor este mic, ceea ce nu este necesar când lucrați pe hard disk. Odată cu creșterea sarcinii pe arbore, se produce disincronizarea și rotorul se oprește. În principiu, dacă este necesar, puteți atașa un senzor de viteză și, în absența unui semnal, opriți alimentarea și porniți din nou motorul.

Prin adăugarea a 3 tranzistoare la puntea trifazată, puteți reduce numărul de linii de comandă ale microcontrolerului la 3, după cum se arată în diagrama de mai jos.

Conectarea motorului HDD la microcontroler, programarea microcontrolerelor pic

MK firmware și sursă + fișier proiect Proteus_7.7

Articole recente:

Da, tot startul corect nu este stabil, deoarece nu există nici un feedback, am efectuat toate experimentele cu discul magnetic, ceea ce adaugă un moment de inerție la sistem, deci puteți avea o lansare diferită.

Utilizarea elementelor cu denumiri, deoarece nu afectează funcționarea schemei.

Diferențele dintre schemele cu șase și trei linii ale regulatorului nu sunt prezente, la trecerea de la un circuit la altul nimic nu se va schimba.

Am încercat cumva să desurubem motorul la 7200 rpm, dar din câte îmi amintesc că nu am reușit, poate că motivul se află la nivelul software-ului.

Acest circuit nu este proiectat pentru a conecta un motor cu un punct mediu, punctul de mijloc este necesar doar pentru măsurarea convenabilă a tensiunii pe bobină pentru feedback și nu am niciun feedback.

Dacă doriți stabilitate, încercați să utilizați drivere specializate cum ar fi TDA5140, TDA5141







Trimiteți-le prietenilor: