LCD Error

Hello,

I have managed to convert the Arduino to vero board with LCD display but after 3 loops of the code the LCD displays error in the text and goes back round to the start with no errors then displays errors again

I have tried another chip its still the same.

Not sure if its a bad connection

See attached images

but after 3 loops of the code

I don't see any code.

I don't need the temp part as I'm not using the LM35

[code
#include <LiquidCrystal.h>                                       // include the LCD driver library

                                                                  //declare variables
 float tempC = 0;                                                 // Variable for holding Celcius temp (floating for decimal points precision)
 float tempf = 0;                                                 // variable for holding Fareghneit temp
 int tempPin = 0;                                                 // Declaring the Analog input to be 0 (A0) of Arduino board.
 float samples[8];                                                // Array to hold 8 samples for Average temp calculation
 float maxi = 0,mini = 100;                                       // Max/Min temperature variables with initial values. LM35 in simple setup only measures Temp above 0.
 int i;

                                              
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);                          // initialize the library with the numbers of the interface pins

 void setup()
 {
 Serial.begin(9600);                                             // Opens serial port, sets data rate to 9600 bps

 lcd.begin(16, 2);                                               // Set up the LCD's number of columns and rows:

 }

 void loop()
 {
 lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("INSTALLED BY");                                      // Print text to LCD
 lcd.setCursor(0, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("EUROTECK SYSTEMS");                                       // Print text to LCD
 delay(4000); // wait 500ms                                      // Delay to read text
 lcd.clear(); // clear LCD display                               // Clear the display
 lcd.setCursor(0, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("CALL 01827312455");                                      // Print text to LCD
 lcd.setCursor(0, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("FOR AN ENGINEER");                                       // Print text to LCD
 delay(4000); // wait 500ms                                      // Delay to read text
 lcd.clear(); // clear LCD display
 lcd.setCursor(0, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("X-RAY INSPECTION");                                      // Print text to LCD
 lcd.setCursor(1, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("& SYSTEM SALES");                                       // Print text to LCD 
 delay(4000); // wait 500ms                                      // Delay to read text
 lcd.clear(); // clear LCD display

lcd.setCursor(0, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("MONDAY TO FRIDAY");                                      // Print text to LCD
 lcd.setCursor(2, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("8:30 - 17:00");                                       // Print text to LCD
 delay(4000); // wait 500ms                                      // Delay to read text
 lcd.clear(); // clear LCD display

 lcd.setCursor(5, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("INFO@");                                      // Print text to LCD
 lcd.setCursor(1, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("EUROTECK.CO.UK");                                       // Print text to LCD
 delay(4000); // wait 500ms                                      // Delay to read text
 lcd.clear(); // clear LCD display

 lcd.setCursor(5, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("SALES@");                                      // Print text to LCD
 lcd.setCursor(1, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("EUROTECK.CO.UK");                                       // Print text to LCD
 delay(4000); // wait 500ms                                      // Delay to read text
                                                     // Set tempC to 0 so calculations can be done again
 lcd.clear(); 


lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("WWW.EUROTECK");                                      // Print text to LCD
 lcd.setCursor(5, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print(".CO.UK");                                       // Print text to LCD
 delay(4000); // wait 500ms                                      // Delay to read text
 lcd.clear(); // clear LCD display         


 }       ]

Check your wiring to make sure all of the contacts are good and not loose.
From what I know if there is "?" on your screen usually it's your soldering. "not sure"

 lcd.clear(); // clear LCD display                               // Clear the display
 lcd.setCursor(0, 0);

lcd.clear() automatically resets the cursor to 0,0 so there is no need to call lcd.setCursor(0,0). I also see that your code initializes a serial connection, but is never used (unless I missed it). You also say that you don't need the temperature part, but the variables are still declared. Try this:

#include <LiquidCrystal.h>                                       // include the LCD driver library

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);                          // initialize the library with the numbers of the interface pins

 void setup(){
 
 lcd.begin(16, 2);                                               // Set up the LCD's number of columns and rows:
 lcd.clear();                                                       //get rid of garbage that may be displayed on power-up

 }

 void loop(){
 lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("INSTALLED BY");                                      // Print text to LCD
 lcd.setCursor(0, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("EUROTECK SYSTEMS");                                       // Print text to LCD
 delay(4000); // wait 4 seconds                                      // Delay to read text
 lcd.clear(); // clear LCD display                               // Clear the display
 lcd.print("CALL 01827312455");                                      // Print text to LCD
 lcd.setCursor(0, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("FOR AN ENGINEER");                                       // Print text to LCD
 delay(4000); // wait 4 seconds                                    // Delay to read text
 lcd.clear(); // clear LCD display
 lcd.print("X-RAY INSPECTION");                                      // Print text to LCD
 lcd.setCursor(1, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("& SYSTEM SALES");                                       // Print text to LCD 
 delay(4000); // wait 4 seconds                                    // Delay to read text
 lcd.clear(); // clear LCD display

 lcd.print("MONDAY TO FRIDAY");                                      // Print text to LCD
 lcd.setCursor(2, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("8:30 - 17:00");                                       // Print text to LCD
 delay(4000); // wait 4 seconds                                      // Delay to read text
 lcd.clear(); // clear LCD display

 lcd.setCursor(5, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("INFO@");                                      // Print text to LCD
 lcd.setCursor(1, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("EUROTECK.CO.UK");                                       // Print text to LCD
 delay(4000); // wait 4 seconds                                      // Delay to read text
 lcd.clear(); // clear LCD display

 lcd.setCursor(5, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("SALES@");                                      // Print text to LCD
 lcd.setCursor(1, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print("EUROTECK.CO.UK");                                       // Print text to LCD
 delay(4000); // wait 4 seconds                                      // Delay to read text
 lcd.clear(); 


lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
 lcd.print("WWW.EUROTECK");                                      // Print text to LCD
 lcd.setCursor(5, 1);                                            // Set LCD cursor position (column,row) 
 lcd.print(".CO.UK");                                       // Print text to LCD
 delay(4000); // wait 4 seconds                                      // Delay to read text
 lcd.clear(); // clear LCD display         

 }

I have changed the code but I still have the errors must be the soldering as it worked fine on breadboard

Hi,
Looks like its time to use the DMM and check each of the connections between the LCD and the controller, also check that you have the gnd of the LCD connectede to the gnd of the board.
Have you got bypass capacitors on your control IC and at the power connerctions off the board to the LCD.

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png or pdf?

Also a picture of the component side of the board.

Thanks ..Tom... :slight_smile:

Hi Tom.

I have caps on the voltage regulator but nothing else.

Seems to do 3 loops fine then creates errors.

I'll post the Sche later

The error always seems to occur after 3 successive loops.

I've noticed I didn't put pin 16 on the LCD to ground, i broke the track in the wrong area.

Stupid ME :slight_smile: