I am trying to use a DFRobot LCD Keypad Shield with a Seeeduino Stalker 328. I have written a sketch that receives serial data via xBee and logs the data to the SD card and displays the data on the LCD shield.
The data writes to the SD card if the LCD shield is removed but does not work when the LCD shield is installed. The LCD shield does show the correct data. After reviewing the Stalker and LCD documenation, it appears that both use pin 10 so this might be the conflict. The DFRobot LCD shield documentation indicates that pin 10 is used for backlight control. If this is the problem, is it possible to clip pin 10 and wire it to another pin and reassign the pin in the library? If so, what are the parameters that need changed in the library and/or sketch?
Thanks for the info. I looked through the LCD4Bit_mod library but could not find where it referenced pin 10. I am going to look through the LiquidCrystal library to see how it addresses the pins and whether it might be better to use the LiquidCrystal library.
That is good advice to use a breadboard. I have a scew shield that I can use as a temporary setup.
I will let you know how it turns out. The LCD shield with the Stalker would be a good combo. Once I have it finished, I will post the sketch on the Arduino Stalker thread.
I seem to have things working okay without the pin 10 connected. I could not find any references to pin 10 in the example code so it looks like it is just floating. I tried connecting it to ground and 5 volts and the logic is reversed. When grounded, the backlight is on full and when 5 volts is applied, the backlight is off. With pin 10 not connected, the display backlight is at about 80% and is easy to read.
The Seeeduino Stalkers digital pins are 3.3 volts so all of the buttons do not work. I was able to adjust the threshold values on the left/right/up/down buttons to get them to work but the Select button is in excess of 3.3 volts so it does not work. You might want to change the values of the resistors so 3.3 volt boards work.
One other thing I noted is that the onboard voltage regulator on the Stalker does not regulate very well. The 5 volt pin measures about 4.5 volts using a 9 volt power supply connected to the JST connector. It correctly reads 5 volts if you power the Stalker via the UART adapter. This difference can cause some problems if you are using voltage dividers such as the buttons on the DFRobot LCD Keypad.
The power supply is a 9 volt Arduino power supply and the voltage checks out. I have a Stalker 168 and a Stalker 328 I purchased from RobotShop and both 5 volt pins read low when connected to external power. I think the 168 reads lower at about 4.25 volts.
Something else to watch for is the solder connections on the battery cover. The 168 has the wrong size battery cover which was too small so it popped the solder joints apart. I soldered them back and it has worked well since. This defect is known by Seeeduino and has been discussed on their forum. The 328 has the correct cover but it also came apart and required me to solder it back together.
I think I found a work around for the DFRobot pushbuttons. It would require connecting the 5 volt pin to the Aref pin with a 5K resistor and then using the AnalogReference command to correct the input. I have not tried it but it looks like it should work.
Indeed you could rewire the back-light pin to pretty much any other digital pin or you would wire it directly to 5V so the Light is constantly ON (or to GND so the light is OFF).
If you wire it to another digital pin, then you will need to replace the initial reference to the back-light pin (10) with the correct pin number.
Also, instead of cutting it away you might want to try to temporarily bend it (or connect the shield through a breadboard for instance), in order to test the modifications without permanently modifying the hardware.
You will not find any reference to the pin in these libraries since they do not use it. The only place where it should be present is in your own custom code.
The 4.5 issue is a bit strange. Could you please make sure your battery is providing voltage in excess of 7V. if it is not, it might explain the low voltage issues.