Flamingo EDA Serial LCD-1602 Shield

Hi all,

Does anyone any have a working knowledge of the above? It appears to be a standard LCD with an on-board parallell to serial interface and a 4 pin buckled connection for use with a V4 sensor shield.

From the very brief instructions I've found there is no mention of LCD library use Error, Electronic & Electronics Components Depot United States Problem is I can't get any text onto the LCD.

Following the instructions, here is my sketch:

// Laser trigger for camera shutter release
// to capture insects landing on flower heads
// Adapted by MAC Coles 25/2/10

int val=0; // Store the value from the LDR
int laserPin=9; // Laser control on pin 9
int redLed=8; // Red LED connected to pin 8
int camera=10; // Camera trigger control on pin 10
int greenLed=13; // Green LED connected to pin 13
int ldrPin=0; // LDR output to analogue in pin 0
bool aligned=false;
bool lastAligned=false;
bool beamBroken=false;

void setup() {
Serial.begin(9600); // open the serial port at 9600 bps:

pinMode(greenLed,OUTPUT);
pinMode(redLed,OUTPUT);
pinMode(camera,OUTPUT);
}

void loop()
{
// Laser/LDR alignment
val=analogRead(ldrPin);
if(val < 200)
{
digitalWrite(greenLed,HIGH);
Serial.print("$CLEAR\r\n");
Serial.print("$GO 1 1\r\n");
Serial.print("$PRINT MACs Laser Trigger\r\n");
Serial.print("$GO 2 4\r\n");
Serial.print("$PRINT LASER ALIGNED\r\n");
Serial.print("$CURSOR 1 1\r\n");
aligned=true;
}
else
{
digitalWrite(greenLed,LOW);
Serial.print("$CLEAR\r\n");
Serial.print("$GO 1 1\r\n");
Serial.print("$PRINT MACs Laser Trigger\r\n");
Serial.print("$GO 2 4\r\n");
Serial.print("$PRINT LASER NOT ALIGNED\r\n");
Serial.print("$CURSOR 1 1\r\n");
aligned=false;
}
// Broken beam?
if(lastAligned!=aligned && aligned==false)
{
// Alignment has changed or beam broken
beamBroken=true;
}
else
{
beamBroken=false;
}

if(beamBroken)
{
digitalWrite(laserPin,LOW);
delay(20);
digitalWrite(redLed,HIGH);
digitalWrite(camera,HIGH);
Serial.print("$CLEAR\r\n");
Serial.print("$GO 1 1\r\n");
Serial.print("$PRINT MACs Laser Trigger\r\n");
Serial.print("$GO 2 4\r\n");
Serial.print("$PRINT CAMERA FIRED!!\r\n");
Serial.print("$CURSOR 1 1\r\n");
delay(50);
digitalWrite(camera,LOW);
digitalWrite(camera,HIGH); // Double trigger to
delay(50); // wake camera from sleep
digitalWrite(camera,LOW);
delay(500);
digitalWrite(laserPin,HIGH);
digitalWrite(redLed,LOW);
delay(200); // Short delay to allow the LDR
// to stabilize after laser off/on
// to avoid false positives.
}
digitalWrite(laserPin,HIGH);
lastAligned=aligned;
}

Any help appreciated.

Connect 5V, GND, yellow to pin 1, white to pin 0.
It seems that the screen only has these 4 commands.
CLEAR, GO, PRINT, CURSOR
To write a value that is changing I use this sample program:

void setup() {
Serial.begin(9600);
}
int i=0;
void loop() {
Serial.print("$CLEAR\r\n");
Serial.print("$GO 1 1\r\n");
Serial.print("$PRINT Hola Mundo\r\n");
Serial.print("$GO 2 1\r\n");
Serial.print("$PRINT ");
Serial.print(i);
Serial.print(" \r\n");
Serial.print("$CURSOR 1 1\r\n");
i++;
delay(1000);
}

I think I must be missing something fundamental or I have a dud unit :-/ I have it connected via a sensor shield as shown in the above link. The LCD illuminates and I have adjusted the onboard contrast cap, no output on the display.

I connect directly, without sensor shield.
You can test the serial LCD with 3 cables.
First connect 5V and GND. LCD iluminates.
Then connect yellow cable from Serial LCD to pin 1 (TX) and test.
Stop Serial Monitor. Arduino canĀ“t comunicate simultaneusly with Serial and PC.

jfelipe,

Tried your test and the screen worked!! [smiley=thumbsup.gif]

I had a closer look at the shield and there are a pair of jumper pins behind the buckled socket that appeared to allow selection of I2C or COM. Problem was there were no jumpers, so I dug around and took some off old hard drives, used them to select COM on the shield. I now have a working solution [smiley=happy.gif]

Thanks for your help

Here is a bit more on this shield. To upload the sketch the jumpers mentioned above had to be in the IIC position. Then switch the jumpers once the sketch is uploaded to run the program. It makes for a pain during program development. I attached my LCD to the sensor shield and it seems to be working now.
Also the documentation is contradictory on on how a string is ended. I ended up using the \r\n combination.