I am having problems with a 16x2 lcd
I use the EB005-00-3 from e-blocs. It has a Samsung KS0066U controller, which is similar to the Hitachi HD44780 controller.
And according to the playground it should work too. I made myself a cable according to the pinout I found on the datasheet (http://www.matrixmultimedia.com/datasheets/EB005-30-3.pdf) But I only get gibberish on my screen when trying the hello world example.
I alredy tried a delay between the lcd.begin(16, 2); and lcd.print("hello, world!"); but that doesnt work either.
we can't see the circuit, but if what's on the display is "Hello World!" then it looks like you've got the data shifted bit wise or something.. if you notice, the "LL" is there.. just not "L"'s. The exclamation (ascii 33) to B (ascii 66).. I'd say the data lines are shifted one bit to the left. Check your wiring, it's the problem...
If you bitshift 33 ( 0010 0001 ) to the left one place ( 01000010 ) you get 66 decimal. Acsii for Exclamation is 33, the "B" displayed is ascii 66.
still sounds like a bad connection. I'd look for solder bridges, bad joints.. and check that pinout again. What's on the screen is the right information, bit shifted one bit to the left.
If all the connections are correct, and you've declared the pins correctly.. hmm. If it's hooked up right (I doubt it, it just doesn't happen like that) then the module is bad. Triple and quadruple check it. The data is getting shifted.
found the problem. My wiring was correct, but my power source was the problem
I was powering it with an other power source. It worked when I hooked it up to the 5v of the arduino board
I use the Arduino Due with the Arduino E-block Shield EB081.
The E-Block EB-005 (LCD) works if you place it at the D0-D7-connector and initialize it with the following dode:
// include the library code: #include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
// LCD Pins RS EN D4 D5 D6 D7
// Arduino D4 D5 D0 D1 D2 D3
LiquidCrystal lcd(4, 5, 0, 1, 2, 3);
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, world!");
}
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);
}
It works either with 5V or 3V3, but with 5V the contrast is better.