Maximum usage time of the installation is determined by the max unsigned long value an Arduino can process, which is 232-1 seconds = 4,294,967,295 seconds = 138.08 years (Assuming the installation runs 24/7. The timer is stopped when installation is not powered).
The installation utilizes two redundant Arduino Uno microcontrollers, each with a DMX shield.
The Arduinos are powered by a 5V Meanwell PSU. 5V VIN can be toggled with a flip switch on the front of the panel.
For saving the current state of the installation to the internal EEPROM on power loss, a simple supercapacitor circuit is wired to the power circuit, which powers the microcontroller after power loss for the amount of time needed to save the state to EEPROM. The saving function is called via PIN 13 (Which is active low, and directly connected to the 5V VIN).
Program is written in the Platform.io environment, which allows C++ usage and better code/library management for arduinoesque microcontrollers.
To upload code to the microcontroller, put jumper EN to !EN on DMX shield. This disables usage of the serial port by the dmx shield, thus preventing USB serial connection. After successfull upload revert the position of the jumper back to EN.
DMX signals are ouptut on channel 1-12. Receiving end is a 12 channel DMX dimmer.
Because of the usage of the serial port by the Conceptinetics library, any usage of the serial port (Such as debugging via Serial.println()
is disabled when the library is integrated.) For successfull build including the Conceptinetics library, delete or comment all code containing Serial
.
For debugging purposes uncomment the MACRO definition DEBUG
in ./include/define.h. This will reenable The usage of Serial monitor.
Timings for divisions and fadetimes are changed in the int[] array in ./src/variables.cpp (in seconds).
Light # | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Pause Time (in sec) | 34 | 27 | 44 | 38 | 23 | 28 | 30 | 22 | 29 | 42 | 43 | 36 |
Fade Time (in sec) | 22 | 21 | 27 | 24 | 19 | 27 | 29 | 29 | 32 | 25 | 26 | 22 |