Hello, I'm wanting to use some VFD displays. These are all old and have no datasheet. And no smart controller chip; just the pins. I think I know how to power the display and also how to illuminate a single element. I have several of these things: from a few digits to 8 digits : some are 7-seg; some are the more complex 12(?) element type. AFAIK the way to write to these things is to use shift registers Suppose we have 4 digits and each is 7 segments/elements: that's 11 , so 2 shift registers are needed. To write to it you have to send an 11-bit stream, then strobe it and start all over again. It isnt efficient, but it works, so I'm told. A competent programmer could bash this out in C, but I need to use Arduino at this time. Say I want to spell out 'HELLO'. ( well I suppose I need 5 digits not 4, but let us not worry about that just now ) So I need some kind of look-up table or array for each letter? so the register will only illuminate the correct elements. Not sure how that's done. And how do I create an 11-bit stream ( or any stream, really?) I dont think there are any suitable libraries available yet. Bruce
Suppose we have 4 digits and each is 7 segments/elements: that’s 11
4 * 7 != 11.
A competent programmer could bash this out in C, but I need to use Arduino at this time.
Good thing that you use C (and C++) to program the Arduino.
Say I want to spell out ‘HELLO’. ( well I suppose I need 5 digits not 4, but let us not worry about that just now )
But, we need to.
So I need some kind of look-up table or array for each letter?
That depends on how the shift registers are used. If each drives one letter, then a table (also known as an array) makes sense.
And how do I create an 11-bit stream ( or any stream, really?)
Look at how many bits you really need. It is NOT 11. It is 7 per character. 7 bits fits nicely in a byte.
I dont think there are any suitable libraries available yet.
Since you don’t seem to understand the hardware, that is probably true.
You might look at MAX6931, a VFD driver chip.
MAX6921-MAX6931.pdf (137 KB)
Cross Roads: I actually have that ic, but there are difficulties with it. It is an Industry standard ic and I'd rather go for the individual shift-register approach. PaulS; if you want to help fine; if not then dont reply. I'm sure you're a hugely clever guy with lots of programming experience, but youre also vain and facetious. And wrong! in this context 7*4 [u]is[/u] 11.
And wrong! in this context 7*4 is 11.
I'm willing to listen, if you knock off the name calling. Please explain how 4 characters with 7 segments does not result in 28 segments, each of which is individually addressable.
Well, I'm sorry Paul, but your answer looked facetious. If you have 4 digits, then that's 4 pins. You sequence the digits When a digit is ON, you send the info the the elements ( 7; 8 with a DP ). So, 7 more pins In fact, if you use a shift register you can do it with just one pin. So, 7 TIMES 4 is 5; simple mathematics! If you want to help, and you know programming, then answer me this one: suppose I wanted to run a 3-to-8 decoder chip ( 74LS138 ) You have 3 pins, say RB1, RB2, RB3 and these pins have to output binary from 1 to 8: ( 001, 010, 011 etc..... ) in sequence, with a brief pause at each value. For the life of me I can see a straightforward way to do it. Bruce