Turinys:

4 kanalų DMX reguliatorius: 6 žingsniai
4 kanalų DMX reguliatorius: 6 žingsniai

Video: 4 kanalų DMX reguliatorius: 6 žingsniai

Video: 4 kanalų DMX reguliatorius: 6 žingsniai
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, Lapkritis
Anonim
4 kanalų DMX reguliatorius
4 kanalų DMX reguliatorius

Koncepcija yra suprojektuoti ir sukurti nešiojamąjį reguliatorių.

Reikalavimai:

  • DMX512 valdomas
  • 4 kanalai
  • Nešiojamas
  • Paprasta naudoti

Šią idėją pasiūliau savo profesoriui WSU, nes norėjau sujungti savo aistras teatrui ir kompiuteriams. Šis projektas šiek tiek veikė kaip mano vyresnysis projektas teatro skyriuje. Jei turite pastabų ar klausimų, mielai padėsiu.

Ateityje plėtra galėtų apimti daugiau kanalų, 5 kontaktų DMX jungtį, DMX praėjimą, 8 panardinimo jungiklius kanalui pakeisti, spausdintinę plokštę.

Perkėliau šį projektą iš https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, nes manau, kad jis vis dar populiarus. Taip pat praradau „iWeb“pradinį failą, todėl nebegaliu lengvai jo atnaujinti. Būtų malonu leisti žmonėms pasidalyti savo klausimais apie projektą.

1 žingsnis: surinkite aparatūrą

Aparatūros surinkimas
Aparatūros surinkimas

Naudota aparatūra: Didžioji jos dalis buvo užsakyta iš „Tayda Electronics“. Man jie patinka labiau nei „DigiKey“dėl mažesnio ir lengviau suprantamo pasirinkimo.

  1. ATMEGA328, mikrovaldiklis
  2. MOC3020, TRIAC optronas. Ne „ZeroCross“.
  3. MAX458 arba SN75176BP, DMX imtuvas
  4. ISP814, kintamosios srovės optronas
  5. 7805, 5v reguliatorius
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz Crystal
  8. 9V maitinimo šaltinis

Keletas kliūčių ir pamokų, įgytų pakeliui

  • Jei nesate registro ekspertas, laikykitės ATMEGA328P
  • Neteisingi optronai. Jūs nenorite „Zero Cross“
  • Aukšti kanalai buvo nestabilūs. Perjungimas iš 16 MHz į 20 MHz išsprendė šią problemą
  • Negalima turėti DMX būsenos šviesos, nes pertraukiamas skambutis turėjo būti labai greitas
  • Nuolatinės srovės maitinimas turi būti ypač stabilus, bet koks pulsavimas sukels labai triukšmingą DMX signalą

Ačiū, „TRIAC“dizainas atsirado iš „MRedmon“.

2 žingsnis: grandinės projektavimas

Grandinės dizainas
Grandinės dizainas

Aš panaudojau „Fritzing 7.7“„Mac“kurdamas savo grandinę.

Viršuje esantis MAX485 naudojamas DMX signalui paversti kažkuo, ką gali skaityti „Arduino“.

Kairėje esantis 4N35 naudojamas aptikti nulinį kintamosios srovės signalo kryžių, kad „Arduino“žinotų, kada sumažinti sinusinės bangos išėjimą. Daugiau apie tai, kaip sąveikauja aparatinė ir programinė įranga, rasite programinės įrangos skyriuje.

Gavau klausimą, ar šis projektas veiks Europoje su 230V ir 50Hz? Aš negyvenu Europoje ir dažnai ten nekeliauju, kad galėčiau išbandyti šį dizainą. Tai turėtų veikti, jums tereikėtų pakeisti kodo ryškumo laiko eilutę, skirtą skirtingo dažnio laiko uždelsimui.

3 žingsnis: Kovari grandinės dizainas

Kovari grandinės dizainas
Kovari grandinės dizainas
Kovari grandinės dizainas
Kovari grandinės dizainas

Sukūręs savo svetainę, galėjau keletą kartų pašnekėti el. Vienas buvo su Kovari Andreju, kuris pagal šį projektą sukūrė grandinės projektą ir norėjo pasidalinti savo projektu. Nesu plokštės dizaineris, bet tai yra Erelio projektas. Leiskite man žinoti, kaip tai veikia jums, jei jį naudojate.

4 žingsnis: „Giacomo“grandinės dizainas

Giacomo grandinės dizainas
Giacomo grandinės dizainas

Retkarčiais žmonės man praneš žinutes apie įdomią adaptaciją, kurią jie padarė naudodamiesi šia pamoka, ir aš supratau, kad turėčiau pasidalinti ja su jumis visais.

„Giacomo“pakeitė grandinę, todėl nereikėjo centrinio transformatoriaus. PCB yra vienpusis ir gali būti pigesnis sprendimas tiems, kurie negali namuose padaryti dvipusio (šiek tiek sunku).

5 žingsnis: programinė įranga

Programinė įranga
Programinė įranga

Pagal profesiją esu programinės įrangos inžinierius, todėl ši dalis yra išsamiausia.

Vasara: kai „Arduino“pirmą kartą paleidžiamas, vadinamas „setup“() metodas. Ten aš sukūriau keletą kintamųjų ir išvesties vietų, kurios bus naudojamos vėliau. zeroCrossInterupt () iškviečiamas/ vykdomas kiekvieną kartą, kai kintamoji srovė pereina nuo teigiamos prie neigiamos įtampos. Jis nustatys „zeroCross“vėliavą kiekvienam kanalui ir paleidžia laikmatį. Kilpos () metodas vadinamas nuolat amžinai. Norėdami įjungti išvestį, TRIAC turi būti įjungtas tik 10 mikrosekundžių. Jei atėjo laikas suaktyvinti TRIAC ir zeroCross, išėjimas įsijungs iki kintamosios srovės fazės pabaigos.

Internete buvo keletas pavyzdžių, kuriais pradėjau šį projektą. Pagrindinis dalykas, kurio neradau, turėjo kelis TRIAC išėjimus. Kiti naudojo atidėjimo funkciją, kad PWM išvestį, bet mano atveju tai neveiktų, nes ATMEGA visą laiką turi klausytis DMX. Aš tai išsprendžiau pulsuodamas TRIAC tiek daug ms po nulio kryžiaus. Pulsuojant TRIAC arčiau nulio kryžiaus, išleidžiama daugiau nuodėmės bangos.

Štai kaip viršuje esanti osciloskopu atrodo pusė 120 VAC nuodėmės bangos.

ISP814 yra prijungtas prie 1 pertraukimo. Taigi, kai jis gauna signalą, kad kintamoji srovė pereina iš teigiamos į neigiamą arba atvirkščiai, jis nustato kiekvieno kanalo nulinį kryžį į teisingą ir paleidžia chronometrą.

Taikant „loop ()“metodą, jis tikrina kiekvieną kanalą, ar zeroCross yra teisingas, ir laikas, per kurį jis suaktyvės, pasieks TRIAC 10 mikrosekundžių. To pakanka, kad įjungtumėte TRIAC. Įjungus TRIAC, jis veiks iki „zeroCross“. Šviesa mirksėtų, kai DMX būtų maždaug 3%, todėl aš pridėjau sutrumpinimą, kad to išvengčiau. Dėl to „Arduino“buvo per lėtas, o pulsas kartais sukeldavo kitą nuodėmės bangą, o ne paskutinius 4% bangos.

Taip pat cikle () nustatiau būsenos šviesos diodų PWM vertę. Šie šviesos diodai gali naudoti vidinį PWM, kurį sukuria „Arduino“, nes mums nereikia jaudintis dėl „ACC zeroCross“. Nustačius PWM, „Arduino“ir toliau švies tokiu ryškumu, kol nepasakys kitiems.

Kaip pažymėta populiariausiuose komentaruose, norėdami naudoti DMX pertraukimą ant 2 kaiščio ir paleisti 20 MHz dažniu, turėsite redaguoti kai kuriuos „Arduino“programos failus. „HardwareSerial.cpp“turi būti ištrinta dalis kodo, tai leidžia mums parašyti savo pertraukimo skambutį. Šis ISR metodas yra kodo apačioje, kad būtų galima valdyti DMX pertraukimą. Jei ketinate naudoti „Arduino“kaip interneto paslaugų teikėjo programuotoją, būtinai grąžinkite pakeitimus į „HardwareSerial.cpp“, kitaip „ATMEGA328“duonos lentoje bus nepasiekiamas. Antrasis pakeitimas yra lengvesnis. Failas boards.txt turi būti pakeistas į naują 20MHz laikrodžio greitį.

ryškumas [ch] = žemėlapis (DmxRxField [ch], 0, 265, 8000, 0);

Ryškumas priskiriamas iki 8000, nes tai yra 1/2 sekundės kintamosios srovės sinusinės bangos mikrosekundės 60 Hz dažniu. Taigi, esant visiškam ryškumui 256 DMX, programa paliks įjungtą 1/2 kintamosios srovės bangų 8000 us. Aš spėjau ir patikrinau 8000. Atlikti 1000000us/60hz/2 = 8333 matematiką, kad tai būtų geresnis skaičius, tačiau turint papildomą 333us virš galvos, TRIAC gali atsidaryti ir bet koks programos nervingumas tikriausiai yra gera idėja.

„Arduino 1.5.3“jie perkėlė failo „HardwareSerial.cpp“vietą. Dabar tai yra /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Visą tai turėsite pakomentuoti, jei blokas prasideda 39 eilute: #if apibrėžta (USART_RX_vect)

Priešingu atveju turėsite šią klaidą: core/core.a (HardwareSerial0.cpp.o): Funkcijoje „_vector_18“:

6 žingsnis: supakuokite

Įpakavimas
Įpakavimas
Įpakavimas
Įpakavimas
Įpakavimas
Įpakavimas

Aš paėmiau pilką projekto dėžutę „Menards“jų elektros skyriuje. Aš naudoju stūmoklinį pjūklą, kad iškirsčiau elektros kištuko skyles. Prie dėklo buvo pritvirtintas teatro c-spaustukas, pritvirtintas viršuje kabinti. Kiekvienos įvesties ir išvesties būsenos lemputės padeda diagnozuoti, ar kada nors yra problema. Etikečių gamintojas buvo naudojamas įvairiems įrenginio prievadams paaiškinti. Skaičiai šalia kiekvieno kištuko reiškia DMX kanalo numerį. Aš pritvirtinau plokštę ir transformatorių karštais klijais. Šviesos diodai yra įstrigę su LED laikikliais.

Rekomenduojamas: