Hi, I'm new to Arduino. I bought a starter kit about a year ago and finally thought of something I could try to make with it - I learn better if I can think of something to do rather than just looking at tutorials.
I had an old audio timer - basically a digital clock that will, at certain times, turn on a mains output. It stopped working a while back. Seems like a simple project to replicate with a Uno, and so far it all works. I haven't tried the switching of mains yet, that seems to be just a case of adding a solid-state relay, or maybe even using the relay that was in the old device.
But, I'm struggling to find a suitable display for it. I have an opening in the case (I want to use the old case if I can) around 25mm x 80mm. All my testing is using an OLED 0.96" display, but that's not going to be any good for the real thing because it's so small.
Can anyone point me to decent suppliers who might have a range of displays? I've spent a bit of time on eBay, but there I run into page after page of the same item, with the same photo and not enough information to pick. Similarly AliExpress - loads of choice, not usually much information.
I'm trying to stick with I2C and a Nano, mainly because I've got a Nano and it seems like such a basic task. Obviously if there's no way to do it on that platform and I have to go bigger / better, then I can look at that. I did have a look at using the original display, but I don't think my electronic "skills" are up to it.
If the answer is to just spend more time on Ali / eBay then fair enough, feel free to point that out too.
Thanks, I'll get the case off again. It's a custom display as it has days across the top (if I remember correctly). I did wonder about re-using it (as I want to re-use the buttons on the front, all 23-odd of them) and when I took the lid off, it looked as if it was perhaps going to be too much work at my level of hardware knowledge. It's soldered directly to the main PCB.
Having a browse just now and there are some 1.5" OLED displays that aren't terribly expensive on Ali, or a little more on ebay, I'm thinking that two of those alongside each other might be enough for this particular project.
The most common displays use on the Arduino are inexpensive ($3-$5) 1602 (2 lines of 16 characters) and 2004 (4 lines of 20 characters) LCD displays available in a number of colors. Many are now available with I2C interfaces. You can define up to 8 custom characters, allowing the display of four large digits on a 16x2 display. That would allow your display to be a clock when you weren't actively changing settings.
Oh, that's interesting to know as well, thanks. I had discounted the 2-line LCD displays because I hadn't realised that this was a possibility. They're certainly cheap enough to get one just to try.
I believe that's a vacuum fluorescent display, and it looks custom-made for the job as it has the time display, days of the week across the top (hard to see because of the angle) and a couple of other symbols above the seconds display.
I imagine it might be possible to use this display, but the more I think about it, the more I think I'd prefer not to, but it's just a case of picking something that is big and bright enough to see properly, and also dimmable so that it's not acting as a night light in a dark room.
The more I think about it, the more the 1.5" OLED displays look like they'll do the trick, although I haven't checked to see if I can dim them - maybe they aren't bright enough for that to be an issue. The original unit has a sensor above the display and when the room gets to a certain light level, the display goes dimmer. That aspect of it is probably very simple, if the display supports it. The OLED would give me more options to add future stuff if I can think of anything.
I had a look at this aspect of your suggestion, and all the places I saw it discussed seemed to be saying that the custom characters are at the standard character size. I can't picture how that would allow me to draw four larger digits unless I'm very lucky and can re-use some quadrants.
The VFD looks very nice. You should be able to drive it fairly easily. Just note the i.c. numbers and count how many i.c.s
Regarding a 20x4 LCD with custom "BIG NUMBERS". I guess that the current "big digit" libraries can display every digit from 0-9 in random combinations.
So it is feasible but does look crap.
You can get GLCD e.g. 128x64, 192x64.
Or expensive big OLED e.g. 128x64, 256x32.
You can control GLCD backlight or OLED intensity. Likewise you can control 20x4 LCD backlight.
Your photo has obscured whatever is along the top of the display.
It's a lovely display and would be very nice to use. Obviously it cannot be used on its own, but must be used with all the display drivers already on the board. If that happens to be a single IC implementing the clock function, then you would be stuck. On the other hand (OTOH), repairing it would be a logical approach, finding out why it stopped working.
Yes, I noticed that, but not until I'd taken the photo, transferred it to the PC, cropped it, and put the timer out of the way. It just has day names "Mon", "Tue" and so on across the top.
This is true, but I'm more comfortable with software than hardware and I figured that the functionality could be a good use for my Arduino kit. I can see two ICs on the board, a TI MP1508 (the larger of the two) and a DKI MSM5562RS. I have had a quick search on those two just now, but cannot find any data sheets for them.
As I recall it, the fault was that the time display started racing, then slowing down, then racing again, which in turn led it to turn on the mains power output as soon as it reached an alarm time. There was nothing wrong with the actual display itself, just the information it was displaying.
Thanks, I was searching more for programmable characters, which doesn't give anything like the same information. Of course, I didn't think of just defining some solid blocks and using those to draw the numbers. I was imagining that eight shapes wouldn't be enough, but one of the first articles linked covers all that.
Yes, that might be the way to go, at least for now while I get it working. I can always change it later on. I do like to be able to use it as a normal digital clock which means having a visible display. A 16x2 LCD is a cheap way to give it a go. The article I just read showed a reasonable-looking font, it's not incredible but it'll do if I can get the brightness to a suitable level.
This may be due to a fault in the IC, but is more likely to be a fault in the "Tact" pushbuttons. They often contain a lubricant which over time, attracts moisture and becomes conductive. If you disconnect the pushbuttons and the fault behaviour stops, you have your answer.
This is particularly bad where a number of pushbuttons are used to connect resistors to an analog input in a form of analog "multiplexing" to supposedly reduce the number of inputs required.
As I say, I didn't look into it any further. That probably was because I imagined it to be something more complicated, didn't dawn on me that it might be just the buttons. I may well pull the plastic shroud off one of the button sets and have a look, maybe get some contact cleaner. Only down-side of that is I can't then use my new-found Arduino skills if I repair the original unit.
Ironically the best thing about this particular timer over the old one I'm using in it's place is that I can program different on-times for different days of the week, so have an earlier one in the week compared to the weekend. This was ideal when I worked in an office and had to get up early, and now I don't.
Thanks, I will have a look at that. At the time I thought of using the Arduino for this, I hadn't considered using anything other than the case and maybe the mains power relay.
Oh, is that not good? I have been reading about different ways to support multiple buttons without having to have a pin for each one, and if I was going to replicate the 23 individual buttons on this device on a Uno I'd need to do some kind of multiplexing. The buttons are shrouded in plastic cases, but have more than two wires per block so I expect it may be some kind of grid arrangement. The block of ten buttons has ten wires, but the block of thirteen buttons has eleven wires. It's clear that both have space for more buttons, I can see the contact pads below a couple of the empty holes.
Multiplexing in a "grid" or matrix is generally the best way, you have to add diodes to the buttons if you ever anticipate more than two to be pressed at any one time.
The analog input with resistors encoding up to eight or so buttons to a single input has frequently been used in devices such as MP3 players and video or TV monitors. My experience is that it is one of the most frequent causes of demise of these products over time, so I am enthusiastic to warn against employing it in a new design.
It is used in the rather dodgy Arduino "LCD keypad shield".
My main need to connect many buttons was to just be able to use all the buttons the device already has, to make an exact clone. The more I think of it, the more it would be easy to just ignore a lot of them. Time setting for example is done by having a button for each digit and effectively typing in the time, when a +/- button pair is almost as good. And, as I can connect an RTC module to the Arduino the number of times that I need to change the time reduces because it will remember time after a power loss.
I am in favour of repairing the device if possible. In any case, until you have determined the complete wiring and function of the driver chip, you simply cannot control this with an Arduino.
I agree. Clean the button membrane, pads etc. This might get the original item working 100%.
Regarding the VFD. Should be straightforward. Either it has a COG controller or is a simple unintelligent array.
This Ebay display has digits and icons. Looks very much like seven "8-segment" digits. There are only 24 pins. You should be able to identify power, segments, commons, ...
I bet that the pins correspond to "other" 24-pin custom displays.
You will still need the appropriate voltages and driver chip(s).
I had a quick scan of a couple of articles regarding using VFD with Arduino, one was more complex than the other but both were quite a bit more complex than I was hoping for, one of them I glazed over when it seemed to use a second Arduino processor just to control the display.
I fear I have opened a can of worms by posting photos of the existing display, when really I was only looking for ideas on how to find a decent range of easy display options without the hassle of eBay / Ali listings featuring pages and pages of identical devices.
It's true, it would be better to be able to fix the existing device, after all there must be some reason that I've kept it for all this time. I may well get some contact cleaner and clean the number pad circuitry up, to see if that sorts it. It does seem a pity to abandon the only thing I've thought of doing with this kit since I bought it, though.
For numeric, go grab a LED segment display, they come in 5 colours, in TM1637 flavour (Robotdyn for example) or I2C (Adafruit makes them like that).
If you want LCD, look for the VA-type displays from Raystar Optronics. With built-in I2C and so much nicer looking, huge contrast, not blueish but more true black and white.
Driving a VFD is also doable, but requires 3 things: darlington arrays for all non-fillament pins (8 channels in one 18-pin IC) matching resistor-banks with 8 resistors, and a bucket converter to get 5V up to 35V.
Here is a video showing many display solutions: