Cuprins:
- Pasul 1: Diagrama blocului de sistem
- Pasul 2: Proiectarea decodorului rotativ SLG46108
- Pasul 3: Proiectare controler ventilator SLG46826
- Pasul 4: Generarea PWM cu contoare offset
- Pasul 5: Controlul ciclului de funcționare cu injecție de ceas și omiterea ceasului
- Pasul 6: Introducere BUTON
- Pasul 7: Prevenirea răsturnării ciclului de funcționare
- Pasul 8: Controlul ciclului de funcționare cu I2C
- Pasul 9: citirea tahometrului
- Pasul 10: Proiectarea circuitului extern
- Pasul 11: Proiectare PCB
- Pasul 12: Aplicație C #
Video: Control DIY PWM pentru ventilatoare PC: 12 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Acest instructabil descrie construirea unui controler PWM complet cu 12 V ventilator PC. Designul poate controla până la 16 ventilatoare cu 3 pini. Designul folosește o pereche de circuite integrate cu semnal mixt configurabile Dialog GreenPAK ™ pentru a controla ciclul de funcționare al fiecărui ventilator. De asemenea, include două moduri de a schimba viteza ventilatorului:
A. cu un codor în cuadratură / rotativ
b. cu o aplicație Windows încorporată în C # care comunică cu GreenPAK prin I2C.
Mai jos am descris pașii necesari pentru a înțelege modul în care cipul GreenPAK a fost programat pentru a crea controlul PWM pentru fanii PC-ului. Cu toate acestea, dacă doriți doar să obțineți rezultatul programării, descărcați software-ul GreenPAK pentru a vizualiza fișierul de proiectare GreenPAK deja finalizat. Conectați kitul de dezvoltare GreenPAK la computer și apăsați programul pentru a crea un IC personalizat pentru controlul PWM pentru fanii de PC.
Pasul 1: Diagrama blocului de sistem
Pasul 2: Proiectarea decodorului rotativ SLG46108
Un codificator rotativ este utilizat pentru a mări sau micșora ciclul de lucru al ventilatoarelor manual. Acest dispozitiv emite impulsuri pe ieșirile sale Canal A și Canal B, care sunt la o distanță de 90 °. Consultați AN-1101: Decodor de cuadratură deblocat pentru mai multe informații despre modul în care funcționează un codificator rotativ.
Un decodor rotativ cu ceas poate fi creat folosind un Dialog GreenPAK SLG46108 pentru a procesa semnalele Canal A și Canal B și a le transmite ca impulsuri în sens invers acelor de ceasornic (CCW) și în sensul acelor de ceasornic (CW).
Când Canalul A conduce Canalul B, designul emite un impuls scurt pe CW. Când Canalul B conduce Canalul A, acesta emite un impuls scurt pe CCW
Trei DFF sincronizează intrarea Canal A cu ceasul. În mod similar, întârzierea conductei cu OUT0 setat la două DFF și OUT1 setat la trei DFF creează aceeași funcționalitate pentru canalul B.
Pentru a crea ieșiri CW și CCW utilizați câteva LUT-uri, pentru mai multe informații despre acest design standard de decodor rotativ, vizitați acest site web.
Decodorul rotativ GreenPAK va primi impulsurile de intrare A și B și va emite impulsurile CW și CCW așa cum se arată în Figura 4.
Circuitul după porțile XOR asigură că nu va exista niciodată un impuls CW și un impuls CCW în același timp, permițând orice eroare cu codificatorul rotativ. Întârzierea marginii de cădere de 8 ms pe semnalele CW și CCW îi forțează să rămână ridicate timp de 8 ms plus un ciclu de ceas, care este necesar pentru GreenPAK-urile SLG46826 din aval.
Pasul 3: Proiectare controler ventilator SLG46826
Pasul 4: Generarea PWM cu contoare offset
O pereche de contoare offset cu aceeași perioadă sunt utilizate pentru a genera semnalul PWM. Primul contor setează un DFF, iar al doilea îl resetează, creând un semnal PWM de ciclu de funcționare consistent așa cum se arată în Figura 6 și Figura 7.
CNT6 setează DFF10 și ieșirea inversată a CNT1 resetează DFF10. Pinii 18 și 19 sunt utilizați pentru a transmite semnalul PWM către circuitele externe
Pasul 5: Controlul ciclului de funcționare cu injecție de ceas și omiterea ceasului
Controlerul ventilatorului primește semnalele CW și CCW ca intrări de la decodorul rotativ și le utilizează fie pentru a crește, fie pentru a reduce semnalul PWM care controlează viteza ventilatorului. Acest lucru se realizează cu mai multe componente logice digitale.
Ciclul de funcționare trebuie să crească atunci când este recepționat un impuls CW. Acest lucru se realizează prin injectarea unui impuls de ceas suplimentar în blocul CNT6, determinându-l să emită un ciclu de ceas mai devreme decât ar fi avut altfel. Acest proces este prezentat în Figura 8.
CNT1 continuă să fie tactat la o rată constantă, dar CNT6 are injectate câteva ceasuri suplimentare. De fiecare dată când există un ceas suplimentar la contor, acesta își deplasează ieșirea cu o perioadă de ceas spre stânga.
În schimb, pentru a reduce ciclul de funcționare, săriți un impuls de ceas pentru CNT6, așa cum se arată în figura 9. CNT1 este încă în curs de ceas cu o rată constantă și există impulsuri de ceas sărite pentru CNT6, unde contorul nu a fost ceasat atunci când se presupunea la. În acest fel, ieșirea CNT6 este împinsă la dreapta cu o perioadă de ceas la rând, scurtând ciclul de funcționare PWM de ieșire.
Funcționalitatea de injectare a ceasului și saltarea ceasului se realizează cu utilizarea unor elemente logice digitale în cadrul GreenPAK. O pereche de blocuri multifuncționale sunt folosite pentru a crea o pereche de combo-uri cu detector de blocare / margine. LUT0 pe 4 biți este utilizat pentru a mux între semnalul general al ceasului (CLK / 8) și semnalele de injectare a ceasului sau de saltare a ceasului. Această funcționalitate este descrisă mai detaliat în Pasul 7.
Pasul 6: Introducere BUTON
Intrarea BUTON este redusă pentru 20 ms, apoi este utilizată pentru a comuta un zăvor care determină dacă este selectat acest chip special. Dacă este selectat, atunci LUT-ul pe 4 biți trece semnalele de saltare a ceasului sau de injecție. Dacă cipul nu este selectat, atunci LUT-ul pe 4 biți trece pur și simplu semnalul CLK / 8.
Pasul 7: Prevenirea răsturnării ciclului de funcționare
Dispozitivele de blocare RS LUT5 pe 3 biți și LUT3 pe 3 biți sunt utilizate pentru a vă asigura că nu puteți injecta sau sări peste atât de multe ceasuri, încât contoare offset să se rotească. Aceasta pentru a evita ca sistemul să atingă un ciclu de funcționare de 100% și apoi să treacă la un ciclu de funcționare de 1% dacă primește un alt ceas injectat.
Zăvorile RS împiedică acest lucru prin blocarea intrărilor la blocurile multifuncționale atunci când sistemul este la un ciclu de ceas distanță de rulare. O pereche de DFF întârzie semnalele PWM_SET și PWM_nRST cu o perioadă de ceas, așa cum se arată în Figura 11.
O pereche de LUT-uri sunt folosite pentru a crea logica necesară. Dacă ciclul de funcționare este atât de scăzut încât semnalul PWM_SET întârziat apare în același timp cu semnalul PWM_nRST, o scădere suplimentară a ciclului de funcționare va provoca o răsturnare.
În mod similar, dacă se apropie de ciclul maxim de funcționare, astfel încât semnalul PWM_nRST întârziat să apară în același timp cu semnalul PWM_SET, este necesar să se evite orice creștere suplimentară a ciclului de funcționare. În acest caz, întârziați semnalul nRST cu două cicluri de ceas pentru a vă asigura că sistemul nu se răstoarnă de la 99% la 1%.
Pasul 8: Controlul ciclului de funcționare cu I2C
Acest design încorporează un alt mod de a controla ciclul de funcționare, altul decât saltarea ceasului / injectarea ceasului. Un microcontroler extern poate fi folosit pentru a scrie comenzi I2C pe GreenPAK pentru a seta ciclul de funcționare.
Controlarea ciclului de lucru pe I2C necesită controlerului să efectueze o secvență de comandă specifică. Aceste comenzi sunt afișate în ordine în Tabelul 1. Un „x” indică un bit care nu ar trebui să se schimbe, „[” indică un bit START și „]” indică un bit STOP
Blocul PDLY generează un impuls activ scurt scurt pe marginea de cădere a semnalului CLK / 8, care se numește! CLK / 8. Acest semnal este utilizat pentru a ceasura DFF14 la o frecvență constantă. Când I2C_SET crește în mod asincron, următoarea margine ascendentă a! CLK / 8 determină ieșirea DFF14 HIGH, care declanșează CNT5 OneShot. OneShot rulează pentru numărul de cicluri de ceas pe care utilizatorul le-a scris așa cum se specifică în comanda I2C „Scrieți la CNT5” din Tabelul 1. În acest caz, este vorba de 10 cicluri de ceas. OneShot permite oscilatorului de 25 MHz să ruleze exact pentru durata sa și nu mai mult, astfel încât LUT0 pe 3 biți să primească numărul de cicluri de ceas care au fost scrise în CNT5.
Figura 15 prezintă aceste semnale, unde ceasurile roșii sunt cele care sunt trimise către LUT0 pe 3 biți, care le trece în CNT6 (contorul PWM_SET), creând astfel compensarea pentru generarea ciclului de funcționare.
Pasul 9: citirea tahometrului
Dacă se dorește, utilizatorul poate citi valoarea tahometrului peste I2C pentru a urmări cât de repede se întoarce ventilatorul citind valoarea CNT2. CNT2 este incrementat de fiecare dată când ACMP0H are o margine ascendentă și poate fi resetat asincron cu o comandă I2C. Rețineți că aceasta este o caracteristică opțională, iar pragul ACMP0H va trebui modificat în funcție de specificațiile ventilatorului utilizat.
Pasul 10: Proiectarea circuitului extern
Circuitul extern este destul de simplu. Există un buton conectat la Pin6 al GreenPAK pentru a comuta dacă acest dispozitiv este selectat pentru control rotativ și un LED conectat la Pin12 și Pin13 pentru a indica când este selectat dispozitivul.
Deoarece ventilatorul se stinge de 12 V, este necesară o pereche de FET-uri pentru a controla comutarea acestuia. Pin-urile GreenPAK și Pin19 conduc un nFET. Când nFET este pornit, trage poarta pFET LOW, care conectează ventilatorul la +12 V. Când nFET este oprit, poarta PFET este trasă de rezistorul de 1 kΩ, care deconectează ventilatorul de la +12 V.
Pasul 11: Proiectare PCB
Pentru a prototipa designul, au fost asamblate câteva PCB-uri. PCB-ul din stânga este „Fan Controller”, care găzduiește codificatorul rotativ, mufa de 12 V, SLG46108 GreenPAK și conectorii pentru placa FT232H USB to I2C. Cele două PCB-uri din dreapta sunt „Fan Boards”, care conțin SLG46826 GreenPAK, butoane, comutatoare, LED-uri și anteturi de ventilator.
Fiecare placă de ventilator are un antet masculin învelit în partea stângă și un antet feminin în partea dreaptă, astfel încât acestea să poată fi înlănțuite. Fiecare placă de ventilator poate fi populată cu resurse pentru a controla independent doi ventilatori.
Pasul 12: Aplicație C #
O aplicație C # a fost scrisă pentru a interfața cu plăcile de ventilator prin podul FT232H USB-I2C. Această aplicație poate fi utilizată pentru a regla frecvența fiecărui ventilator cu comenzile I2C generate de aplicație.
Aplicația trimite ping tuturor celor 16 adrese I2C o dată pe secundă și completează GUI cu adresele slave prezente. În acest exemplu Fan 1 (adresa slave 0001) și Fan 3 (adresa slave 0011) conectate la placa. Reglajele individuale ale ciclului de funcționare ale fiecărui ventilator pot fi făcute prin mutarea barei glisante sau prin tastarea unei valori de la 0-256 în caseta de text de sub bara glisantă.
Concluzii
Folosind acest design este posibil să controlați independent până la 16 ventilatoare (deoarece există 16 adrese slave I2C posibile) fie cu un codificator rotativ, fie cu o aplicație C #. S-a demonstrat cum se generează un semnal PWM cu o pereche de contoare offset și cum se mărește și se micșorează ciclul de funcționare al acelui semnal fără răsturnare.
Recomandat:
VentMan Partea II: Detectare automată a cuptorului Arduino pentru ventilatoare de rapel: 6 pași
VentMan Partea II: Detectare automată a cuptorului Arduino pentru ventilatoarele de rapel: Principalele puncte: Acesta a fost un hack temporar pus în aplicare pentru a detecta când motorul meu de suflare AC / cuptor funcționează, astfel încât cei doi ventilatori de rapel ai mei să poată porni. Am nevoie de două ventilatoare de rapel în conductele mele pentru a împinge mai mult aer cald / rece două două dormitoare izolate. Dar eu
Ventilatoare laser cu fibră optică: 9 pași (cu imagini)
Ventilatoare laser cu fibră optică: ce e de genul? Fibre optice. Ce e mai cool? Lasere. Ce e minunat? Fanii focului. Acest instructabil a fost inspirat în parte de fanii de foc și în parte de balerina bionică. Fiecare ventilator este format din cinci tije din fibră optică, iluminate de senzorul de înclinare pentru a fi roșu sau galben
ESP8266 RGB LED STRIP WIFI Control - NODEMCU ca telecomandă IR pentru bandă led controlată prin Wifi - Control RGB LED STRIP pentru smartphone: 4 pași
ESP8266 RGB LED STRIP WIFI Control | NODEMCU ca telecomandă IR pentru bandă led controlată prin Wifi | RGB LED STRIP Smartphone Control: Bună băieți, în acest tutorial vom învăța cum să folosim nodemcu sau esp8266 ca telecomandă IR pentru a controla o bandă LED RGB, iar Nodemcu va fi controlat de smartphone prin wifi. Deci, practic puteți controla LED-ul RGB LED cu smartphone-ul dvs
Ventilatoare de răcire Mod Carcasă computer: 5 pași
Ventilatoare de răcire Mod Computer Case: Ca mulți oameni instructabili, sunt ieftin. Când am construit acest turn, am folosit toate piesele pe care le aveam la îndemână, este prima mea construcție folosind un p4, așa că nu s-a transferat mult, nu știam că ar fi mult mai fierbinte decât era un coppermine. Se instalează un
Ventilatoare de carcase comutate ieftine și vesele: 11 pași
Ventilatoare de caz comutate ieftine și vesele: așa am adăugat 2 ventilatoare suplimentare la computerul meu cu întrerupătoare luminoase mari, folosind lucruri despre care am mințit. Știu că puteți obține controlere de ventilator montate în golf de 5 1/2 inch destul de ieftine în zilele noastre, dar cred că este mai cool