EEVblog
HTML-код
- Опубликовано: 14 июл 2024
- How to drive a static LCD display with digital logic and an Arduino / microcontroller.
Code: github.com/EEVblog/Arduino-Se...
LCD: www.digikey.com/products/en?k...
Forum: www.eevblog.com/forum/blog/eev...
EEVblog Main Web Site: www.eevblog.com
The 2nd EEVblog Channel: / eevblog2
Support the EEVblog through Patreon!
/ eevblog
Donate With Bitcoin & Other Crypto Currencies!
www.eevblog.com/crypto-currency/
EEVblog Amazon Store (Dave gets a cut):
astore.amazon.com/eevblogstore-20
T-Shirts: teespring.com/stores/eevblog
💗 Likecoin - Coins for Likes: likecoin.pro/@eevblog/dil9/hcq3 Наука
I really miss these educational video.
Please, bring back fundamentals Friday!
Yes! More Fundamentals Friday would be great!
Yes please!!!!!
Yah
Bump
More please! Great detail.
Very cool. How LCDs were wired in products was always black magic to me and now it makes perfect sense.
These “Fundamental Fridays” were the highlight of the Eevblog. They were really good.
Would be interesting to see how dc-damage actually looks, and how long it takes to set in
It's quite uninteresting to look at. It just looks like the segments are failing at different rates. You've likely seen it on old gas pumps. I remember killing an early LCD in the 1980s and it took only a couple seconds to get burn-in with 9V applied but the tech has come a long way since then and I have no idea what it takes to kill one today. Sounds like an experiment waiting for you.
You can always make some damage more interesting to look at by using more power for some appropriate amount of time...
I know that Dave has a chronos 1.4 high speed camera, high voltage power supplies and some capacitors. Everything needed for some interesting destruction-videos. He could also use a still-image of the explosion as a thumbnail(clickbait) to get more people that were only interested in the explosions into watching his educational videos. ;)
Peter S ... you have heard about fast forwarding and time lapses, now, have you ? It could very well be a 1 minute video + the 6 minutes talking Dave usually does (good on ya Dave)
Thank you very much, Dave! Please keep these coming, driving LCDs was something I always wanted to learn how to do. As a beginning hobbyist, these kind of videos educate me a lot. I really appreciate all the time and effort you're taking to share with us! :)
How can you NOT like a video with logic gates in it? :)
That's a very clever circuit.
Love the way you make hard things easier to understand!! Thank you Dave !
Love that episode!
The feel is just easy going Dave,
Thanks for the lesson : )
Nice!! You’ve answered a lot of questions Ive had Itching at the back of my head ... thanks Dave!
Cool bananas
You explain it so simply and clearly - thanks, Dave. I am proud to say that I sussed-out how to avoid the non-zero average voltage before you explained it fully, but I was completely ignorant of the 'stuck segment' issue until you mentioned it. From a long time ago, I recalled that LCDs are driven with a pulsed signal, but I didn't know why. Now, I do. Cheers.
I needed this guy in engineering school 15 years ago__ much appreciated for the lessons.. NorCal
Had to scroll back through the video a few times to catch the part number of that display. Looks like it is a Lumex LCD-S101D14TR. At Digi-Key it is part number 67-1506-ND. Currently listed at US $4.24 each for quantities under 10.
Awesome stuff Dave. Your train really catch the rails now
Dave . You save me hard work-- Thank you very much...
Excellent video Dave. Thanks
Great Video! Please keep this kind of content coming. Very useful stuff.
Thank you so much for making this. It's so clear and to the point.
Been looking forward to this video :D This is going to be a great series!
Impatiently waiting for the next episode. This is *very* interesting.
Top-notch quality educational material on RUclips
Nice tutorial Dave. Again I learn something new from you. Probably over 1000 by now.
i really like this channel, i can't imagine what i would have done with electronics if he had been my teacher. he's awesome at explaining things.
make sense for beginner like me. thanks mr. dave.
your explaination answer many question of mine.
Excellent. Thanks Dave.
This is pretty much like a bridge (amplifier) circuit. They both have the same dc offset but relatively it's zero.
Very handy if you don't want a negative voltage.
easy to follow and very informative!
Thanks Dave, great video.
Thank you so much. I got a new one and was figuring out how to drive it. This helped me a lot
Cool video series! In future, a quick explanation from David on his code would be great.
I love tutorials like this! Great video :D
Great video. I had never thought about driving an LCD directly. Thanks.
Good on ya Dave, my LCD arrived from China yesterday now you make a video, I was looking for a modeling software, David did a video on that the next day... it's almost like our cycles have synchronized... cheers mate!
Thank you!
Very interesting, thanks Dave!
Good video, Dave.
Thanks Dave
Oh wow, i actually found this interesting!
Thank you for this!
Thank you for the whiteboard lesson.
Awesome wee tutorial gizmo there.
Absolutely Great! Thanks for this! :)
Just read about the DC offset damage in _The Art of Electronics_ yesterday. Nice.
Awesome video.
Sir I love your tutorial.
I love Dave Jones. He makes all others look like amateurs.
Dave, you should get Nobel Prize in education (and I'm sure the committee will create this new category especially for you)! Great video, man!
A possible follow-up, super in-depth question: what determines the voltage ranges for LCDs? I'm guessing that lower voltage LCD panels are the secret to having watches and thermometers with super long battery lifetime. But not all panels are low-voltage like that, so: why not? What's the engineering of these panels like, since there's clearly tradeoffs of some sort at work.
fantastic video, thank you for sharing, awesome
more educational videos like this one please!!!
this is the best freaking vblog ever on the web
Awesome video! This is why I subscribed to this channel and stay subscribed. Say, I am considering a regular donation through Patreon. :)
Thanks a lot, very nice video
Great Video!
You are the Best! Thank you!
That video is just perfect 👌
Great series on LCDs Dave. Any plans to give us a similar series on VFDs?
Thank you
Thanks a lot!!!
I've learnt something new today.
Thanks Dave. For years I thought driving LCD's required black magic. No wonder I couldn't make heads or tails out of the pulses on the scope - the ground reference was moving around!
Great vid. I'm guessing the 3rd vid will be for the multiplexed commons and the shenanigans involved! ;)
When you mentioned the contents of the LCD not changing I didn't know what use would that have until I remembered that in a gas station, there were some LCD-like price indicators. At first, I thought they were just imitations, but then I realised they were pretty thick, enough for a coin cell to fit in. And because reflective LCD consume almost no power at all, they can run for years and this would allow changing the price whenever they want. Next time I go, I'll bring my LCD detector, also known as polarizing filter (which I can find in all LCDs).
On the microcontroller you'd want to hook all lines to the same output-bank and do the flipping with good old bitbanging: inverting the whole output-register.
Like that you can swap up to 8 lines (the 8 bit it has) at exactly the same time.
That´s why we here, Dave...:)
Excellent video!!
and: We want a clock ;) an EEVBlog LCD Clock, a Dave clock :) :)
thanks great video
General comment about driving LCDs for those interested in control bigger displays. If you have a 4 digit LCD display then you'll have about 28 pins to control (or more counting decimal points and minu). There's an LCD driver chip called the AY0438 which only requires a 3 pins to drive. I wrote an Arduino library for this a few years ago you can find a demo here v=nGXTJL51D6Q :)
Not always, I have some 4 digit LCD's that only need 3 more pins. Each digit has individual backplane and com pin, so, common-up the segments (aaaa, bbbb, cccc etc) and then TDM the com pins. There is some loss of contrast but hardly noticeable and gets the job done.
SimoWill75 surely for that you’d need 7 (segments) + 4 (backplanes) = 11 digital outputs to control your screen? That’s fine if you have enough IO on your micro controller. If you also have decimal points, colon, minus sign, low battery symbol, etc you might end up with no pins available to do anything else.
The driver chips only cost a couple of quid and generate the AC for you. The frequency is configurable using a capacitor and you can control 32 segments, with just data, clock and load signals :)
True, but I mistakenly thought you were referring to Dave's direct Arduino demo which was still fresh in my mind. He's already using 8 pins, each extra digit only needs one additional. That's how I used my 4 digit displays, but with PIC's back in the day.(one clock, one voltmeter with fixed decimal point) Simple, low cost and effective, but obviously not the answer for every project.
SimoWill75 Ah yes, my comment was a general remark not about the approach Dave demonstrated :) I do agree with you though: this direct way of driving the screen is cheap and effective!
For the benefit of those playing at home (I’m sure you already know this Simo) if one disables the current reversal and adds some resistors to the outputs; Dave’s example code could be used to drive a 7 segment LEDs (and more than 1 digit with multiplexing) :D
AY0438 40 pin DIP (through hole) package LCD Driver chip datasheet:
ww1.microchip.com/downloads/en/DeviceDoc/80438a.pdf
I'd like a follow-up video that covers a graphical LCD that uses LVDS if that isn't too much to ask. I've been looking into tapping one for a project but I'm not sure what level of hardware I'd need to reverse engineer it and the FPGA I'd need.
thank you.
VERY COOL VIDEO!!!
Dave, really clear and lucid presentation. Thanks! The offset backplane electrode voltage trick makes total sense now. I'm going to swing by my electronics parts pusher tonight and buy some passive and multiplexed LCDs to experiment with over the weekend. What is that Arduino experiment breakout board you are using in the video, below your breadboard?
We're still waiting for the multiplexed lcd tutorial.
Dave we need more beginner vids too. How about some on standard need to know IC's. How about simple transistor stuff. Basic TTL.
Contrast can be implemented by connecting a 10k pot to 0/5V and using its wiper to drive open collector logic.
Yay, part 2, with a whiteboard even.
More videos like this !!!
Fun fact: If you're using Arduino (most likely on an AVR), then you can set the pinMode to INPUT and then use digitalWrite to get a lower voltage than usual - setting to INPUT makes it go through an internal pullup resistor for input (pulldown when you abuse it to make it do output)
this is if you're trying to have 3 voltages waveform and have another offset waveform.
English is not my native language. I do not know English well, but I perfectly understand you.
However, some designs of cheap multimeters uses DC driving for decimal points and the battery sign. And it works.
@EEVblog, Was there a follow up video to explain multiplexed LCD, or contrast control?
Very instructive, thanks.
thanks dave 2 for the coding
EXCELENT. Cant wait to move to 1/2 and 1/3 MUX, I have read it many times, seen Microchip App notes. It is clear the method but not they way they wave the commons on the code ...
Do a multiplexed display??
Good video
Fascinating video fur sure, but one question remains unanswered, why or how does DC harm LCD’s
Darkphotons let me know if u find out. Ima try going on LCD wiki
It's caused by gradual electrochemical plating of the metals in the display. An average DC bias promotes the migration of metal ions through the substrate of the display and causes fading and burn-in of segments over time.
Dielectric Videos
Thanks for your answer, it sounds feasible, gotta do some research into this, maybe Dave can clarify this point in his next video?
I want to see what you are doing with your DC source, or your func generator.
Maybe you could also generate oscillation via the same xor chip, (inverting oscillator)... They way it'll be as easy as an led driving
Nice job.
What's the prototyping station you're using with the Arduino at the end? Looks like a nice bit of kit.
Holy crap, thank you for this video Mr. Jones. I may start hacking super cheap calculator instead of buying lcd modules.
Thank you. Can you give some information about HT1621B programming or equivalent PCF8576 etc.
Nice work. Btw: Could you make a video about E-Ink-Display? For instance, at work we use the displays from "Pervasive Displays" and the manufacturer's datasheet of the on-display-controller is simply crap.
I read that as LSD and I thought we were gonna learn how to do some sick skids in a VR Commodore.
Part 3
ISS that like a Commodore 64?
Dave you never linked in the first LCD video and I can't find it in the "Electronics Tutorials"... found it, its in the regular videos #1044.
How about connecting com as you showed to 5V square wave and shorting segments to some 2,5V rail?
I'm curious how a hobby motor would be have doing the inverter trick. Could you double the RPM?
Thanks for the video, I've been curious about how to drive LCDs for a long while, so appreciate you sharing this and the previous video.
I have a VFD that I'm attempting to make work (no datasheet) and most info I have come across suggests that the filament needs an A/C voltage. Would this technique be suitable for generating an A/C filament voltage for a VFD?
VFD heaters are traditionally AC driven because they tend to draw a decent amount of power and are only moderately fussy about voltage, so a transformer secondary tap was the cheapest, most efficient way of getting the job done. Other than that, they are basically vacuum tubes, so I don't see why they couldn't be DC heated (even if a floating AC heater means less headaches when it comes to heater - cathode voltage concerns), though I would very much recommend finding out what sort of heater voltage is required, as both over- and underheating decrease the tube's life span. Equipment that was supposed to operate for decades on end like radio transmitters would go to the lengths of including means of adjusting line voltage, so that heater voltage could be kept in spec to within 5%. (This I learned from _Mr. Carlson's Lab._ )
could we get a video on driving in multiplex mode pls? with 1/2 bias... 1/3 bias.. etc
Counter dave we need to click it and it change ' BUTTENS '
Can you make a video on using opamps width a biased push-pull output stage to drive small loud speakers?
I have slowly been designing one of my own but for some reason the output stage is always unbalanced and causes my NPN mosfet to get hot and smoke. I have been debugging the circuit on 6V rather than 12V so that things dont blow up but to no avail.
The biggest mystery to me is how to use the headphone output properly. Do i place a cap on the line out and send the signal in to the opamp, does it need a megohm resistor for a little bit of power from GND.
I have seen tutorials on driving headphone speakers but it never has the info I need to got that step further.
Anyway love the videos. You have inspired me to take this up as a hobby, and expensive hobby.
Look up single-supply amplifier design. Sounds like that is your actual problem here. Assuming a single-ended output, you will need an adequately sized output coupling capacitor (at 8 ohms, a 220µ might do for a small speaker, while for hi-fi you might use 1500-2200µ) What sort of circuit is this, inverting or noninverting?
For noninverting, you will need to:
1. AC-couple your feedback network (typically a capacitor in the grounded leg)
2. provide a clean half-supply DC offset on the input. Try something like a 47k-100k bias resistor (also serving as your input impedance) going to a 10k/(10k||22µ) voltage divider between supply and ground. Step 1 has reduced gain at DC to unity, so input DC offset is going to be reflected at the output.
3. obviously also include a coupling capacitor in the input, so you don't get any DC on the preceding volume pot (if any) or source. 4.7-10µ is fine.
Inverting is similar, except you can connect the noninverting input directly to the voltage divider.
There is, incidentally, no such thing as an NPN MOSFET - it's either an NPN (bipolar) transistor or N-channel MOSFET. Low-voltage circuitry such as what you want usually sticks to bipolars as MOSFET followers tend to require bias voltages on the order of 3-4 V.
Be warned that making even a half-decent audio amp from scratch is not an entirely trivial exercise and requires understanding of, among other things, biasing, stability (electrical and thermal) and heatsinking concerns. Dedicated power amplifier ICs are popular for a reason! If you just need a handful of watts with passable fidelity and modest power consumption, these are probably the way to go.
Here are some circuits along the lines of what you are looking for:
www.ludens.cl/Electron/audioamps/AudioAmps.html
I s'pose with an NJM4556AD and some BD139/140s (at 30-50 mA idle), you could get some decent output (though I would recommend a bootstrap circuit for bias / opamp supply for improved voltage swing). It's the mounting the output transistors and bias transistor onto a common heatsink (but electrically insulated) part that could cause some headaches, though requirements on a single EF output tend to be rather relaxed. It is also recommended to at least have a Zobel network on the output.
If you want to get serious with this stuff, you are probably best off going to the diyaudio.com forums and searching the Solid State area.
Educational videos are the ducks guts. I want some moar.
What is the LCD bias(bias angle) in this type of control? (100 Hz +/-5 volt with 50% duty cycle) How to change best viewing angle (rotate view angle)? Or change contrast? It is just an amplitude or not?
Here´s the display Dave used in this video:
www.digikey.de/products/de?keywords=67-1506-ND
Thanx going out to @Glen Slick for finding that out, i just put a clickable link, to make things easier...
Is there a link to download the source of the arduino project we saw in the video ?
github.com/EEVblog/Arduino-Seven-Segment-LCD