Pages: 1 ... 4 5 [6]   Go Down
Author Topic: Warning to users of some vendors LCD keypad shields.  (Read 47126 times)
0 Members and 1 Guest are viewing this topic.
Raleigh, North Carolina
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Folks,
I am a super newbie,  Just got my Uno R3 yesterday and also picked up a Sainsmart 1602 keypad shield.  I ran the test sketch from this post and looks like that shield has the problem.  After running across this post while trying to figure out how to actually make the hardware do something, I read this thread  thoroughly.  If I am understanding correctly, the problem is that the D10 pin on the LCD shield needs to be isolated from the base of the transistor so that D10 won't be looking at a base-emitter drop to ground if it goes high.  If this is correct, seems to me that the easy solution is to remove the pin connected to D10 of the shield and replace it with a jumper wire with a diode or resistor.  Then plug the jumper wire into the pin D10 socket of the Arduino.  I think you could probably even just bend the shield pin in or out and plug in there too.

Am I missing something?  Remember I am new to this world!    I think would rather do this surgery than start scraping off the top of a circuit board or remove the LCD.

I am an EE from way back so I understand electronics, but have primarily been an analog guy.  This seems like a good entry into some neat stuff that bridges both analog and digital.  Looking forward to being part of this group.

Jerry
Logged

Dallas, TX USA
Offline Offline
Edison Member
*
Karma: 47
Posts: 2328
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I am understanding correctly, the problem is that the D10 pin on the LCD shield needs to be isolated from the base of the transistor so that D10 won't be looking at a base-emitter drop to ground if it goes high.  If this is correct, seems to me that the easy solution is to remove the pin connected to D10 of the shield and replace it with a jumper wire with a diode or resistor.  Then plug the jumper wire into the pin D10 socket of the Arduino.  I think you could probably even just bend the shield pin in or out and plug in there too.

Am I missing something?  Remember I am new to this world!    I think would rather do this surgery than start scraping off the top of a circuit board or remove the LCD.
Jerry,
I don't think you are missing anything.
While your suggestion would seem to work electrically, I'm not sure it is possible mechanically.
There isn't much space once the shield is plugged on to the Uno and the pins are quite stiff in terms of bending
so I'm not sure you could make it fit/work.
The other h/w solutions in the thread are electrically the same as what you are proposing,
they just tap into the circuit by modifying the traces on the PCB rather than mess with the header pin.
--- bill
Logged

Raleigh, North Carolina
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the wisdom.  I took another look and you appear to be correct.  I obviously thought there was more room than there is.  That said, I think it still may be possible to do something similar using stacking headers like those from Adafruit to lift the board up.  The resistor or diode could be built into a modified header I think.  I may give that a try since I have a couple of sets ordered (for no particular reason except it looked like something that one should have around).

Jerry
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jerry,
I don't think you are missing anything.
While your suggestion would seem to work electrically, I'm not sure it is possible mechanically.
There isn't much space once the shield is plugged on to the Uno and the pins are quite stiff in terms of bending
so I'm not sure you could make it fit/work.
The other h/w solutions in the thread are electrically the same as what you are proposing,
they just tap into the circuit by modifying the traces on the PCB rather than mess with the header pin.
--- bill

Hello,

I'm using the SaimSmart 1602 as well but I'm not putting it right on the board, instead using DuPont cables to connect all the necessary pins to my arduino. I apologize for such a simplistic question, I believe it's basically the same as the last one you got, but it would work if I put a resistor in between digital port 10 on the arduino and the equivalent in the LCD shield?

If so, what resistance should I use?

And to be clear, I'd like to be able to use PWM control to dim the backlight, but I really don't want to physically modify the board if I can modify something outside (especially since I already have room to put stuff between the pins).

Again, I apologize for my simplistic questions. I'm not an idiot when it comes to electronics, but this is sort of my first dive into this sort of stuff.
Logged

Dallas, TX USA
Offline Offline
Edison Member
*
Karma: 47
Posts: 2328
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This thread seems in a mess to me and is confusing.

The top post states to look at the circuit especially at the backlight transistor.  That shows only connections to pins 15 and 16 of the LCD,  and to VCC and 0V,  it shows no connection to D10 as mentioned. 

Yes it does. Look closer at the schematic. While LCD pin 15 is connected to VCC,
LCD pin 16 is not connected to ground. It is connected to a transistor.
D10 connects directly to the base of the transistor.
When D10 is high, the circuit allows current
to flow into the base out the emitter with no current limiting resistor.
And that is the core of the problem.



So I purchased board and checked it.  As expected it was the same,  connection to pin 15/16 of the LCD,  power and gnd with no connection to D10. 
That might be the case, if so, then your shield is not the same as these others and does not have a transistor
for backlight control and so it does not have the problem.
Did you run the test program? What did it say?


Then look at the photos of the Diode mod,  it clearly shows the diode connected to the trace going to D8 not D10.
I assure that the diode is going to D10 and not to D8.
While not really shown in the photos, (until now) as mentioned in the original post:

Quote
The trace to D10 goes around the header then drops through the board.
The trace can be cut and a diode dead bugged to the board.
note: I just updated the 2nd photo in the 2nd post to show the other side of the header
for clarity. As you can see the diode connects to t trace that goes to D10.


Going by the photos the board looks the same as the one I have here,  but I can see no issue with it at all,  and it matches the circuit as shown.
Maybe you haven't looked close enough? Or maybe your shield is different.
If your shield really is like this one or the others
that has backlight control, then there is a transistor and then the LCD backlight pins
(pin 15 and 16) are not directly connected to power and ground.


what am I missing here?  Very confusing thread.....

Not sure. I think perhaps you are not understanding what the problem is?
which is that the base of the backlight control transistor is being driven by an Arduino pin
an there is no current limiting resistor in the circuit path through the emitter
to ground

--- bill
.

Logged

Pages: 1 ... 4 5 [6]   Go Up
Jump to: