DMX testas ir 8 kanalų dimeris

Kažkada užsakiau žalias PCB savo CNC eksperimentams. Jos buvo su aštuoniais mosfetais ir viskas ten veikė. Vėliau patobulėjom iki tiltinių mikroschemų, o PCB liko kaip ir nereikalingos. Nutariau paeksperimentuoti su apšvietimo valdymu, tai šios plokštelės kaip ir atrado savo naują panaudojimą.
Kiek paguglinau ir radau, kad DMX512 standartas lengvai atkartojamas ir padaromas (Digital Multiplex). Ir jam prirašytas kalnas softo. Tiek “masterių” tiek ir “sleivų”. Pradžioje norėjau viską rašyti nuo nulio, bet nusprendžiau, kad reikia pradžiai kažką turėtu kad bent jau teoriškai atitinką standartą. Todėl siuntiką (master) nusipirkau pas kinus. Tau uDMX USB donglas. Fiziniam lygyje tai kažkokio tai lygios nuoseklus išėjimas per EIA-485 diferencialinį busą. Duomenų perdavimas 250000 bitų per sekundę. Start signalas sudarytas iš kiek pailginto nulinio signalo. Naudojant mikrokontrolerį start signalas detektuojamas pagal frame error ir kad priimtas būtent nulis.
Iš pradžių pats rašiau visą priėmimo paprogramę, bet grynai dėl techninių problemų man niekas nesigavo. Tada radau internete ulrichradig.de puslapius, kurių softas … irgi neveikė. Pasirodo, padariau elementarią klaidą- mano naudojamas kvarcas visiškai nesiderino su DMX0 250kbit greičiu. Gal ir mano softas būtų veikęs, bet jis pražuvo redagavimo lavinoje.

DMX LED dimmer
Plokštelėje yra aštuoni mosfetai. Visi valdosi nepriklausomai- įrenginys suvartoja 8 DMX kanalus ir priklausomai nuo kanalo vertės daro kiekvieno kanalo dimeriavimą PWM metodais. Tai grynai softwarinis PWMas, todėl didelio dreičio nesitikėkit. Naudojant LEDus netgi kiek matosi šviesos diodų mirgėjimas.

Schema paprasta: SN75176 čipas priima signalus iš DMX (hot, A-, 2; cold, B+, 3) ir konvertuoja į TTL lygio serial. Toliau mažytė atmega viską paskaičiuoja ir per savo kojeles vardo paprastus npn tranzus, kurie savo ruožtu junginėja kiek galingesnius 30V mosfetus iš video plokščių ar nešiojamų kompų. Visa nesamonė su npn tranzais duotu du efektus- aukštesnė įtampa valdomi galios mosfetai. Tai gerai. O štai, kad inveruojasi signalas ir užsidega LEDai kai nuspaustas reset, tai jau blogai.
Softas su minimaliais pakeitimais turi veikti ant bet kokios megos. Svarbu, kad mega važiuotu ant tokio dažnio, kad teisingai susiskaičiuotu serial interfeiso taktinis dažnis. Aš savo eksperimente naudoju 12MHz kvarcą (nors mega važiuoja max 10MHz, tai kaip ir overclockinu).
DMX “lempos” adresas užkoduotas firmware. Teoriškai reikėtu padaryti jį keičiamą…
Ant didelio kompo naudojau FreeStyler softą.

Ir aišku:DMX LED dimmerio softas, source code ir kompiliuotas hex.

Kadangi vėl išvažiuoju į jungtines karalystes, vėl bus savaitė kai net negalvosiu ką čia jums parašyti. Žodžių atostogaukite.

5 replies on “DMX testas ir 8 kanalų dimeris”

  1. Nu man pačiam šitokio buso irgi nereikia. Nenoriu aš junginėti tokį dinaminį apšvietimą. O ir pats protokolo (gryno) principas, kad visą laiką pumpuojama informacija apie būklę man nepatiko. Jei daryčiau kokį “namų ūkį” tai ieškočiau ką nors dvipusio, su įjungimo ir išjungimo komandom ir su kokiu nors CRC. O fizinė media kaip ir dzin. RS485 gana ilgas tinklas ir nereikia LAN “overload’o”.

  2. Beje, pas kitaisus yra geras dalykas: wireless DMX divaisai.
    Siustuvas pinigines dydzio, moka but ir imtuvu, o imtuveliai kaip usb atmintines. Geras dalykas tas, kad veikia realiai 50 – 100 m. atstumu.
    O tai buna, kad prisireikia. Patogus daigtas.

Leave a Reply

Your email address will not be published. Required fields are marked *