Little problem with I2C-LCD screen

Hi guys! I have a little problem with my shiny new I2C-LCD 16x2 screen. I bought this one ( from IndustryPark.

When I bought the screen I did’t realize that there was such a variety of screens. The screen I bought uses the PCF8574AT circuit.

I downloaded the LiquidCrystal_I2C library (from the official Arduino site) to communicate with the screen using the I2C protocol using an Arduino Nano, I use a script to get the direction of the I2C device (the screen) and give me the 0x3F, but it happens that when I invoke the functions to write the text strings to the screen I only print the first letter of the entire text string. I can write complete messages but I have to do it in character by character.

Investigating I realized that, maybe, it was a problem with the library I was using, maybe the library was’t meant to communicate with the PCF8574AT. So looking for information I discovered that there was a developer who had made this other library FMalpartida (…but I live in Cuba and I only have access to the internet from my work , where I’m now, and apparently the internet address in which this library is hosted is blocked and I can not access it …

So … what I need is for some charitable soul to give me another link to download it or if they can attach it to me right here in this thread.

Thanks in advance.

PS: Excuse my English.
PS2: I attach an image of the chip in the back of the screen (CHECKED)

Personally, I am using FMalpartida’s library for pretty long time without any problem. Here is older version 1.2.1, which I’m using up to now, works perfectly with the PCF8574. (485 KB)

THANKS!!! Veryyyy thankssss!!!

I’ll work with it and tell you if all goes fine!



If you are only getting the first character showing up then you have installed and are using an old library and you did not get the latest version of library from the IDE library manager. That bug was introduced with more recent IDEs that changed the Print class. It was fixed about two years ago.

As an alternative, I would recommend my hd44780 library package.
It is available in the IDE library manager so it can quickly and easily be installed from the IDE gui using the library manager.
It can auto detect everything, the i2c address, the pin mappings, and the backlight control.
You can read more about it here: GitHub - duinoWitchery/hd44780: Extensible hd44780 LCD library

The github page contains information about the library including installation instructions.
Use the IDE library manager as it is easier and faster than trying to do it manually or using the zip install.
Also, by using the IDE library manager it ensures that the library is installed properly not to mention that you will also get the latest tested version of the library.

The i/o class you will want to use for that backpack which contains an i2c i/o expander chip is hd44780_I2Cexp
That i/o class includes a diagnostic sketch (I2CexpDiag) which will test the i2c signals and internal RAM of the LCD module to verify that the the library is properly communicating with the LCD module.

The hd44780 library contains additional capabilities not available in other libraries like

  • ability to read the display RAM or LCD status
  • return status to tell if API functions are not working correctly (usually do to i2c communication issues)
  • ability to enable automatic line wrapping
  • faster than other libraries as Arduino can run in parallel with LCD commands/instructions

I would recommend first running the diagnostic skech I2CexpDiag to verify that everything is working, then you can run and look at the other examples included in the hd44780_I2Cexp i/o class (like HelloWorld) to see the what header files need to be included and how to declare the lcd object.

--- bill

Sorry for the late answer, I only have access to the internet in my work :frowning:

@Budvar10 thanks! I use the library you give and work very nice!!! THANKS!!!

@bperrybap (again, sorry for the late answer)…dude thanks for your answer, I will study and use your library, but give some time…I tell you abaout your library tomorrow or (more possible) the day after tomorrow…

Thanks!!! (I attach some pict of the result!)