new LiquidCrystal library problems

I am having trouble using the LiquidCrystal_SR for my 3-wire serial LCD interface I am trying to setup using a 74HC595 shift register.

The library is located at:
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

with the schematic and sample code for a 3-Wire latched shift register at:
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics?_escaped_fragment_=latch-shift-register#!latch-shift-register

When I try to compile the following code I get error: ‘LiquidCrystal_SR’ does not name a type.

#include <LCD.h>
#include <LiquidCrystal_SR.h>

LiquidCrystal_SR iLCD(2, 1, 3); // Assuming that the header is connected to the same digital IO pin.

void setup ( )
{
   iLCD.begin ( 16, 2 );

   // ...
}

:~

I just downloaded the library. I had to include the Wire library, and add an empty loop() function, and then your code compiled.

The best thing is to use the sample sketches that come with the library.
The wiring page is to show how to initialize the library based on the wiring.

dxw00d:
I just downloaded the library. I had to include the Wire library, and add an empty loop() function, and then your code compiled.

Yes, I did that also, still the same result.

fm:
The best thing is to use the sample sketches that come with the library.
The wiring page is to show how to initialize the library based on the wiring.

I did use the HelloWorld_SR example and it did not compile either. But, if I try the regular LiquidCrystal library HelloWorld example, it compiles just fine.

In that case, I would think that you haven't correctly installed the library.

dxw00d:
In that case, I would think that you haven't correctly installed the library.

I unzipped it and added it to the library folder though I did have to rename it slightly because The ide did not like the underscores in the library name.

You need the LiquidCrystal folder in your library folder, not the one called 'LiquidCrystal_V1.2.1'.

You need to delete the stock LiquidCrystal library and replace it by this one. It has the same functionality as the stock library but more performant. If you wish, you can store the stock library somewhere that is not the library folder.

fm:
You need to delete the stock LiquidCrystal library and replace it by this one. It has the same functionality as the stock library but more performant. If you wish, you can store the stock library somewhere that is not the library folder.

Okay, thanks though that sounds a bit strange to me, but I'll give it a try.

Z.K.:

fm:
You need to delete the stock LiquidCrystal library and replace it by this one. It has the same functionality as the stock library but more performant. If you wish, you can store the stock library somewhere that is not the library folder.

Okay, thanks though that sounds a bit strange to me, but I'll give it a try.

Okay, well that did not work. Even though I replaced the LiquidCrystal display with LiquidCrystal_V1.2.1 and renamed that library to LiquidCrystal, it does not work and gives me the same error as before. Now, what I am wondering is whether this library is specific to either a 32-bit platform or not. I am using a 64-bit platform with 64-bit Arduino IDE. Could this be the problem? Perhaps I will install the 32-bit version of the IDE in virtualbox and see what happens.

Can you put a snippet of the error you are getting?
The library in independent of the version you are using.
Do you have any other LiquidCrystal library other than the New LiquidCrystal installed in your Arduino library folder?

fm:
Can you put a snippet of the error you are getting?
The library in independent of the version you are using.
Do you have any other LiquidCrystal library other than the New LiquidCrystal installed in your Arduino library folder?

I kind of did originally, but here is the entire error that is reported when I run the HelloWorld_SR example:

HelloWorld_SR.pde:-1: error: ‘LiquidCrystal_SR’ does not name a type
HelloWorld_SR.cpp: In function ‘void setup()’:
HelloWorld_SR.pde:-1: error: ‘lcd’ was not declared in this scope
HelloWorld_SR.cpp: In function ‘void showHappyGuy(int)’:
HelloWorld_SR.pde:-1: error: ‘lcd’ was not declared in this scope

And here is the entire sketch:

#include <Wire.h>
#include <LiquidCrystal_SR.h>

LiquidCrystal_SR lcd(8,7,TWO_WIRE);
//                   | |
//                   | \-- Clock Pin
//                   \---- Data/Enable Pin

// Creat a set of new characters
byte armsUp[8] = {0b00100,0b01010,0b00100,0b10101,0b01110,0b00100,0b00100,0b01010};
byte armsDown[8] = {0b00100,0b01010,0b00100,0b00100,0b01110,0b10101,0b00100,0b01010};

void setup(){

  lcd.begin(16,2);               // initialize the lcd

  lcd.createChar (0, armsUp);    // load character to the LCD
  lcd.createChar (1, armsDown);    // load character to the LCD

  lcd.home ();                   // go home
  lcd.print("LiquidCrystal_SR");
}

void loop(){
  // Do a little animation
  for(int i = 0; i <= 15; i++) showHappyGuy(i);
  for(int i = 15; i >= 0; i--) showHappyGuy(i);
}

void showHappyGuy(int pos){
  lcd.setCursor ( pos, 1 ); // go to position
  lcd.print(char(random(0,2))); // show one of the two custom characters
  delay(150); // wait so it can be seen
  lcd.setCursor ( pos, 1 ); // go to position again
  lcd.print(" "); // delete character
}

Also, I tried this in virtualbox using 32-bit Ubuntu, but still the same failure. I think I will go and see if Windows does the same thing.

Where did you place the Library? Beacause it is not finding it.

fm:
Can you put a snippet of the error you are getting?
The library in independent of the version you are using.
Do you have any other LiquidCrystal library other than the New LiquidCrystal installed in your Arduino library folder?

I tried it in Windows and received the same error as before. I am not sure what is going on. It does not seem to be operating system related and I download new version of both Arduino 1.01 and the LiquidCrystal library.

fm:
Where did you place the Library? Beacause it is not finding it.

Okay, I figured out what was going on now, when I unzipped it I had an extra folder as in \LiquidCrystal_V1.2.1\LiquidCrystal. I copied all the files to \LiquidCrystal_V1.2.1 and deleted the LiquidCrystal folder. Then I rename the \LiquidCrystal_V1.2.1 to just LiquidCrystal and now it compiles okay. Of course the LCD still does not work for some reason. I am not sure why, I used the exact circuit from the web page.

Contrast for the LCD?

You need to connect a 10k pot to adjust the contrast. Where are you connecting the contrast pin to?

fm:
Contrast for the LCD?

Yes, I have a 10K pot.

fm:
You need to connect a 10k pot to adjust the contrast. Where are you connecting the contrast pin to?

Gnd---|----+5V
|
/
Pin 3 of LCD

Attached is a picture of my breadboard.