Turinys:
- 1 žingsnis: sistemos bloko schema
- 2 žingsnis: SLG46108 sukamojo dekoderio dizainas
- 3 žingsnis: SLG46826 ventiliatoriaus valdiklio dizainas
- 4 žingsnis: PWM generavimas naudojant poslinkio skaitiklius
- 5 veiksmas: darbo ciklo valdymas su laikrodžio įpurškimu ir laikrodžio praleidimu
- 6 veiksmas: mygtuko įvestis
- 7 žingsnis: užkirsti kelią darbo ciklo apsivertimui
- 8 veiksmas: darbo ciklo valdymas naudojant I2C
- 9 žingsnis: Tachometro nuskaitymas
- 10 veiksmas: išorinės grandinės projektavimas
- 11 žingsnis: PCB projektavimas
- 12 žingsnis: C# taikymas
Video: „Pasidaryk pats“PWM valdymas kompiuterių gerbėjams: 12 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šioje instrukcijoje aprašomas pilnavertis 12 V kompiuterio ventiliatoriaus PWM valdiklio kūrimas. Dizainas gali valdyti iki 16 3 kontaktų kompiuterio ventiliatorių. Dizainas naudoja porą „Dialog GreenPAK ™“konfigūruojamų mišraus signalo IC, kad valdytų kiekvieno ventiliatoriaus darbo ciklą. Tai taip pat apima du būdus, kaip pakeisti ventiliatoriaus greitį:
a. su kvadratūriniu/sukamuoju kodavimo įrenginiu
b. su „Windows“programa, integruota C#, kuri bendrauja su „GreenPAK“per „I2C“.
Žemiau aprašėme veiksmus, kurių reikia norint suprasti, kaip „GreenPAK“lustas buvo užprogramuotas sukurti PWM valdiklį kompiuterių gerbėjams. Tačiau, jei norite gauti programavimo rezultatą, atsisiųskite „GreenPAK“programinę įrangą, kad peržiūrėtumėte jau užpildytą „GreenPAK“dizaino failą. Prijunkite „GreenPAK Development Kit“prie kompiuterio ir paspauskite programą, kad sukurtumėte pasirinktinį PWM valdymo IC, skirtą kompiuterių gerbėjams.
1 žingsnis: sistemos bloko schema
2 žingsnis: SLG46108 sukamojo dekoderio dizainas
Sukamasis kodavimo įrenginys naudojamas rankiniu būdu padidinti arba sumažinti ventiliatorių darbo ciklą. Šis prietaisas perduoda impulsus savo A ir B kanalų išėjimuose, kurie yra 90 ° atstumu vienas nuo kito. Daugiau informacijos apie sukamojo kodavimo įrenginio veikimą žr. AN-1101: Neužrakintas kvadratinis dekoderis.
Laikrodinis sukamasis dekoderis gali būti sukurtas naudojant „Dialog GreenPAK SLG46108“, kad apdorotų A ir B kanalo signalus ir išvestų juos prieš laikrodžio rodyklę (CCW) ir pagal laikrodžio rodyklę (CW).
Kai kanalas A veda kanalą B, dizainas perduoda trumpą impulsą CW. Kai B kanalas veda kanalą A, jis CCW perduoda trumpą impulsą
Trys DFF sinchronizuoja A kanalo įvestį su laikrodžiu. Panašiai vamzdžio uždelsimas, kai OUT0 nustatytas į dvi DFF, o OUT1 - į tris DFF, sukuria tą pačią B kanalo funkciją.
Norėdami sukurti CW ir CCW išvestis, naudokite keletą LUT, jei norite gauti daugiau informacijos apie šį standartinį rotacinio dekoderio dizainą, apsilankykite šioje svetainėje.
„GreenPAK“rotacinis dekoderis gaus įvesties impulsus A ir B ir išves CW ir CCW impulsus, kaip parodyta 4 paveiksle.
Po XOR vartų esanti grandinė užtikrina, kad niekada nebus CW ir CCW impulsų vienu metu, o tai sukels sukamojo kodavimo įrenginio klaidas. 8 ms krintančio krašto vėlavimas CW ir CCW signaluose verčia juos išlikti aukštai 8 ms plius vieną laikrodžio ciklą, kuris yra būtinas paskesniems SLG46826 GreenPAK.
3 žingsnis: SLG46826 ventiliatoriaus valdiklio dizainas
4 žingsnis: PWM generavimas naudojant poslinkio skaitiklius
PWM signalui generuoti naudojama to paties laikotarpio poslinkio skaitiklių pora. Pirmasis skaitiklis nustato DFF, o antrasis - iš naujo, sukurdamas pastovų darbo ciklo PWM signalą, kaip parodyta 6 paveiksle ir 7 paveiksle.
CNT6 nustato DFF10, o apverstas CNT1 išėjimas iš naujo nustato DFF10. 18 ir 19 kaiščiai naudojami PWM signalui išvesti į išorinę grandinę
5 veiksmas: darbo ciklo valdymas su laikrodžio įpurškimu ir laikrodžio praleidimu
Ventiliatoriaus valdiklis priima CW ir CCW signalus kaip įvestis iš rotacinio dekoderio ir naudoja juos, kad padidintų arba sumažintų PWM signalą, kuris valdo ventiliatoriaus greitį. Tai pasiekiama naudojant kelis skaitmeninės logikos komponentus.
Gavus CW impulsą, darbo ciklas turi padidėti. Tai daroma įterpiant papildomą laikrodžio impulsą į CNT6 bloką, todėl jis išvedamas vienu laikrodžio ciklu anksčiau, nei būtų buvę kitaip. Šis procesas parodytas 8 paveiksle.
CNT1 laikrodis vis dar yra pastovus, tačiau CNT6 turi keletą papildomų laikrodžių. Kiekvieną kartą, kai prie skaitiklio yra papildomas laikrodis, jis perkelia savo išėjimą vienu laikrodžio periodu į kairę.
Ir atvirkščiai, norėdami sumažinti darbo ciklą, praleiskite CNT6 laikrodžio impulsą, kaip parodyta 9 paveiksle. į. Tokiu būdu CNT6 produkcija vienu laikrodžio periodu vienu metu stumiama į dešinę, sutrumpinant išvesties PWM darbo ciklą.
Laikrodžio įpurškimo ir laikrodžio praleidimo funkcija atliekama naudojant kai kuriuos „GreenPAK“skaitmeninius loginius elementus. Daugiafunkcinių blokų pora naudojama spynos/krašto detektoriaus derinių porai sukurti. 4 bitų LUT0 naudojamas bendram laikrodžio signalui (CLK/8) ir laikrodžio įpurškimo arba laikrodžio praleidimo signalams maišyti. Ši funkcija išsamiau aprašyta 7 veiksme.
6 veiksmas: mygtuko įvestis
BUTTON įvestis atjungiama 20 ms, tada naudojama fiksatoriui įjungti, kuris nustato, ar pasirinktas būtent šis lustas. Jei jis pasirinktas, 4 bitų LUT perduoda laikrodžio praleidimo ar įpurškimo signalus. Jei lustas nepasirinktas, 4 bitų LUT tiesiog perduoda CLK/8 signalą.
7 žingsnis: užkirsti kelią darbo ciklo apsivertimui
RS skląsčiai 3 bitų LUT5 ir 3 bitų LUT3 naudojami siekiant įsitikinti, kad negalite švirkšti ar praleisti tiek daug laikrodžių, kad poslinkio skaitikliai apsiverstų. Taip siekiama išvengti, kad sistema pasiektų 100 % darbo ciklą, o paskui pereitų prie 1 % darbo ciklo, jei ji gauna kitą įpurškiamą laikrodį.
RS skląsčiai neleidžia to padaryti, užfiksuodami įėjimus į daugiafunkcinius blokus, kai sistema yra per vieną laikrodžio ciklą nuo apvirtimo. DFF pora atideda PWM_SET ir PWM_nRST signalus vienu laikrodžio periodu, kaip parodyta 11 paveiksle.
Norint sukurti reikiamą logiką, naudojama pora LUT. Jei darbo ciklas yra toks mažas, kad vėluojantis PWM_SET signalas atsiranda tuo pačiu metu kaip ir signalas PWM_nRST, tolesnis darbo ciklo sumažėjimas sukels apvirtimą.
Panašiai, jei artėja prie maksimalaus darbo ciklo, kai vėluojantis PWM_nRST signalas atsiranda tuo pačiu metu kaip ir signalas PWM_SET, būtina vengti tolesnio darbo ciklo padidinimo. Šiuo atveju atidėkite nRST signalą dviem laikrodžio ciklais, kad įsitikintumėte, jog sistema nevirsta nuo 99 % iki 1 %.
8 veiksmas: darbo ciklo valdymas naudojant I2C
Ši konstrukcija apima kitą darbo ciklo valdymo būdą, išskyrus laikrodžio praleidimą/įpurškimą. Išorinis mikrovaldiklis gali būti naudojamas „GreenPAK“rašyti I2C komandas, kad būtų nustatytas darbo ciklas.
Norint valdyti darbo ciklą per I2C, valdiklis turi atlikti tam tikrą komandų seką. Šios komandos parodytos eilės tvarka 1 lentelėje. „X“reiškia bitą, kuris neturėtų keistis, „[“žymi START bitą, o „]“nurodo STOP bitą
PDLY blokas generuoja trumpą aktyvų aukštą impulsą ant krintančio CLK/8 signalo krašto, kuris vadinamas! CLK/8. Šis signalas naudojamas nuolatiniam DFF14 laikrodžiui stebėti. Kai I2C_SET kyla aukštai asinchroniškai, kitas pakilęs CLK/8 kraštas sukelia DFF14 išvestį HIGH, o tai suaktyvina „CNT5 OneShot“. „OneShot“veikia pagal laikrodžio ciklų skaičių, kurį vartotojas parašė, kaip nurodyta 1 lentelės komandoje „Rašyti į CNT5“I2C. Šiuo atveju tai yra 10 laikrodžio ciklų. „OneShot“leidžia 25 MHz osciliatoriui veikti tiksliai savo trukmę ir ne ilgiau, todėl 3 bitų LUT0 gauna tiek laikrodžio ciklų, kiek buvo parašyta CNT5.
15 paveiksle pavaizduoti šie signalai, kur raudoni laikrodžiai siunčiami į 3 bitų LUT0, kuris perduoda juos į CNT6 (PWM_SET skaitiklis), taip sukuriant darbo ciklo generavimo poslinkį.
9 žingsnis: Tachometro nuskaitymas
Jei pageidaujama, vartotojas gali perskaityti tachometro vertę per I2C ir sekti, kaip greitai sukasi ventiliatorius, skaitydamas CNT2 vertę. CNT2 padidinamas kiekvieną kartą, kai ACMP0H pakyla, ir jį galima asinchroniškai iš naujo nustatyti naudojant I2C komandą. Atminkite, kad tai yra neprivaloma funkcija, todėl ACMP0H slenkstį reikės keisti pagal konkretaus naudojamo ventiliatoriaus specifikacijas.
10 veiksmas: išorinės grandinės projektavimas
Išorinė grandinė yra gana paprasta. Prie „GreenPAK“kaiščio 6 yra prijungtas mygtukas, skirtas perjungti, ar šis įrenginys pasirinktas sukamajam valdymui, ir prie „Pin12“ir „Pin13“prijungtas šviesos diodas, nurodantis, kada pasirinktas įrenginys.
Kadangi ventiliatorius veikia 12 V įtampa, norint valdyti jo perjungimą, reikalinga pora FET. „GreenPAK“„Pin18“ir „Pin19“valdo nFET. Įjungus nFET, jis traukia pFET LOW vartus, kurie prijungia ventiliatorių prie +12 V. Kai nFET yra išjungtas, PFET vartus traukia aukštyn 1 kΩ rezistorius, kuris atjungia ventiliatorių nuo +12 V.
11 žingsnis: PCB projektavimas
Norėdami sukurti prototipą, buvo surinkta pora PCB. Kairėje esanti PCB yra „Ventiliatoriaus valdiklis“, kuriame yra sukamasis kodavimo įrenginys, 12 V lizdas, SLG46108 GreenPAK ir jungtys, skirtos FT232H USB - I2C pertraukimo plokštei. Dvi dešinėje esančios PCB plokštės yra „Ventiliatorių plokštės“, kuriose yra SLG46826 „GreenPAK“, mygtukai, jungikliai, šviesos diodai ir ventiliatoriaus antraštės.
Kiekvienoje gerbėjų lentoje kairėje pusėje yra apgaubta vyriška antraštė, o dešinėje-moteriška antraštė, kad jas būtų galima kartu sujungti. Kiekvienoje ventiliatoriaus lentoje gali būti išteklių, skirtų savarankiškai valdyti du ventiliatorius.
12 žingsnis: C# taikymas
C# programa buvo parašyta sąsajai su ventiliatorių plokštėmis per FT232H USB-I2C tiltą. Šia programa galima reguliuoti kiekvieno ventiliatoriaus dažnį naudojant I2C komandas, kurias sukuria programa.
Programa vieną kartą per sekundę pinga visus 16 I2C adresų ir užpildo GUI esamais vergų adresais. Šiame pavyzdyje ventiliatorius 1 (vergo adresas 0001) ir ventiliatorius 3 (pavaldinio adresas 0011) prijungti prie plokštės. Kiekvieno ventiliatoriaus darbo ciklą galima koreguoti atskirai perkėlus slankiklį arba įvedus reikšmę nuo 0 iki 256 teksto laukelyje po slankikliu.
Išvados
Naudojant šią konstrukciją, galima savarankiškai valdyti iki 16 ventiliatorių (nes yra 16 galimų I2C pavaldinių adresų) sukamuoju kodavimo įrenginiu arba naudojant C# programą. Buvo įrodyta, kaip sugeneruoti PWM signalą naudojant porą poslinkio skaitiklių ir kaip padidinti ir sumažinti to signalo veikimo ciklą neperkeliant.
Rekomenduojamas:
„Pasidaryk pats“„PowerBank“iš senų nešiojamųjų kompiuterių baterijų: 7 žingsniai
„Pasidaryk pats“„PowerBank“iš senų nešiojamųjų kompiuterių baterijų: dažniausiai pirmasis nešiojamojo kompiuterio gedimas yra akumuliatorius, o dažniausiai tik 1–2 elementai gali būti sugedę. Ant stalo turiu keletą baterijų iš seno nešiojamojo kompiuterio, todėl sugalvojau iš to padaryti kažką naudingo
Sukurkite mini „pasidaryk pats“hidroponines sistemas ir pasidaryk pats „Hydroponic Herb Garden“su „WiFi“įspėjimais: 18 žingsnių
Sukurkite mini „pasidaryk pats“hidroponines sistemas ir pasidaryk pats „Hydroponic Herb Garden“su „Wi -Fi“įspėjimais: šioje pamokoje parodysime, kaip sukurti #DIY #hidroponikos sistemą. Ši „pasidaryk pats“hidroponinė sistema laistys pagal pasirinktą hidroponinį laistymo ciklą, 2 minutes įjungus ir 4 minutes išjungus. Jis taip pat stebės rezervuaro vandens lygį. Ši sistema
Atnaujinkite „pasidaryk pats“laistymo puodą su „WiFi“į „pasidaryk pats“judesio aptikimo signalizacijos signalą 17 žingsnių
Atnaujinkite „pasidaryk pats“laistymo puodą su „WiFi“į „pasidaryk pats“judesio aptikimo signalizatorių sėjamoji: Šiame straipsnyje mes parodysime, kaip patobulintą savaiminio laistymo puodą su „WiFi“atnaujinti į „pasidaryk pats“laistymo puodą su „WiFi“ir judesio aptikimo signalizacija. Jei neskaitėte straipsnio apie tai, kaip sukurti „pasidaryk pats“laistymo puodą su „WiFi“, galite baigti
2,4 kWh „pasidaryk pats“maitinimo siena iš perdirbtų 18650 ličio jonų nešiojamųjų kompiuterių baterijų: 5 žingsniai (su nuotraukomis)
2,4 kWh „pasidaryk pats“maitinimo siena iš perdirbtų 18650 ličio jonų nešiojamųjų kompiuterių baterijų: mano 2,4 kWh „Powerwall“pagaliau baigta! Per pastaruosius kelis mėnesius kaupiau visą krūvą 18650 nešiojamųjų kompiuterių baterijų, kurias išbandžiau savo „pasidaryk pats“18650 bandymų stotyje - todėl nusprendžiau su jais ką nors padaryti. Aš sekiau „pasidaryk pats“galią
Elektros įrangos valdymas kompiuteriu: 10 žingsnių (su paveikslėliais)
Elektros įrangos valdymas kompiuteriu: valdykite lemputes (ar bet kokius kitus elektros prietaisus) naudodami klaviatūros lemputes. be dirginančio mikrovaldiklio !!!! Pirmiausia noriu pasakyti, kad tai yra mano pirmas pamokomas dalykas ir nepadariau daug nuotraukų. taip pat idėją gavau iš: USB valdomo mini