Continuing the development of my UV exposure box I have designed and built a countdown timer.
There are a few others out there for the same purpose, but I wanted to add some more features to make things better.
As I have mentioned in the previous post, safety was a big concern for me so I added a switch that should prevent turning on the UV LEDs when the lid is open. Of course, this is not enough, so the switch has to work along with the timer ensuring that everything goes smoothly.
The key features that I wanted:
- Exact time display
- Adjustable time, 10 second resolution
- Start/pause function
- Automatic pause and UV LED turn off when the lid is open
- Some predefined available values for easy access.
Implementing the safety measures is easy, as the switch on the box could be made to connect either the RED or the UV LEDs. The timer needs to control the UV LEDs, so I have used a MOS transistor. It also needs to know the state of the box lid. I have built a circuit that can achieve all this. The concept schematic can be seen below:
The schematic shows, symbolically, the red and UV LED arrays through the basic cell that is repeated on the panels: a series of three LEDs and a resistor. As you can see, there is no way to turn on the UV light when the lid is open, even if such a command would come from the microcontroller. The microcontroller can turn the UV light on via the MOS transistor only when the lid is closed. This is controlled through software too. In order to sense whether the lid is open or not, the microcontroller monitors the state of the cathode of the red LED array. When the lid is open, this is shorted to ground and the micro sees a low logic level. When the lid is open the red LEDs will conduct current and force the microcontroller to see a high. This current is small, limited by the 10K resistor and therefore the LEDs do not appear to be on. I could have chosen to leave the red LEDs on all the time as this does not influence the functionality of the exposure box, but it adds extra consumption and more heat needs to be dissipated by the lower panel.
Although it is not totally justified, I decided to go the full effort and make this timer with a display. There could be many more ways to do this starting from a simple 555 circuit. I wanted the circuit to be a challenge for the box itself, so small SMD parts are used wherever possible.
The display is a KW4-361ASB from Luckylight. It is small, 9mm digit height and has 4 multiplexed digits. There were two basic criteria for selecting this particular part, first I wanted it to be small and efficient so that a small current is enough for a bright display and second I wanted it to be multiplexed as this simplifies board layout.
I choose an ATTiny2313 microcontroller as it has all the features needed to implement all the tasks: sufficient pin driving capability, a timer, enough pins and memory. It’s got an internal oscillator too, but as I missed it, the tolerance is within 10% which I consider too high for this project. I have later added a crystal on the board but adjusted the starting timer value on my particular circuit to compensate for the internal oscillator deviance. This was easy as I knew that the refresh frequency for the display should be 50Hz, so a frequency meter was all that I needed. I believe that this should not fluctuate and no future compensation will be needed to maintain the error at a small value, maybe less than 2-3%. I do suggest using a quartz crystal, but this is not mandatory, you may use my method or simply accept the maximum 10% tolerance.
To turn on the UV LEDs I have used a TSM2302 MOS transistor which has a capability of 3.6A, more than enough for both the boards. Other transistors may be used, such as IRLML0060TRPBF.
Other than this, there are 4 buttons on the board, a 7805 regulator and connectors. The 4 buttons have the following functions, from left to right: START/STOP the timer, UP – adds 10 more seconds, DOWN – subtracts 10 seconds, MEM – recalls some preset values from the memory.
Because software allows flexibility in connecting the display, I chose to make the connections as easy as possible for the PCB layout, and this is why the schematic is not very straightforward.
The connection of the lid switch and LED arrays is shown below:
Because the box was functional, I decided to make the PCB a challenge for it: Small display, small SMD components. The finished PCB is shown below, the board is very compact and measures less than 6×3.5cm:
You may wonder why there is no programming connector. The reasons are two: I wanted to make it as compact as possible and the fact that it is the type of circuit that requires a single programming (For the end user). As all the pins required for programming are connected to the display it is easy to connect a few wires to the programmer, as you can see I did in the picture below:
The finished timer(there’s no silk screen because my laser printer broke ):
And, of course, a 3A protection diode, just in case:
Other similar built boxes:
Another box built by kh9005, uses a different grouping for the LEDs to suit his power supply and an adapted timer pcb:
dewp has a larger box, complete with psu: