Introduction: 6 Digit Nixie Clock / Timer/ Thermometer
This project is about a 6 digit precise clock with NIXIE tubes.
With a selector switch that you can choose between TIME (and date) mode, TIMER mode (with 0.01 sec accuracy), and THERMOMETER mode.
An RTC module holds the date and time by an internal battery.
A PIR sensor is provided to shut down the display when nobody moves front of the clock for a few minutes.
Please note that, for this project you will must have minimum-to-moderate electronic skills.
Disclaimer/ WARNING :
This circuit produces high voltage which can cause electric shock and/or damage to the equipment.
- Nixie tubes (6)
- 74141 or 7441 IC (1)
- Arduino Pro Mini (1)
- 555 IC (1)
- 4098 IC (1)
- RTC DS 3231 module (1)
- LM35 (1)
- 7805 Regulator (1)
- MPSA42 Transistor (6)
- MPSA92 Transistor (6)
- IRF740 MOSFET (1)
- IRF540 MOSFET (1)
- BC547 Transistor (1)
- 22 K Resistor (12)
- 10 K Resistor (7)
- 1 M Resistor (7)
- 100 K Resistor (1)
- 1 K Resistor (1)
- 2.2 K Resistor (1)
- 220 K Resistor (1)
- 1 K Potentiometer (1)
- UF4004 Diode (1)
- 100 uH 1A inductor (1)
- 4.7uF 200 Volt Capacitor (1)
- 10uF 25 Volt Capacitor (1)
- 220uF 25 Volt Capacitor (1)
- 100nF Capacitor (1)
- 100pF Capacitor (1)
- 2.2nF Capacitor (1)
- ON/OFF switch (1)
- 3 state selector switch (1)
- Push button (4)
- Adptor jack (1)
- 9 volt wall adaptor (1)
- Multipurpose PCB, pin headers, etc. as needed
Step 1: About the Nixie Tubes
Nixie tubes were standard display for numbers, before invention of seven segments. They are essentially neon vacuum tubes and each digit is a cathode of the tube, which glows upon high voltage connection.
They look very beautiful, but unfortunately, they are hard to find these days. Although they are still available in the online stores like ebay etc.
I scavenged 12 nice Nixies from an old calculator that was not working. In most cases, the display of a calculator is not the part that is damaged :)
In my case, the metallic pins were severely corroded and some of them were detached from the connection point to the glass! I soldered a wire to the point, and fixed it by cyano-acrylate (1,2,3) glue.
My nixie tubes were NEC LD955A. You can use any nixie tubes that you can find, and the electrical specifications are pertly similar. You can find the pinout by searching the tube number in the internet, or you can find the pins by applying 180 volt DC to the pins. The common pin, (Anode) should be connected to +180 v and each of the other pins is connected to ground, via a 2.2K resistor. Write down the pin number and the corresponding digit that is displayed.
I did not design a PCB, because I intended to make a prototype. Besides, I could not find the footprint of the nixie tubes. So I used multipurpose board. You can design a PCB if you want.
Step 2: Schematic Description
The nixie tubes are multiplexed, to reduce the pins required for operation of 6 digits. The 74141 (or 7441) IC is a BCD-to-decimal convertor that is able to handle high voltage. One 74141 in enough, because the tubes are multiplexed. This IC drives the cathodes.
In order to drive the anodes, I used two high voltage transistors per digit (obviously the Arduino cannot handle 180 volts!)
To hold the time in case of power disconnection, I used an RTC module (real time clock) that utilizes a 3V lithium battery. It will hold the time and date very precisely over a long time, maybe more than 1 year.
For the PIR sensor, I used a tiny module (SR505). Unfortunately, this module holds the output signal for only 8 seconds, which is not enough in my opinion. I preferred this time to be around 2-3 minutes. The PIR modules that have adjustable time delay, are bigger and do not fit in my compact design. So I added a monostable multivibrator (CD4098) to lengthen the time delay.
The high voltage generator uses a 555 oscillator and a MOSFET transistor.
Step 3: Assembly Notes
1) Assemble the high voltage circuit and adjust the voltage at 170-180 Volts by the potentiometer.
2) Test the nixie tubes and find their pinout. (+180 V with a 22k resistor in series to the anode, ground the the other pins on by one)
3) Connect the similar pins of the tubes together (except the anodes) for multiplexing.
4) Test the wiring by applying high voltage to each anode and cathode.
5) Assemble of the high voltage transistors and the 74141 IC.
6) Test the circuit by applying high or low logic levels (0 and +5v) to the inputs of 74141 and base of the MPSA42 transistors, each digit of the corresponding tube should glow.
7) Program the Arduino pro mini.
As you may know, the Arduino pro mini needs a special interface to be connected to computer. You can find proper instructions in the internet.
8) Connect the Arduino. When the tubes proved to work correctly, you can proceed to add RTC module, LM35 temperature sensor, the PIR sensor, and the switches, push buttons etc.
I installed the nixie tubes in three groups of two (for hours, minutes, and seconds), so there was no need to add a separator lamp.
Try to align the tubes on board carefully to have a nice look. You can tilt the tubes to have a good angle of view.
Step 4: User Guide
1) TIME mode: In the normal operation, time is displayed. If nobody is present (and moves) in front of the clock, the lamps will be shut down after about 2 minutes, to lengthen the life of the tubes.
By turning the SW1 switch on, you can bypass the PIR sensor so that the tubes will remain ON permanently.
In the TIME mode, date can be displayed by pushing the "Date" button.
2) TIMER mode: If the selector switch is in TIMER mode, you should first push the “Date” button to reset the timer. This button also acts for start/stop of the timer.
3) THERMOMETER mode: The thermometer mode can be selected by the selector switch. In this mode, the ambient temperature is displayed in Celsius degrees. To middle tubes will show the degrees and next tube on the right shows one-tenth of degree. As the digit are assembled in groups of two, there is no need for a decimal point. The other digits remain OFF in the thermometer mode.
(If you want the temperature is displayed in Fahrenheit degrees, you should change the program of Arduino accordingly. You can find the piece of program for this purpose in the internet.)
4) How to set date and time:
In the TIME mode, press and hold the "Set Hour" button. The hour will advanced one every second. Adjustment of the minutes is done exactly as hours by pressing the "Set Min" button.
For adjusting the seconds, push the "Set Sec" button and hold; the seconds counter will stop counting. When the desired time is reached, release this button.
For setting the date, hold the “Date” button by one hand, and press the "Set Hour", "Set Min" and "Set Sec" buttons to adjust year, month and day as desired.