I have just purchased a LCD & Keypad Shield that I am certain is defective, it runs correctly except for the SELECT, LEFT, and DOWN buttons do not register as being pushed. The RIGTH, and RST do work correctly. Just so that others do not think that I do not know how to spell RIGHT. This is how it is imprinted on the board.
I used the sample code from the website, and I have run the shield directly on the FEZ Domino board, and off of the Flash shield and I have the same results. RST resets the device, UP registers as UP, and RIGTH both register as the button pushes they are. I can not get SELECT, LEFT and DOWN to work at all. When UP is pressed and held it blinks as though it is not being pushed hard enough.
I am certain that AN0 on my FEZ board is working correctly as I have tested this port with other devices. The LCD itself is working correctly. I would like to speak to someone on replacing said unit.
There are 2 different drivers for the board. Are you using the right one? There is the red board and the black board.
All buttons are connected to AN0 as you know and each button have a different resistor to result in different voltage going to An0
Can you do this simple test please? Make a small app that read AN0 and print out the value then try the different buttons and you will see different values coming back. You may need to tweak the values we have in the provided driver.
For Gus, you asked me to get you a readout of the input from AN0 during running with the shield plugged in. I have done this. I am using Visual Studio C#, and these are the values being printed from the output window. These are the copy pasted values. When the button is pushed the value does not vary and remains constant while the button is held.
No button push = 2.87905097
RIGTH = 895263.25 // Yes, I know this number is out of proportion to the rest of the buttons.
UP = 19.6197128
DOWN = 8.60369396
LEFT = 5.65027237
SELECT = 3.90374994
OUTSTANDING. Okay, 35 worked, if you would not mind, would you please mind explaining what that did? I am more than relieved that it worked, but I would also like to understand what it did.
Thank you very much for your help. Me and a friend of mine, were looking for a chipset to work on a personal project, I have purchased $800 worth of your stuff. I have been nothing but happy with that decision. But this right here, this is how you make a loyal customer. Problem found, problem fixed, just had to ask. Nicely done.
The problem I had is now fixed to my satisfaction. I apologize for saying that the LCD was defective. I am glad that the fix was this simple also. I would much rather do that than reship the device.
But now my curiosity is up, the values that I was receiving when I modified the driver to remove the comment block on the while loop would explain why the keypad is acting like it does. It looks like the magic number in this case is 30. Is this something that I would have worry about if I purchased additional shields? Should I have a calibration on every shield?
When you do the next set of circuit boards, please correct the RIGTH with RIGHT too. But all things considered, this is a great product. I have already placed the LCD into a project and I have a few more projects for this.