Sisällysluettelo:
- Vaihe 1: Järjestelmän lohkokaavio
- Vaihe 2: SLG46108 -pyörivä dekooderin suunnittelu
- Vaihe 3: SLG46826 -tuulettimen ohjaimen suunnittelu
- Vaihe 4: PWM -generaatio offset -laskureilla
- Vaihe 5: Työkierron ohjaus kellon ruiskutuksella ja kellon ohituksella
- Vaihe 6: PAINIKKEEN syöttö
- Vaihe 7: Käyttöjakson kaatumisen estäminen
- Vaihe 8: Työkierron ohjaus I2C: llä
- Vaihe 9: Kierroslukumittarin lukeminen
- Vaihe 10: Ulkoisen piirin suunnittelu
- Vaihe 11: Piirilevyjen suunnittelu
- Vaihe 12: C# -sovellus
Video: DIY PWM -ohjaus PC -tuulettimille: 12 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Tässä ohjeessa kuvataan täysin varustellun 12 V: n PC-tuulettimen PWM-ohjaimen rakentaminen. Suunnittelu voi ohjata jopa 16 3-nastaista tietokoneen tuuletinta. Suunnittelu käyttää paria Dialog GreenPAK ™ -konfiguroitavia sekoitussignaalipiirejä ohjaamaan jokaisen tuulettimen käyttöjaksoa. Se sisältää myös kaksi tapaa muuttaa tuulettimen nopeutta:
a. kvadratuurilla/pyörivällä anturilla
b. Windows -sovelluksella, joka on rakennettu C#: een ja joka kommunikoi GreenPAKin kanssa I2C: n kautta.
Seuraavassa kuvataan vaiheet, jotka tarvitaan ymmärtämään, miten GreenPAK -siru on ohjelmoitu luomaan PWM -ohjaus PC -faneille. Jos haluat vain saada ohjelmoinnin tuloksen, lataa GreenPAK -ohjelmisto nähdäksesi jo valmistuneen GreenPAK -suunnittelutiedoston. Liitä GreenPAK Development Kit tietokoneeseesi ja napsauta ohjelmaa luodaksesi mukautetun IC: n PC -faneille PWM -ohjausta varten.
Vaihe 1: Järjestelmän lohkokaavio
Vaihe 2: SLG46108 -pyörivä dekooderin suunnittelu
Pyörivää anturia käytetään puhaltimien käyttöjakson lisäämiseen tai vähentämiseen manuaalisesti. Tämä laite lähettää pulsseja kanavan A ja kanavan B lähdöissä, jotka ovat 90 °: n päässä toisistaan. Katso AN-1101: Lukitsematon kvadratuuridekooderi saadaksesi lisätietoja kiertokooderin toiminnasta.
Kellotettu pyörivä dekooderi voidaan luoda Dialog GreenPAK SLG46108: n avulla kanavan A ja kanavan B signaalien käsittelemiseksi ja niiden lähettämiseksi vastapäivään (CCW) ja myötäpäivään (CW).
Kun kanava A johtaa kanavaa B, malli antaa lyhyen pulssin CW: lle. Kun kanava B johtaa kanavaa A, se antaa lyhyen pulssin CCW: lle
Kolme DFF: ää synkronoi A -kanavan tulon kellon kanssa. Samoin putken viive, kun OUT0 on asetettu kahteen DFF: ään ja OUT1 asetetaan kolmeen DFF: ään, luovat saman toiminnallisuuden kanavalle B.
Jos haluat luoda CW- ja CCW -lähdöt, käytä muutamaa LUT: ta. Lisätietoja tästä vakiomallisesta pyörivästä dekooderisuunnittelusta on tällä verkkosivustolla.
GreenPAK -pyörivä dekooderi vastaanottaa tulopulsseja A ja B ja lähettää CW- ja CCW -pulsseja kuvan 4 mukaisesti.
XOR -porttien jälkeiset piirit varmistavat, että CW- ja CCW -pulsseja ei koskaan tule samanaikaisesti, mikä mahdollistaa mahdollisen virheen pyörivän anturin kanssa. CW- ja CCW -signaalien 8 ms: n putoavan reunan viive pakottavat ne pysymään korkealla 8 ms: n ja yhden kellojakson ajan, mikä on välttämätöntä loppupään SLG46826 GreenPAK -laitteille.
Vaihe 3: SLG46826 -tuulettimen ohjaimen suunnittelu
Vaihe 4: PWM -generaatio offset -laskureilla
PWM -signaalin muodostamiseen käytetään paria offset -laskuria, joilla on sama jakso. Ensimmäinen laskuri asettaa DFF: n ja toinen nollaa sen, jolloin luodaan johdonmukainen toimintajakson PWM -signaali, kuten kuviossa 6 ja kuvassa 7 on esitetty.
CNT6 asettaa DFF10: n ja CNT1: n käänteinen lähtö nollaa DFF10. Nastaja 18 ja 19 käytetään PWM -signaalin lähettämiseen ulkoiseen piiriin
Vaihe 5: Työkierron ohjaus kellon ruiskutuksella ja kellon ohituksella
Puhallinohjain vastaanottaa CW- ja CCW -signaalit tulona pyörivältä dekooderilta ja käyttää niitä joko lisäämään tai vähentämään puhaltimen nopeutta ohjaavaa PWM -signaalia. Tämä saavutetaan useilla digitaalisilla logiikkakomponenteilla.
Käyttöjaksoa on pidennettävä, kun CW -pulssi vastaanotetaan. Tämä tehdään ruiskuttamalla ylimääräinen kellopulssi CNT6 -lohkoon, jolloin se antaa yhden kellojakson aikaisemmin kuin muuten. Tämä prosessi on esitetty kuvassa 8.
CNT1 kellotetaan edelleen vakionopeudella, mutta CNT6: ssa on pari ylimääräistä kelloa ruiskutettuna. Aina kun laskurissa on ylimääräinen kello, se siirtää tuotostaan yhden kellojakson verran vasemmalle.
Päinvastoin, lyhentääksesi toimintajaksoa, ohita kellon pulssi CNT6: lle kuvan 9 mukaisesti. kohteeseen. Tällä tavalla CNT6: n ulostulo työntyy oikealle yksi kellojakso kerrallaan, mikä lyhentää PWM -tehosykliä.
Kellon ruiskutus- ja ohitustoiminto suoritetaan käyttämällä joitakin GreenPAKin digitaalisia logiikkaelementtejä. Monitoimilohkoja käytetään parin salpa-/reunailmaisinyhdistelmän luomiseen. 4-bittistä LUT0: ta käytetään yleisen kellosignaalin (CLK/8) ja kellon ruiskutussignaalien tai kellon ohitussignaalien väliseen sekoittamiseen. Tämä toiminto kuvataan tarkemmin vaiheessa 7.
Vaihe 6: PAINIKKEEN syöttö
BUTTON -tuloa ei käytetä 20 ms: n ajan, minkä jälkeen sitä käytetään salvan vaihtamiseen, joka määrittää, onko tämä siru valittu. Jos se on valittu, 4-bittinen LUT välittää kellon ohitus- tai ruiskutussignaalit. Jos sirua ei ole valittu, 4-bittinen LUT yksinkertaisesti välittää CLK/8-signaalin.
Vaihe 7: Käyttöjakson kaatumisen estäminen
RS-salpoja 3-bittisiä LUT5 ja 3-bittisiä LUT3 käytetään varmistamaan, että et voi pistää tai ohittaa niin monta kelloa, että siirtymälaskurit kaatuvat. Näin vältetään, että järjestelmä saavuttaa 100 %: n käyttöjakson ja siirtyy sitten 1 %: n käyttöjaksoon, jos se vastaanottaa toisen ruiskutetun kellon.
RS -salvat estävät tämän tapahtuvan lukitsemalla tulot monitoimilohkoihin, kun järjestelmä on yhden kellojakson päässä kaatumisesta. DFF -pari viivästyttää PWM_SET- ja PWM_nRST -signaaleja yhdellä kellojaksolla, kuten kuvassa 11 on esitetty.
LUT -paria käytetään tarvittavan logiikan luomiseen. Jos käyttöjakso on niin alhainen, että viivästetty PWM_SET -signaali esiintyy samanaikaisesti PWM_nRST -signaalin kanssa, käyttöjakson jatkuva lasku aiheuttaa kaatumisen.
Samoin, jos lähestytään suurinta käyttöjaksoa, jolloin viivästynyt PWM_nRST -signaali esiintyy samanaikaisesti PWM_SET -signaalin kanssa, on vältettävä käyttöjakson lisäkasvua. Tässä tapauksessa viivästytä nRST -signaalia kahdella kellojaksolla varmistaaksesi, että järjestelmä ei kaadu 99 %: sta 1 %: iin.
Vaihe 8: Työkierron ohjaus I2C: llä
Tämä rakenne sisältää muun tavan ohjata käyttöjaksoa kuin kellon ohitus/kellon ruiskutus. Ulkoista mikro -ohjainta voidaan käyttää I2C -komentojen kirjoittamiseen GreenPAK: lle toimintajakson asettamiseksi.
Käyttöjakson ohjaaminen I2C: n kautta edellyttää, että ohjain suorittaa tietyn komentosarjan. Nämä komennot on esitetty järjestyksessä taulukossa 1. "x" tarkoittaa bittiä, jonka ei pitäisi muuttua, "[" osoittaa START -bittiä ja "]" osoittaa STOP -bittiä
PDLY -lohko tuottaa lyhyen aktiivisen korkean pulssin CLK/8 -signaalin putoavalle reunalle, jota kutsutaan nimellä! CLK/8. Tätä signaalia käytetään kellotukseen DFF14 tasaisella taajuudella. Kun I2C_SET nousee korkealle asynkronisesti, CLK/8: n seuraava nouseva reuna saa DFF14: n lähettämään HIGH, mikä laukaisee CNT5 OneShotin. OneShot suorittaa käyttäjän kirjoittamien kellojaksojen määrän taulukon 1 "Write to CNT5" I2C -komennon mukaisesti. Tässä tapauksessa se on 10 kellojaksoa. OneShot sallii 25 MHz: n oskillaattorin toimia täsmälleen sen keston ajan eikä enää, joten 3-bittinen LUT0 vastaanottaa CNT5: lle kirjoitettujen kellokierrosten määrän.
Kuvassa 15 esitetään nämä signaalit, joissa punaiset kellot lähetetään 3-bittiselle LUT0: lle, joka siirtää ne CNT6: een (PWM_SET-laskuri), mikä luo siirtymän käyttöjakson luomiseen.
Vaihe 9: Kierroslukumittarin lukeminen
Haluttaessa käyttäjä voi lukea kierroslukumittarin arvon I2C: n kautta seuratakseen kuinka nopeasti tuuletin pyörii lukemalla CNT2 -arvon. CNT2 kasvaa joka kerta, kun ACMP0H: lla on nouseva reuna, ja se voidaan nollata asynkronisesti I2C -komennolla. Huomaa, että tämä on valinnainen ominaisuus, ja ACMP0H -kynnystä on säädettävä käytettävän tuulettimen määritysten mukaan.
Vaihe 10: Ulkoisen piirin suunnittelu
Ulkoinen piiri on melko yksinkertainen. GreenPAKin nastaan 6 on kytketty painike, jolla vaihdetaan, onko tämä laite valittu pyörivälle ohjaukselle, ja LED 12, joka on liitetty Pin12: een ja osoittamaan, milloin laite on valittu.
Koska tuuletin toimii 12 V: n virralla, sen kytkemistä varten tarvitaan FET -pari. GreenPAKin nastat 18 ja Pin19 käyttävät nFET: tä. Kun nFET kytketään päälle, se vetää pFET LOW -portin, joka yhdistää tuulettimen +12 V: iin. +12 V.
Vaihe 11: Piirilevyjen suunnittelu
Suunnittelun prototyyppiä varten koottiin pari piirilevyä. Piirilevy vasemmalla on "Fan Controller", jossa on pyörivä anturi, 12 V: n liitin, SLG46108 GreenPAK ja liitännät FT232H USB - I2C -katkaisukortille. Kaksi oikealla olevaa piirilevyä ovat "Fan Boards", jotka sisältävät SLG46826 GreenPAKit, painikkeet, kytkimet, LEDit ja tuulettimen otsikot.
Jokaisella tuuletinlaudalla on kääritty urosotsikko vasemmalla puolella ja naarasotsikko oikealla puolella, jotta ne voidaan ketjuttaa yhteen. Jokainen puhallinkortti voidaan varustaa kahdella tuulettimella itsenäisesti.
Vaihe 12: C# -sovellus
C# -sovellus kirjoitettiin liitäntään tuulettimien kanssa FT232H USB-I2C -sillan kautta. Tätä sovellusta voidaan käyttää kunkin puhaltimen taajuuden säätämiseen sovelluksen luomilla I2C -komennoilla.
Sovellus pingottaa kaikki 16 I2C -osoitetta kerran sekunnissa ja täyttää GUI: n olemassa olevilla orjaosoitteilla. Tässä esimerkissä tuuletin 1 (orjaosoite 0001) ja tuuletin 3 (orjaosoite 0011) on liitetty korttiin. Säätöjä kunkin puhaltimen toimintajaksoon voidaan tehdä siirtämällä liukusäädintä tai kirjoittamalla arvo 0-256 liukusäätimen alla olevaan tekstikenttään.
Päätelmät
Tätä rakennetta käyttämällä on mahdollista ohjata itsenäisesti jopa 16 tuuletinta (koska 16 mahdollista I2C -orjaosoitetta) on joko kiertokooderilla tai C# -sovelluksella. On osoitettu, kuinka luodaan PWM -signaali pari offset -laskuria käyttäen ja kuinka lisätä ja vähentää kyseisen signaalin toimintajaksoa ilman kaatumista.
Suositeltava:
Satunnaiset DC -moottorin PWM -kokeet + kooderin vianetsintä: 4 vaihetta
Satunnaiset DC -moottorin PWM -kokeet + enkooderin vianmääritys: Usein jonkun roska on toisen aarre, ja tämä oli yksi niistä hetkistä minulle. Jos olet seurannut minua, tiedät luultavasti, että ryhdyin valtavaan projektiin luodakseni oman 3D -tulostimen CNC romusta. Nuo palaset ovat
Visuino Kuinka käyttää pulssinleveysmodulaatiota (PWM) LED -valon kirkkauden muuttamiseen: 7 vaihetta
Visuino Kuinka käyttää pulssinleveysmodulaatiota (PWM) LED -valon kirkkauden muuttamiseen: Tässä opetusohjelmassa käytämme Arduino UNO: hon ja Visuinoon yhdistettyä LEDiä muuttaaksesi sen kirkkautta pulssileveysmodulaatiolla (PWM)
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02): 25 vaihetta (kuvien kanssa)
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02): Jos aiot asentaa verkkoon kuulumattoman aurinkokunnan, jossa on akkupankki, tarvitset Solar Charge Controllerin. Se on laite, joka sijoitetaan aurinkopaneelin ja akkupankin väliin ohjaamaan Solan tuottaman sähköenergian määrää
PWM ja ESP32 - Himmennettävä LED PWM: llä ESP 32: ssa ja Arduino IDE: 6 vaihetta
PWM ja ESP32 | Himmennettävä LED PWM: llä ESP 32: ssa Arduino IDE: Tässä oppaassa näemme, kuinka luoda PWM -signaaleja ESP32: lla Arduino IDE & PWM: ää käytetään pohjimmiltaan analogialähdön tuottamiseen mistä tahansa MCU: sta ja että analoginen lähtö voi olla mitä tahansa 0 V - 3,3 V (esp32: n tapauksessa) & alkaen
DIY 2000 watin PWM -nopeudensäädin: 8 vaihetta (kuvilla)
DIY 2000 watin PWM -nopeudensäädin: Olen työskennellyt polkupyöräni muuttamisessa sähköiseksi käyttämällä tasavirtamoottoria automaattiselle ovimekanismille ja tätä varten olen myös tehnyt akun, jonka nimellisarvo on 84 V DC. Nyt tarvitsemme nopeussäätimen, joka voi rajoittaa energian määrää