Osepp lcd keypad shield help

Hey all,

First, I am very new to microcrontrollers and C programming(I have alot of web programming experience).

I wanted to hook up an LCD display to my spark core. I got this from frys: http://osepp.com/products/shield-arduino-compatible/16x2-lcd-display-keypad-shield/

I am trying to get it to work with the LiquidCrystal lib from spark io.

Here is an image of how I hooked everything up, I used this as a guide(http://arduino.cc/en/uploads/Tutorial/LCD_schem.png) -

http://www.mistersaisho.com/lcdHelp.jpg

the top pins from the shield are plugged into the breadboard at the top level. The letters show where it is plugged into my sparkcontroller.

This is my code:

   // This #include statement was automatically added by the Spark IDE.
#include "LiquidCrystal/LiquidCrystal.h"


// Make sure to update these to match how you've wired your pins.
// pinout on LCD [RS, EN, D4, D5, D6, D7];
// pin nums LCD  [ 4,  6, 11, 12, 13, 14];
// Shield Shield [RS, EN, D4, D5, D6, D7];
// Spark Core    [D3, D5, D2, D4, D7, D8];
LiquidCrystal lcd(D0, D1, D2, D3, D4, D5);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16,2);
  // Print a message to the LCD.
  lcd.print("Hello, Sparky!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Does anyone have any suggestions on how to solve?

Thanks!

Solve what exactly? What are the problems, if there are any? What does work, and more importantly, what doesn't work?

Ah sorry, I cant get any text to display, it only powers on.

It does not look like you hooked up Vo to the variable resistor in the schematic. Without that, you definitely won’t see any text.

Can you confirm you hooked that up? Does the contrast on the display change when you change that variable resistor?

Thanks for input @bko however, I believe it is hooked up. When I spin the resistor I see a contrast change to the 16 grey rectangles that are on the LCD.

1 Like

Okay, I don’t know everything about everything but here you go… You can’t use the http://arduino.cc/en/uploads/Tutorial/LCD_schem.png schematic to hook it up. This schematic is for hooking up to the LCD directly (the blue board, not the black board in your picture). You need to study the schematic here http://osepp.com/wp-content/uploads/2013/06/OSEPP_LCD_Keypad_Shield_V1-0-SCH1.pdf.

Here is my stab at a map for you using this shield… the J?-pin? is for the Osepp shield. If this doesn’t help you should find a friend that is an EE. He/she will sort this out for you.
J6-pin8 is RS
J6-pin7 is E
J7-pin1 is DB7
J7-pin2 is DB6
J7-pin3 is DB5
J7-pin4 is DB4

I JUST GOT IT!!! @jerome it was like 1 min before you posted however, you actually provided the solution. I had to use that schematic. I saw it when I first stared working on this(this morning) and had absolutely no idea how to relate, I spoke with some friends and they helped me understand better. The end result is that the following image shows numbers in pink that correspond to the LCD(please ignore my D pins), I also used pwm pins according to the diagram(did I need to use pwm pins?) -

http://mistersaisho.com/sparkFixed.jpg

This is my new init function -

LiquidCrystal lcd(D4, A0, D0, D3, D1, D5);

This is how the pins pertain to the pink numbers in the above image:
D4 - 4
A0 - 6
D0 - 11
D3 - 12
D1 - 13
D5 - 14

An issue I had was to kind of guess what J7 and J6 were from the diagram, how come it is not labeled on the shield board or is it?

Thanks again for everyone’s help!

2 Likes

glad to hear, great work

1 Like

I know you solved this 3 years ago, however here is a solution that works. I have the Osepp LCD keypad shield connected to a genuine Arduino Uno. This is the code I used. Just modified yours to make it work

// This #include statement was automatically added by the Spark IDE.
#include <LiquidCrystal.h>


// Make sure to update these to match how you've wired your pins.
// pinout on LCD [RS, EN, D4, D5, D6, D7];
// pin nums LCD  [ 4,  6, 11, 12, 13, 14];
// Shield Shield [RS, EN, D4, D5, D6, D7];
// Spark Core    [D3, D5, D2, D4, D7, D8];

LiquidCrystal lcd(8, 9, 4, 5, 6, 7) //modified this  for correct pins on UNO

void setup() {
  // set up the LCD's number of columns and rows: 
lcd.begin(16, 2);  // fixed an error here
lcd.setCursor(0, 0);// added this so message was definitely located a t 0,0
  // Print a message to the LCD.
lcd.print("Hello, Sparky!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Hope you have moved further along in you career and had good luck.
SPARKIE