LCD Display suddenly displaying strange characters....???

Hi all,

ok this is my 3rd LCD project now.
I've had my LCD working perfectly fine up until today, using the LiquidCrystal libs.
Iv checked all my wiring and all is ok as iv used previously for my last 3 projects.
No shorts or dodgy pins (no soldering at this stage....)

Its almost like the LCD is displaying the output at a different baud rate or something.
Iv gone back to basics now and trying to load LCD hello world on the pins recommended in the example.

Still same issue, as my latest project was showing.
The output is just strange symbols, iv added a delay and a second hello world for line 2. This appears to be taking effect and the same symbols are moving from line 1 to line 2 after the delay.

Is there anyway the LCD panel has changed its baud rate?
Its a 1602 LCD, not sure where from as it came with my arduino 3 years ago.
But that shouldn't be an issue as iv been using the LiquidCrystal libs for months with this display and no issues.

Not sure theres any point in uploading code either as i said, iv gone back to basics now using the hello world example to eliminate any code errors.

Its clear theres either a fault in my LCD now, or theres some configuration/setting on the LCD iv never been aware of that must of changed.

Any help would be greatly appreciated.

Cheers
Deano

Any help would be greatly appreciated.

You won't get anything that's really useful until you post more information.

We need to see a photograph of your setup that clearly and unambiguously shows all of the connections between your Arduino and your LCD module. We also need a copy/paste version of the code that you are actually using, not a link to the code that you think you are using.

Without this all you will get is speculation.

Don

theroots123:
Its almost like the LCD is displaying the output at a different baud rate or something.

Now you are confusing matters. The only LCD with a "baud rate" would be one with a serial (not I2C) backpack. And if the protocol was wrong, it would be most unlikely to initialise in the first place.

On a breadboard, the recommended way of "checking" wiring is to pull it all apart and carefully re-wire.

How are you connecting to the display? Does it have pins fitted? If it is in a breadboard, put a 0.1µF capacitor across pins 1 and 2.

If that does not fix it - we want the photos and the (actual) code.

Hello,

I have a similar problem. In a moment of the code, the display shows strange characters.
In the code I've type the moment I think fault.

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int motorPin = 7;
const int sensorBarra = 13;
const int sensorNamur = 6;
const int sensorMedida = 10;

void setup(){
  pinMode(motorPin, OUTPUT);
  pinMode(sensorBarra, INPUT);
  pinMode(sensorNamur, INPUT);
  pinMode(sensorMedida, INPUT);
  
  lcd.begin(16, 2);
  lcd.print("Esperando");
  lcd.setCursor(0, 1);
  lcd.print("vehiculo");
}

void loop(){
  if (digitalRead(sensorBarra) == HIGH){
    if (digitalRead(sensorNamur) == HIGH){
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Vehiculo en");
      lcd.setCursor(0, 1);
      lcd.print("posicion");
      delay(3000);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Iniciando");
      lcd.setCursor(0, 1);
      lcd.print("motores");
      delay(3000);
      analogWrite(motorPin, 200);
      delay(5);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Pise el freno");
      while (digitalRead(sensorMedida) == LOW){
        delay(5);
      }
      /* The next text shows wrong*/
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Medicion de");
      lcd.setCursor(0, 1);
      lcd.print("freno tomada");
      analogWrite(motorPin, 0);
      delay(3000);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Esperando salida");
      lcd.setCursor(0, 1);
      lcd.print("de vehiculo");
      while ((digitalRead(sensorBarra) == HIGH) || (digitalRead(sensorNamur) == HIGH)){
        delay(5);
      }
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Esperando");
      lcd.setCursor(0, 1);
      lcd.print("vehiculo");
    }
  }
}

This is the wrong message.

@NaneBL
Your problem is most likely due to interference from the motor. Disconnect the motor and see if your problem goes away.

Don

I have tried removing the motor, but the behavior is the same .... any other idea?