Obsah:
- Krok 1: Shromáždění hardwaru
- Krok 2: Návrh obvodu
- Krok 3: Kovari's Circuit Design
- Krok 4: Návrh obvodu Giacomo
- Krok 5: Software
- Krok 6: Zabalte to
Video: 4kanálový DMX stmívač: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Cílem je navrhnout a vytvořit přenosný stmívač.
Požadavky:
- Ovládatelné DMX512
- 4 kanály
- Přenosný
- Snadné použití
Tuto myšlenku jsem navrhl svému profesorovi na WSU, protože jsem chtěl spojit své vášně pro divadlo a počítače. Tento projekt se choval trochu jako můj seniorský projekt v divadelním oddělení. Pokud máte nějaké dotazy nebo připomínky, rád vám pomůžu.
Budoucí vývoj by mohl zahrnovat více kanálů, 5pinový DMX konektor, DMX passthrough, 8 dip přepínačů pro změnu kanálu, deska s plošnými spoji.
Tento projekt jsem migroval z https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, protože je myslím stále populární. Také jsem ztratil svůj počáteční soubor iWeb, takže jej již nemohu snadno aktualizovat. Bylo by hezké umožnit lidem sdílet své otázky týkající se projektu navzájem.
Krok 1: Shromáždění hardwaru
Použitý hardware: Většina byla objednána u Tayda Electronics. Líbí se mi víc než DigiKey kvůli menšímu a srozumitelnějšímu výběru.
- ATMEGA328, Mikroprocesor
- MOC3020, optočlen TRIAC. Ne ZeroCross.
- Přijímač MAX458 nebo SN75176BP, DMX
- ISP814, AC optočlen
- 7805, 5v regulátor
- BTA24-600, 600V 25A TRIAC
- 20MHz krystal
- Napájení 9V
Na cestě bylo několik překážek a ponaučení
- Pokud nejste odborník na registry, držte se ATMEGA328P
- Špatné optočleny. Nechcete Zero Cross
- Vysoké kanály byly nestabilní. Přechod z 16 MHz na 20 MHz tento problém vyřešil
- Nelze mít stavovou kontrolku DMX, protože přerušovací hovor musel být velmi rychlý
- DC napájení musí být extrémně stabilní, jakékoli zvlnění způsobí, že bude DMX signál velmi hlučný
Design TRIAC pochází od společnosti MRedmon, děkuji.
Krok 2: Návrh obvodu
K návrhu obvodu jsem použil Fritzing 7.7 na Macu.
MAX485 v horní části slouží k převodu DMX signálu na něco, co Arduino dokáže přečíst.
4N35 vlevo slouží k detekci nulového křížení střídavého signálu, takže Arduino bude vědět, kdy má ztlumit výstup sinusové vlny. Více o interakci hardwaru a softwaru v softwarové sekci.
Dostal jsem otázku, bude tento projekt fungovat v Evropě s 230 V a 50 Hz? Nežiji v Evropě, ani tam často necestuji, abych mohl tento design vyzkoušet. Mělo by to fungovat, jen byste museli upravit řádek časování jasu kódu pro různé časové časové zpoždění.
Krok 3: Kovari's Circuit Design
Během procesu otevírání mých webových stránek jsem mohl vést několik e -mailových konverzací. Jedním z nich byl Kovari Andrei, který na základě tohoto projektu provedl návrh obvodu a chtěl se o svůj design podělit. Nejsem návrhář obvodů, ale je to projekt Eagle. Dejte mi vědět, jak to funguje pro vás, pokud to používáte.
Krok 4: Návrh obvodu Giacomo
Čas od času mi lidé pošlou zprávu se vzrušujícími úpravami, které provedli s tímto návodem, a já jsem si řekl, že bych se o ně měl s vámi všemi podělit.
Giacomo upravil obvod, takže nebyl vyžadován středový odbočkový transformátor. Deska plošných spojů je jednostranná a může být dostupnějším řešením pro ty, kteří si doma nemohou vyrobit oboustranné (trochu obtížné).
Krok 5: Software
Jsem obchodním softwarovým inženýrem, takže tato část je nejpodrobnější.
Summery: Když se Arduino poprvé spustí, zavolá se metoda setup (). Tam jsem nastavil několik proměnných a umístění umístění, které budou použity později. zeroCrossInterupt () je voláno/ spuštěno pokaždé, když AC přejde z kladného na záporné napětí. Nastaví příznak zeroCross pro každý kanál a spustí časovač. Metoda loop () se nazývá nepřetržitě navždy. Chcete -li zapnout výstup, musí být TRIAC spuštěn pouze na 10 mikrosekund. Pokud nastal čas pro spuštění TRIAC a zeroCross, výstup se zapne až do konce fáze AC.
Na internetu bylo několik příkladů, které jsem použil k zahájení tohoto projektu. Hlavní věc, kterou jsem nemohl najít, bylo mít více výstupů TRIAC. Jiní použili funkci zpoždění k PWM výstupu, ale to by v mém případě nefungovalo, protože ATMEGA musí neustále poslouchat DMX. Vyřešil jsem to pulzováním TRIACu v tolika ms po nulovém křížení. Pulzováním TRIAC blíže k nulovému křížení je vydáváno více sinové vlny.
Zde vypadá poloviční sinusová vlna 120 VAC na osciloskopu výše.
ISP814 je připojen k přerušení 1. Takže když obdrží signál, že AC přechází z kladného na záporný nebo naopak, nastaví zeroCross pro každý kanál na true a spustí stopky.
V metodě loop () zkontroluje každý kanál, zda je zeroCross pravdivý a doba, po které se aktivuje, bude pulzovat TRIAC po dobu 10 mikrosekund. To stačí k zapnutí TRIAC. Jakmile je TRIAC zapnutý, zůstane zapnutý až do zeroCross. Světlo by blikalo, když byl DMX kolem 3%, takže jsem tam přidal zkrácení, abych tomu zabránil. To způsobilo, že Arduino bylo příliš pomalé a puls by někdy spustil další vlnu hříchu místo posledních 4% vlny.
Také ve smyčce () jsem nastavil hodnotu PWM stavových LED. Tyto LED diody mohou využívat interní PWM generované Arduinem, protože se nemusíme starat o nulový kříž AC. Jakmile je PWM nastaveno, Arduino bude pokračovat v tomto jasu, dokud nebude řečeno jinak.
Jak je uvedeno v hlavních komentářích, abyste mohli použít přerušení DMX na pinu 2 a spustit na 20 MHz, budete muset upravit některé soubory aplikace Arduino. V HardwareSerial.cpp musí být odstraněn kus kódu, což nám umožňuje napsat vlastní volání přerušení. Tato metoda ISR je ve spodní části kódu pro zpracování přerušení DMX. Pokud se chystáte použít Arduino jako programátor ISP, nezapomeňte vrátit změny na HardwareSerial.cpp, jinak bude ATMEGA328 na desce chleba nedostupný. Druhá změna je jednodušší. Soubor boards.txt musí být změněn na novou taktovací frekvenci 20 MHz.
jas [ch] = mapa (DmxRxField [ch], 0, 265, 8000, 0);
Jas se mapuje na 8 000, protože to je množství mikrosekund 1/2 sinusové vlny AC při 60 Hz. Při plném jasu 256 DMX program ponechá 1/2 sinusovky AC zapnuto po dobu 8000us. Přišel jsem na 8000 pomocí hádání a kontroly. Udělat matematiku 1000000us/60Hz/2 = 8333, takže by to mohlo být lepší číslo, ale mít 333us navíc nad hlavou umožňuje TRIAC otevřít a jakýkoli jitter v programu je pravděpodobně dobrý nápad.
Na Arduinu 1.5.3 přesunuli umístění souboru HardwareSerial.cpp. Nyní je /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Celý tento blok budete muset okomentovat, pokud blok začíná řádkem 39: #if definován (USART_RX_vect)
Jinak skončíte s touto chybou: core/core.a (HardwareSerial0.cpp.o): Ve funkci `_vector_18 ':
Krok 6: Zabalte to
Zvedl jsem šedý projektový box u Menardů v jejich elektrické sekci. Pomocí pístové pily jsem vyřízl otvory pro elektrické zástrčky. Případ má nahoře k zavěšení divadelní c-svorku. Stavové kontrolky pro každý vstup a výstup pomáhají diagnostikovat, pokud se někdy vyskytne problém. K vysvětlení různých portů na zařízení byl použit štítkovač. Čísla vedle každého konektoru představují číslo kanálu DMX. Desku s obvody a transformátor jsem připevnil horkým lepidlem. LED diody jsou přilepené na místě pomocí držáků LED.
Doporučuje:
Výkonný digitální AC stmívač využívající STM32: 15 kroků (s obrázky)
Výkonný digitální stmívač střídavého proudu využívající STM32: Hesam Moshiri, [email protected] AC zatížení žije s námi! Protože jsou všude kolem nás a přinejmenším domácí spotřebiče jsou napájeny ze sítě. Mnoho typů průmyslových zařízení je také napájeno jednofázovým 220V-AC
Inteligentní LED stmívač ovládaný pomocí Bluetooth: 7 kroků
DIY inteligentní LED stmívač ovládaný přes Bluetooth: Tento návod popisuje, jak vytvořit inteligentní digitální stmívač. Stmívač je běžný spínač osvětlení, který se používá v domech, hotelech a mnoha dalších budovách. Starší verze stmívačů byly manuální a obvykle obsahovaly otočný přepínač
Přepínač světla + stmívač ventilátoru v jedné desce s ESP8266: 7 kroků (s obrázky)
Přepínač světel + stmívač ventilátoru v jedné desce s ESP8266: V tomto tutoriálu se naučíte, jak vytvořit vlastní spínač světla a stmívač ventilátoru na jediné desce s mikrokontrolérem a modulem WiFi ESP8266. To je skvělý projekt pro IoT. : Tento obvod zvládá hlavní střídavé napětí, takže buďte opatrní
Bezdrátové dálkové ovládání pomocí 2,4GHz modulu NRF24L01 s Arduino - Nrf24l01 4kanálový / 6kanálový přijímač vysílače pro Quadcopter - RC vrtulník - RC letadlo využívající Arduino: 5 kroků (s obrázky)
Bezdrátové dálkové ovládání pomocí 2,4GHz modulu NRF24L01 s Arduino | Nrf24l01 4kanálový / 6kanálový přijímač vysílače pro Quadcopter | RC vrtulník | RC letadlo pomocí Arduina: Provoz RC auta | Kvadrokoptéra | Dron | RC letadlo | RC loď, vždy potřebujeme přijímač a vysílač, předpokládejme, že pro RC QUADCOPTER potřebujeme 6kanálový vysílač a přijímač a ten typ TX a RX je příliš nákladný, takže si jej vyrobíme na našem
4kanálový DMX vysílač: 24 kroků
4kanálový DMX transceiver: DMX IO Platform Module je 4kanálový DMX transceiver. V režimu příjmu může ovládat až čtyři kanály nízkonapěťového TTL (3,3 V, např. Pro serva a malé LED diody) nebo silnoproudého (12 V, např. Žárovky, relé, solenoidy, krokový motor atd.) Výstupu