DMX Readout
Part of my lighting system design
utilizes DMX as a communication protocol between my
controllers and the fixtures. The system has the ability to
map various data fields to any DMX channel. This is fairly
easy to test with RGB fixtures but becomes difficult with
more complex fixtures. I found Max Pierson’s excellent Arduino DMX
receiver code. I hacked on it a bit to add a
standard parallel LCD display that can display any eight
sequential channels in real time. The display also shows
the number of frames being transmitted per second. The
whole thing wired on a perf-board and thrown into a
cheap plastic case that originally held a Christmas
ornament (a mistake, these cases are too fragile).
Circuit Diagrams (Arduino-based and Stand-alone
ATMega168)
and Arduino Code. Note that this only compiles under
Arduino 0016 (let me know if you fix it for a later
version!). I had only three signals left over for
control after connecting the serial interface and LCD. I
implemented a three button solution for setting the
starting address. Up and Down buttons increment or
decrement the starting address by 1 for each press.
Holding the Fast button causes the channels to change
rapidly while Up or Down are held. Holding Up and Down
together resets the starting channel to 1.
Power Supply Voltage Display

I
bought an inexpensive adjustable power supply based on the
732 regulator IC from canakit and then designed a simple digital
voltage readout for it using a PIC 16F373A and 2.5 volt
reference. I scrounged around and found some 0.1%
resistors that summed to 28.005 k-ohms to go with a
4.000 k-ohm 0.02% resistor I had to create the input
voltage divider (0-20 volts scaled down to 0-2.5 volts).
The displays were bright enough that I didn't need
common cathode drive transistors and could sink the
current for an entire digit with on PIC IO pin. Probably
took 3 hours in total. Obviously it would have been a
better use of my time to have just purchased a cheap DPM
on ebay but we don't always choose the most efficient
route and I didn't want to wait. If you're in a bind but
have a few parts laying around perhaps this
circuit and program can help you out. You can easily
adjust the input voltage divider or code to deal with
whatever resistors you have at your disposal. Write it
in C for your favorite microcontroller or an Arduino and
the coding will only take a few minutes.
Event Counter
Along the same lines as the power supply voltage display I also built an event counter using a PIC 16F84A and Siemens DL2416T display. I have primarily used this event counter to count the number of packet failures I see in the digital radio that is part of the lighting control system. However it has proved helpful occasionally for other projects as well. It can count to 19999 and then indicate an overflow. The "1" is indicated by the LED turning green. An overflow is indicated by the LED turning from green to red. Another very quick and dirty project based on an immediate need. I had the display and PIC. I only used this alphanumeric display to display numbers 0 - 9 so I could tie off unused data inputs and have the PIC only output BCD information. Schematic and code if you're interested.