0
\$\begingroup\$

I'm looking to build a nixie clock. I have looked online, I found some guides but many used expensive nixie clock kits or custom pcbs. I came across some threads about driving a single nixie tube with an arduino. Later I found this thread here on this site called "How to drive nixie tubes from Arduino". In the thread JIm Dearden solved the problem that the creator had like me he also had a problem/question about connecting multiple nixie tubes to one board. But if you want to connect 4 digits/nixie you would need 16 io pins. But the board only got 14? Jim also talked about adding 4 bit latches between the arduino and the 74141 driver. Avoiding the need to tie up the I/O lines or multiplex the display. What does he mean with that? How do you wire it? Is it another chip that you put between or how does it look? This is the picture that Jim Dearden posted in the thread that I want to follow. Thank you for you time :)Jim Dearden

\$\endgroup\$
  • \$\begingroup\$ Jim is correct by saying that you should use a decoder. It essentially "compresses" the amount of "inputs" you can have to allow more outputs, to put it simply. A single 4x16 decoder probably wouldn't be able to cover 4 nixie lights. Also, I see where you got the images from. Have you not looked at the directions? So you'll probably need three 4x16 decoders. The Arduino Uno does have 12 PWM/Digital IO pins. \$\endgroup\$ – KingDuken Nov 28 '17 at 22:59
  • \$\begingroup\$ But what is the decoder called? Is it a chip? I was thinking about using four 74141 driver ic to drive the four nixie tubes. But there isn't enough pins so that's why must use the 4x16 decoder? But why do I need 3 of them and not 4/1 for the last pins? \$\endgroup\$ – Classic Games Nov 28 '17 at 23:17
  • \$\begingroup\$ Have you considered how display multiplexing works? \$\endgroup\$ – ThreePhaseEel Nov 28 '17 at 23:21
  • \$\begingroup\$ @ClassicGames Something like a SN74154 would be a good 4x16 decoder IC chip. Also, since there are 10 pins per tube, you don't need four ICs. You need 40 total different outputs to select and you can use 3 ICs (since 3 times 16 is 48). Therefore, you can use the remaining outputs from one IC and use them for the other tubes. \$\endgroup\$ – KingDuken Nov 28 '17 at 23:25
  • \$\begingroup\$ The Arduino pins are what's going in the decoder. If you know how a decoder works, then you can program it to activate particular spots in the decoder to get a particular output that you want. I'll post an answer later tonight. I'm a little busy right now. \$\endgroup\$ – KingDuken Nov 28 '17 at 23:50
1
\$\begingroup\$

To create a Nixie clock you either go with the much older technology .... 74141 decoder and a latch, or modernize your circuit to use far fewer pins and readily available components.

I'd suggest you could use the Microchip/Micrel 5822 8 bit shift register and high voltage driver which is more than capable of driving any Nixie tube.
enter image description here You need 40 cathode drivers for four Nixie tubes so 5 * MIC5822 chips are needed.
Connected as a serial shift register you would need a single clock, data line and strobe from your MCU, and connect the data out to data in for the rest of the chips.
You could use the *OutputEnable signal to modulate the brightness but this requires another pin on your MCU.

Since the MIC5822 has an internal latch you only need to update the shift register at the rate of your fastest digit change, 1 minute or the update rate when setting the time. This makes for very simple software with no fast update timers or interrupts, and only requiring 4 pins maximum on the MCU.

The MCU data connection would look like those shown below ...note I have not shown VCC/Gnd or cathode connections:

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$
  • \$\begingroup\$ To make things more simple and cheaper so that I don't need need to buy 4 74175 and 3/4 K155ID1 (74141) chips could you like this guy in this video? He used 4 K155ID1 (74141) and a mcp23017 io expander to drive 4 nixie tubes. Could the same thing be done with an arduino? youtube.com/watch?v=pt0YVQzNv0Y \$\endgroup\$ – Classic Games Nov 29 '17 at 21:28
  • \$\begingroup\$ I just explained how you could use just 5 * MIC5822 to replace the 74141's and 74175's and an Arduino MCU ...what part did you not get? \$\endgroup\$ – Jack Creasey Nov 29 '17 at 22:35
  • \$\begingroup\$ Yes but it's much more expensive for me. The MIC5822 cost like 4 dollars a pice and the k155idi and mcp cost like under a dollar per pice. \$\endgroup\$ – Classic Games Nov 30 '17 at 7:35
  • \$\begingroup\$ If you want to use I2C on Arduino, go for it. Just search for "Arduino I2C" there is lots of information. You simply run the MPC23017 on 5 V for the Arduino. \$\endgroup\$ – Jack Creasey Nov 30 '17 at 16:35
  • \$\begingroup\$ Thank you for the help. So it should work to build the same thing on the arduino then. Will order the parts later. Do you know if the UNO R3 ATmega328P will be able to run this? \$\endgroup\$ – Classic Games Nov 30 '17 at 20:01
0
\$\begingroup\$

Essentially, the idea is to provide intermediate storage of data between the Arduino and the driver. This can be simply done with 4 extra lines. A 74175 (well, 4 of them) can be used, and will require 4 extra io lines, and one 74175 per register. The idea is something like

schematic

simulate this circuit – Schematic created using CircuitLab

Each Nixie has a 74175 - I've only shown 2. The 4 data lines are connected ("bussed") to all 4 registers. Data is output on the 4 data lines, and the clock to the appropriate register is toggled. On a rising edge, the data is grabbed, stored, and presented to the associated 74141.

Note that is is possible to do this with only 3 extra lines, but this requires another support IC - a demultiplexer such as a 74138 or 74139. In this case 2 lines would provide a digit address and the third would provide a clock. The demux will transfer the clock to the appropriate output to drive the register associated with the digit selected by the two address lines.

\$\endgroup\$
  • \$\begingroup\$ So the signal comes from the audroino to the 74175 chip. At the same time the connection is "bussed" so the other 74175 chip get the same signal. Wouldn't the 2 digits show the same digits at the same time then? For example if i want the clock to show 12.35, one tube for each digit. If the adruino send the first chip to show number 1 wouldn't the secound bussed chip that is connected to the secound digit show the same time? \$\endgroup\$ – Classic Games Nov 29 '17 at 16:55
  • \$\begingroup\$ Or does the 74141 driver correct this in some way? So could I "buss" 2 different chips so the clock use 4 io connectors then to drive all 4 digits? You said something about that you can only do this with 3 extra lines. And that you would need a demultiplexer. Do you mean if I want to use 3 lines/busses I need the demultiplexer? So if I use 2 busses on one chip linke your picture shows and do the same buss on some other io pins i don't need the demultiplexer? Like 1 buss drives 2 chips/nixie and 1 more buss drives 2 chips/nixie so in total 4 nixies on 8 io lines. \$\endgroup\$ – Classic Games Nov 29 '17 at 17:07
  • \$\begingroup\$ @ClassicGames - You send data to all 4 74175s. Since you have 4 74175s, you need to provide 4 separate clock lines, one for each. When you have, for instance, the data for the 2nd digit available, you drive a pulse to the second 74175. Please look up the data sheet on the demultiplexers I mentioned. You would send 2 bits to the address lines, then 1 clock pulse to the appropriate enable line. This would produce a pulse on the demux output pin specified by the 2 address lines, and this would go to the desired 74175 clock pin. \$\endgroup\$ – WhatRoughBeast Nov 29 '17 at 19:25
  • \$\begingroup\$ Yes that sounds good. The clock line that you talk about, I need 4 different ones so you send data through the different lines to control the four nixies. What pins on the arduino can I use for the clock line? \$\endgroup\$ – Classic Games Nov 29 '17 at 20:25
  • \$\begingroup\$ To make things more simple and cheaper so that I don't need need to buy 4 74175 and 3/4 K155ID1 (74141) chips could you like this guy in this video? He used 4 K155ID1 (74141) and a mcp23017 io expander to drive 4 nixie tubes. Could the same thing be done with an arduino? youtube.com/watch?v=pt0YVQzNv0Y \$\endgroup\$ – Classic Games Nov 29 '17 at 21:28
-1
\$\begingroup\$

The Arduino Mega has like 52 io pins. I've seen them as cheap as $10.

\$\endgroup\$
  • \$\begingroup\$ This doesn't really answer the OP's questions, could you elaborate? \$\endgroup\$ – Voltage Spike Nov 28 '17 at 22:59
  • 1
    \$\begingroup\$ There's cheaper alternatives... Plus, programming that many pins is not only a pain in the butt but it can get messy on a circuit board. \$\endgroup\$ – KingDuken Nov 28 '17 at 23:00
  • 1
    \$\begingroup\$ What other alternatives do you know of KingDuken? \$\endgroup\$ – Classic Games Nov 28 '17 at 23:13
  • \$\begingroup\$ To make things more simple and cheaper so that I don't need need to buy 4 74175 and 3/4 K155ID1 (74141) chips could you like this guy in this video? He used 4 K155ID1 (74141) and a mcp23017 io expander to drive 4 nixie tubes. Could the same thing be done with an arduino? youtube.com/watch?v=pt0YVQzNv0Y \$\endgroup\$ – Classic Games Nov 29 '17 at 21:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.