Arduino Mini and TLC5940 based 32 channel 12V PWM dimmer with DMX512 and RDM support.
- Features
- Building and connecting the PCB
- Installing the Software
- Setting the DMX channel
- Write your own Software
- Arduino Pin Configuration
- Contributing
- See also
- License
- 32 channels
- several amps current capability per channel
- high PWM frequency
- DMX512 with RDM support
- control LEDs, LED-Strips, Lamps, Motors, Relays, ...
The double sided PCB has surface mounted components on both sides. All resistors and capacitors are 0805 sized parts. Screw terminals are available for all connections.
On the PCB, there is no dedicated programming connector. Instead, directly connect a serial adapter to the Arduino Pro Mini. Make sure that no DMX device is connected to the PCB.
Install the required libraries within the Arduino IDE
- tlc5940 Control of the two TLC5940 ICs
- dmxserial2 Used to handle DMX and RDM decoding
Open the Sketch with the Arduino IDE, change the DMX address if needed, select the correct serial port and Hardware (Arduino Pro Mini or Arduino Mini) and click Upload.
The DMX channel can be preset in the Arduino source code. Later, it can only be changed via RDM (Remote Device Management) commands.
The PWM signals are created by two chained TLC5940 PWM LED drivers. Output 1-16 of U7 maps to Output 1-16 on the PCB, output 1-16 of U8 maps to Output 17-32 of the PCB. Per channel, one 74HC04 inverter is used. It is necessary because the PWM controller cannot completely turn off a directly connected N-channel MOSFET. It cannot get it's PWM count down to 0. By inverting the PWM signal, the PCB output can be turned off by fully turning on the TLC5940 channel.
Pin | Function |
---|---|
0 | RxD (DMX) |
1 | TxD (DMX) |
2 | RS485 (DMX) Direction |
3 | GSCLK (TLC5940) |
9 | XLAT (TLC5940) |
10 | BLANK (TLC5940) |
11 | SIN (TLC5940) |
13 | SCLK (TLC5940) |
Unlisted pins are not connected. The internal voltage regulator on the Arduino Mini Board is not used.
Take a look at the schematic too. It should clarify things further.
If you want to improve something, feel free to create a pull request.
One thing to optimize is the linear voltage regulator. Maybe someone is interested in fitting a suitable step down converter into the PCB?