So my little arduino clone is fun but I was wondering something
-
Does anyone know what the simplest circuit to use for a 16 pin LCD hitachi style display is to make it display *anything* or even turn on the backlight? I got a new kit and I can't seem to get the LCD display to respond at all, and I'm not finding the answer to this anywhere. All the examples I can find use a library, and require the thing to be fully wired up. The problem is, after having done that, even after double checking and triple checking my wiring against the examples it still didn't work. I need something simpler just to do a basic power-on sanity check for the LCD. I have no idea what the hitachi display protocol looks like in practice and the pins aren't very descriptive. I know there are some arduino-heads here on CP. Can I get that LCD to do anything at all with two or three connections?
Real programmers use butterflies
I have had these exact problems with these[^]. If one data line isn't connecting exactly properly then you will not see anything. I switched to the ones with the I2C interface [^] (only 3 lines to worry about) and I was much happier. I also had the problem with a 8x2 and I posted the issue (with pictures) at : character lcd - With power only on this LCD, will I see anything? - Electrical Engineering Stack Exchange[^] That may provide some additional insight. When you get your multimeter you'll probably discover that either one of your jumper wires is bad or you'll discover that one of your breadboard connections is fouled out. That's what has gotten me in the past. Good luck.
-
I have had these exact problems with these[^]. If one data line isn't connecting exactly properly then you will not see anything. I switched to the ones with the I2C interface [^] (only 3 lines to worry about) and I was much happier. I also had the problem with a 8x2 and I posted the issue (with pictures) at : character lcd - With power only on this LCD, will I see anything? - Electrical Engineering Stack Exchange[^] That may provide some additional insight. When you get your multimeter you'll probably discover that either one of your jumper wires is bad or you'll discover that one of your breadboard connections is fouled out. That's what has gotten me in the past. Good luck.
Grrr, yes it is one of those 16 pin interface LCDs. I think you're probably right that it's a bad jumper wire or something. I guess I need to go ahead and order a multimeter. I just overlooked it when i got the kit.
Real programmers use butterflies
-
I would check pins 1 and 2, generally pin 1 is ground and pin 2 is 5v, if you don't have this nothing else matters. Similarly, pin 16 is ground for that backlite and pin 15 is the current limited 5v input for the backlite.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst "I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
Thank you! I'll give that a whirl.
Real programmers use butterflies
-
Grrr, yes it is one of those 16 pin interface LCDs. I think you're probably right that it's a bad jumper wire or something. I guess I need to go ahead and order a multimeter. I just overlooked it when i got the kit.
Real programmers use butterflies
Get yourself the datasheet and take a good look at the pinout of that connector. Never assume anything. Guessing never helps.
I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
-
Get yourself the datasheet and take a good look at the pinout of that connector. Never assume anything. Guessing never helps.
I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
I know that the pinout is a de facto standard 16 pin interface for small LCDs like this. I don't need to assume anything about it. I just need to get it to respond. A multimeter will help. A datasheet won't solve my current issue.
Real programmers use butterflies
-
I know that the pinout is a de facto standard 16 pin interface for small LCDs like this. I don't need to assume anything about it. I just need to get it to respond. A multimeter will help. A datasheet won't solve my current issue.
Real programmers use butterflies
And some guy in China never heard of your de facto interface or had his own ideas. Are the signals at least labeled on the display's board? That would help a little, even without the datasheet.
I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
-
And some guy in China never heard of your de facto interface or had his own ideas. Are the signals at least labeled on the display's board? That would help a little, even without the datasheet.
I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
They're labeled, but not in way that's helpful. Let me put it this way. The LCD is either the standard hitachi interface for it, just like the one the genuine arduino has, or it's just garbage because exactly one person knows how to use it and that's the person that designed it. if that's the case, no datasheet exists. So datasheets still aren't the solution.
Real programmers use butterflies
-
Does anyone know what the simplest circuit to use for a 16 pin LCD hitachi style display is to make it display *anything* or even turn on the backlight? I got a new kit and I can't seem to get the LCD display to respond at all, and I'm not finding the answer to this anywhere. All the examples I can find use a library, and require the thing to be fully wired up. The problem is, after having done that, even after double checking and triple checking my wiring against the examples it still didn't work. I need something simpler just to do a basic power-on sanity check for the LCD. I have no idea what the hitachi display protocol looks like in practice and the pins aren't very descriptive. I know there are some arduino-heads here on CP. Can I get that LCD to do anything at all with two or three connections?
Real programmers use butterflies
I don't now what specific device you're talking about, as you only specified "16 pin"; some identification could have been useful, or even a link to the thing you bought. However, most low-end LCD displays include a control chip that is either a Hitachi HD44780 or some derivative thereof. It has been launched over 30 years ago, it got its own Wiki page here[^] and you can find its complete datasheet everywhere[^]. I used it a couple of times, but that was long ago (using 8-bit microcontroller and assembly code); I can't remember but I would expect the backlight to be working as soon as you apply 5V to the appropriate pins with a double caveat: My best guess is you already killed the backlight, either by applying a reverse voltage, or by not including a series resistor; some if not all such LCD displays need a resistor in pin 15, and yes there are Youtube-quality instructions that don't show that. But this one does.[^] Anyway the best way to test is by properly connecting everything up, and sending the appropriate commands and data. A library is not essential, you could perform each of the steps required using simple instructions, even when the backlight isn't working (use incident light at an angle of some 45 degrees). It is all a matter of sending some bytes to some addresses (which is true for all software of course). Using the Arduino "LiquidCrystal" library can make it a little easier: Example (warning: the essential resistor is lacking here!)[^]. :) PS: You can't just try and retry until it works, your hardware deteriorates when maltreated so you better get it mostly right from the start. It ain't software, it is called hardware for a reason.
Luc Pattyn [My Articles] If you can't find it on YouTube
-
Does anyone know what the simplest circuit to use for a 16 pin LCD hitachi style display is to make it display *anything* or even turn on the backlight? I got a new kit and I can't seem to get the LCD display to respond at all, and I'm not finding the answer to this anywhere. All the examples I can find use a library, and require the thing to be fully wired up. The problem is, after having done that, even after double checking and triple checking my wiring against the examples it still didn't work. I need something simpler just to do a basic power-on sanity check for the LCD. I have no idea what the hitachi display protocol looks like in practice and the pins aren't very descriptive. I know there are some arduino-heads here on CP. Can I get that LCD to do anything at all with two or three connections?
Real programmers use butterflies
I use a 4x20 LCD display from Parallax. It only has 3 pins: power, ground, receive. Sounds completely different from a 16-pin Hitachi.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
-
I use a 4x20 LCD display from Parallax. It only has 3 pins: power, ground, receive. Sounds completely different from a 16-pin Hitachi.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
Yeah it sounds like you're using that little 3 pin serial bus popular with arduino devices. This is a more general device, but it can and should work with arduinos, and has shipped with arduino kits in the past. the little serial bus one like you're using is an alternative. A good one, but it didn't come with my kit.
Real programmers use butterflies
-
I don't now what specific device you're talking about, as you only specified "16 pin"; some identification could have been useful, or even a link to the thing you bought. However, most low-end LCD displays include a control chip that is either a Hitachi HD44780 or some derivative thereof. It has been launched over 30 years ago, it got its own Wiki page here[^] and you can find its complete datasheet everywhere[^]. I used it a couple of times, but that was long ago (using 8-bit microcontroller and assembly code); I can't remember but I would expect the backlight to be working as soon as you apply 5V to the appropriate pins with a double caveat: My best guess is you already killed the backlight, either by applying a reverse voltage, or by not including a series resistor; some if not all such LCD displays need a resistor in pin 15, and yes there are Youtube-quality instructions that don't show that. But this one does.[^] Anyway the best way to test is by properly connecting everything up, and sending the appropriate commands and data. A library is not essential, you could perform each of the steps required using simple instructions, even when the backlight isn't working (use incident light at an angle of some 45 degrees). It is all a matter of sending some bytes to some addresses (which is true for all software of course). Using the Arduino "LiquidCrystal" library can make it a little easier: Example (warning: the essential resistor is lacking here!)[^]. :) PS: You can't just try and retry until it works, your hardware deteriorates when maltreated so you better get it mostly right from the start. It ain't software, it is called hardware for a reason.
Luc Pattyn [My Articles] If you can't find it on YouTube
Luc Pattyn wrote:
is either a Hitachi HD44780 or some derivative thereof
Yes, this is it. I didn't know the model number. I just knew the interface was a hitachi type and it's used by a lot of these displays. I was trying to use LiquidCrystal with it. Oh well, if I can't get it to work I can always buy the one that uses that 3 wire arduino serial interface (I2C? i forget what it's called) I'm not sure if I trashed it, as I didn't set it up randomly. I carefully followed the instructions on arduino's site and triple checked it, so while it's not impossible that I wrecked it, there's a good chance i didn't - or at least it may have been dead when i got it.
Real programmers use butterflies
-
Luc Pattyn wrote:
is either a Hitachi HD44780 or some derivative thereof
Yes, this is it. I didn't know the model number. I just knew the interface was a hitachi type and it's used by a lot of these displays. I was trying to use LiquidCrystal with it. Oh well, if I can't get it to work I can always buy the one that uses that 3 wire arduino serial interface (I2C? i forget what it's called) I'm not sure if I trashed it, as I didn't set it up randomly. I carefully followed the instructions on arduino's site and triple checked it, so while it's not impossible that I wrecked it, there's a good chance i didn't - or at least it may have been dead when i got it.
Real programmers use butterflies
Did you or didn't you include a resistor? Most I2C models basically are the 16-pin version plus an extra board (example[^]) which takes care of and makes it harder to destroy the backlight :laugh: The extra board[^] is also available separately! You would probably also want another library[^] then. :)
Luc Pattyn [My Articles] If you can't find it on YouTube try TikTok...
-
Does anyone know what the simplest circuit to use for a 16 pin LCD hitachi style display is to make it display *anything* or even turn on the backlight? I got a new kit and I can't seem to get the LCD display to respond at all, and I'm not finding the answer to this anywhere. All the examples I can find use a library, and require the thing to be fully wired up. The problem is, after having done that, even after double checking and triple checking my wiring against the examples it still didn't work. I need something simpler just to do a basic power-on sanity check for the LCD. I have no idea what the hitachi display protocol looks like in practice and the pins aren't very descriptive. I know there are some arduino-heads here on CP. Can I get that LCD to do anything at all with two or three connections?
Real programmers use butterflies
Way down the list I seen that someone mentioned HD44780 with some links. This is the link I used to get things going. I found a box of these surplus at $1 or something a bunch of time ago, but all the connectors are reversed like the connector is on the wrong side of the board....but once I got that figured out, I got it going.... And the site that helped me get going with it.[^] Good luck and enjoy.
-
They're labeled, but not in way that's helpful. Let me put it this way. The LCD is either the standard hitachi interface for it, just like the one the genuine arduino has, or it's just garbage because exactly one person knows how to use it and that's the person that designed it. if that's the case, no datasheet exists. So datasheets still aren't the solution.
Real programmers use butterflies
Why don't you make a pic or two and post the links? I think that might help people to help you.
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
Why don't you make a pic or two and post the links? I think that might help people to help you.
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
Good idea. But I've since dismantled the circuit. I'll try again later today.
Real programmers use butterflies
-
Way down the list I seen that someone mentioned HD44780 with some links. This is the link I used to get things going. I found a box of these surplus at $1 or something a bunch of time ago, but all the connectors are reversed like the connector is on the wrong side of the board....but once I got that figured out, I got it going.... And the site that helped me get going with it.[^] Good luck and enjoy.
Thanks
Real programmers use butterflies
-
Did you or didn't you include a resistor? Most I2C models basically are the 16-pin version plus an extra board (example[^]) which takes care of and makes it harder to destroy the backlight :laugh: The extra board[^] is also available separately! You would probably also want another library[^] then. :)
Luc Pattyn [My Articles] If you can't find it on YouTube try TikTok...
It did indeed have a resistor. Cool - i figured it worked something like that but i didn't know you could get the board separately. Thanks. :)
Real programmers use butterflies
-
It did indeed have a resistor. Cool - i figured it worked something like that but i didn't know you could get the board separately. Thanks. :)
Real programmers use butterflies
If you had the resistor in place from the start, that strongly reduces the probability you wrecked the display; so either it was broken already, or it is still OK and your observations are flawed. I did mention the existence of the separate I2C convertor, I did not intend that as a suggestion; when in doubt about the state of the current display, maybe just replacing it is a better idea than adding to it. Or doing some more tests: If you connect the current display, you could try writing and reading its registers, even when no crystals are seen moving. First step though would be to check the power pins (you have ordered a multimeter by now I hope), a resistor plus a LED could suffice to check anything is present between the GND and 5V pins. :)
Luc Pattyn [My Articles] If you can't find it on YouTube try TikTok...
-
They're labeled, but not in way that's helpful. Let me put it this way. The LCD is either the standard hitachi interface for it, just like the one the genuine arduino has, or it's just garbage because exactly one person knows how to use it and that's the person that designed it. if that's the case, no datasheet exists. So datasheets still aren't the solution.
Real programmers use butterflies
*SIGH* What a noob!
honey the codewitch wrote:
They're labeled, but not in way that's helpful.
You mean unmeaningful stuff like VSS, VDD, V0, RS, RW, E, D0 - D7? These don't tell you anything? Are you painting by numbers (= blindly following some examples)? VSS is the source voltage, or ground. VDD is your supply voltage (probably +5V). Mess these up and your display will be sending smoke signals and die. Check these. Vo, if I remember right, is not an input. It's a voltage that's produced in the display from the supply voltage. You are supposed to use a potentiometer to regulate the display's contrast. You should not take my word for it and check this in the datasheet. RS is a digital input to select one of two registers in the display. What are the registers for? Don't know, but you can always check the datasheet. In any case, you must make sure that only an output pin of the Arduino is connected here and is set to the correct value (0 or 1), depending on which register you want to access. RW is the read/write signal, oldschool 6800 style. 1 if you want to read the selected register and 0 if you want to write to it. A datasheet would tell you that. It's another input, so it must be hooked up to yet another output pin of the Arduino. E is the enable signal, also old 6800 style. It's also an input, so you will need another output pin from the Arduino here. D0 - D7 are your eight data bits. You will need eight bidirectional signals from the Arduino, or if it does not have such data lines, reconfigure these I/O pins to the right direction for every access of the display. Here you can easily send both the Arduino and the display to east hyperspace when you read from the display and the Arduino's I/O pins are still set to be outputs. Here you should read up on how the Arduino handles bidirectional parralel data lines and make sure that such a collision never happens. Short two outputs together and you get a nice short circuit which will fry a few transistors and permanently damage your devices. A and K are simple. They are the anode and cathode of the LED that lights the display. You only need to hook them up to +5V and ground with a resistor to limit the current. Which value? Ask the data sheet. It will tell you the maximum current that is allowed and Ohm's law will tell you the rest. Just guessing, but a typical single LED works nicely with a 470 Ohm resistor in series. I have some that survived more than 40 years that way.
-
*SIGH* What a noob!
honey the codewitch wrote:
They're labeled, but not in way that's helpful.
You mean unmeaningful stuff like VSS, VDD, V0, RS, RW, E, D0 - D7? These don't tell you anything? Are you painting by numbers (= blindly following some examples)? VSS is the source voltage, or ground. VDD is your supply voltage (probably +5V). Mess these up and your display will be sending smoke signals and die. Check these. Vo, if I remember right, is not an input. It's a voltage that's produced in the display from the supply voltage. You are supposed to use a potentiometer to regulate the display's contrast. You should not take my word for it and check this in the datasheet. RS is a digital input to select one of two registers in the display. What are the registers for? Don't know, but you can always check the datasheet. In any case, you must make sure that only an output pin of the Arduino is connected here and is set to the correct value (0 or 1), depending on which register you want to access. RW is the read/write signal, oldschool 6800 style. 1 if you want to read the selected register and 0 if you want to write to it. A datasheet would tell you that. It's another input, so it must be hooked up to yet another output pin of the Arduino. E is the enable signal, also old 6800 style. It's also an input, so you will need another output pin from the Arduino here. D0 - D7 are your eight data bits. You will need eight bidirectional signals from the Arduino, or if it does not have such data lines, reconfigure these I/O pins to the right direction for every access of the display. Here you can easily send both the Arduino and the display to east hyperspace when you read from the display and the Arduino's I/O pins are still set to be outputs. Here you should read up on how the Arduino handles bidirectional parralel data lines and make sure that such a collision never happens. Short two outputs together and you get a nice short circuit which will fry a few transistors and permanently damage your devices. A and K are simple. They are the anode and cathode of the LED that lights the display. You only need to hook them up to +5V and ground with a resistor to limit the current. Which value? Ask the data sheet. It will tell you the maximum current that is allowed and Ohm's law will tell you the rest. Just guessing, but a typical single LED works nicely with a 470 Ohm resistor in series. I have some that survived more than 40 years that way.
A lot of that jibes with what the schematic suggested. I think you're right about V0 for example. The short answer is no, I don't know what I'm doing. I used to build simple circuits when I was little. After that I took up programming. I've never taken classes or read books about this. Eventually I got this Arduino and here I am. So I'm learning. *steps off your lawn*
Real programmers use butterflies