My I2C Lcd İs Not Shoving Letters

Hi My I2C Lcd is not shoving the letters

Here is my code:

<
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// LCD'nin varsayılan I2C adresi genellikle 0x27 veya 0x3F olur.
LiquidCrystal_I2C lcd(0x27, 20, 4);

void setup() {
lcd.init(); // LCD başlat
lcd.backlight(); // Arka ışığı aç

// Satırlara yazı yazma
lcd.setCursor(0, 0); // İlk satır, ilk sütun
lcd.print("Merhaba!");

lcd.setCursor(0, 1); // İkinci satır, ilk sütun
lcd.print("Bu bir 20x4 LCD");

lcd.setCursor(0, 2); // Üçüncü satır, ilk sütun
lcd.print("I2C ile baglandi");

lcd.setCursor(0, 3); // Dördüncü satır, ilk sütun
lcd.print("Arduino ile calisiyor");
}

void loop() {
// Buraya gerek yok, çünkü metin zaten yazıldı.
}

the code is correct and i desoldered and soldered the I2C two times just for that problem the contrast didnt changes when ı roll the potantiometer. I knew ı soldered it backwards but the pin connection is correct and it is because of the solder grounds (the gray bright grounds) are damaged on the front here is the soldering and the screen of lcd




(That is the full brightness)

SORRY FOR MY BAD ENGLİSH

Welcome to the forum

Please follow the advice given in the link below when posting code, in particular the section entitled 'Posting code and common code problems'

Use code tags (the < CODE/ > icon above the compose window) to make it easier to read and copy for examination

https://forum.arduino.cc/t/how-to-get-the-best-out-of-this-forum

Please post your sketch, using code tags when you do

Posting your code using code tags prevents parts of it being interpreted as HTML coding and makes it easier to copy for examination

In my experience the easiest way to tidy up the code and add the code tags is as follows

Start by tidying up your code by using Tools/Auto Format in the IDE to make it easier to read. Then use Edit/Copy for Forum and paste what was copied in a new reply. Code tags will have been added to the code to make it easy to read in the forum thus making it easier to provide help.

It is also helpful to post error messages in code tags as it makes it easier to scroll through them and copy them for examination

Have you made sure that the Arduino can see the LCD and what its address is by using the scanner sketch included with the Wire library ?

Check the soldering joints

Brightness is not adjustable on that device.
The backlight is either off or on.
You can adjust the contrast by turning the blue potentiometer.
If you adjust it (turn it) the way to one end, all the pixels on the display should turn on, if you adjust all the way to other end all the pixels will turn off.
Somewhere in the middle the contrast will be correct to only light up the pixels for the characters that have been written to the display.

For a test, just hook up power and ground.
Then adjust the potentiometer until you see two lines of blocks.
(Two lines of blocks is the default power up state)
That will get the contrast setting correct.

After that, work on getting the s/w to work.

--- bill

If you want to verify that the pot is working to adjust the contrast,
Hook a volt meter across pins 1 and 3 on the LCD.
Put the ground to pin 1 and measure the voltage on pin 3.
The voltage on pin 3 should vary when you turn the pot.

They are all ok and no bridge

1 Like

Yes it is 0x27

The problem is that ,there is no blocks when ı turn the potantiometer

So what did the voltage do on LCD pin 3 when you rotated the pot?

You code is ok. I´ve made a check.

Post a picture showing the wiring and connections in detail.

Okay okay ı find the problem but cannot fix it when ı short the 3 rd and 4th pins (connect them together) the white boxes come but the contrast didnt change when ı turn the pot while Im shorting them. ı tested my pot and it works on multimeter anyways ı tried the module on 16x2 and 20x4 displays but non of them worked (just showed box when ı short the pins) ı tried the hd 44780 lib. if you guys think that my module is broken ı will buy another one
Thanks.

You may have observed something, but you have not found the problem.
You should not short LCD pin 3 to LCD pin 4.
LCD Pin 3 is the contrast voltage input which should come from the wiper pin on the pot and LCD Pin 4 is the RS signal which is controlled by a pin on the PCF8574.
The host will set the PCF8574 pin connected to RS to HIGH when writing characters to the LCD and will set it LOW when sending instructions (commands) to the LCD.
If the module is soldered properly, the wiper pin of the pot should be connected to LCD pin 3, If the pot is rotated the wiper pin and LCD pin 3 should be ground at one end and VCC at the other end.

ı tested my pot and it works on multimeter anyways ı tried the module on 16x2 and 20x4 displays but non of them worked (just showed box when ı short the pins) ı tried the hd 44780 lib.

What do you mean by this?
I.e.

How did you test the pot?

From the photo you posted, the way you soldered the module,
you have access to all 3 pins of the pot on the back side of the i2c module.
You should verify these things:

  • 1 pin on the pot should be ground
  • 1 pin on the pot should be VCC - which needs to be 5v
  • 1 pin on the pot is the wiper and should be connected to LCD pin 3.
  • This pot wiper pin should vary from ground to VCC when you rotate the pot from one end to the other.

What was the voltage on LCD pin 3 doing when you rotated the pot?
It should be varying from ground to VCC as you rotate the pot.

Are also you saying you i2c Unsoldered the module and resoldered on on several different LCDs?
There is no need to do this.
You need to diagnose to see if the pot is working properly.

Also,
The example code you are showing is using the LiquidCrystal_I2C library not the hd44780 library.

--- bill

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.