I2C Display not working no matter what I do

Ive been trying to get some I2C displays I purchased on Amazon and was not able to make them work no matter what I tried. I used different libraries but nothing is letting these displays show anything. I tried with ESP8266 as well as with ESP32. I also purchased a few Ardiono boards but almost giving up on this. Any help would be appreciated.

Well that is so sad, what you`re going to do now? :smiley:

Type display. Libraries? Code? Schematic?

Your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with (nor for advice on) your project :wink: See About the Installation & Troubleshooting category.

Try with UNO which, I am sure, you have.

Start with an I2C scanner to see if a display is detected and if so, what address it has. Only connect 1 display at a time.

Yes I did that and do see 1 device connected with address of 0x3C. That's where I am stuck and not able to proceed further.

yes you are correct. I do have a box of UNO's (for various planned and unplanned projects).
Shall try that today. Good idea.

I will be trying a few more ideas, some of which from the great people who are giving me suggestions on here and some my own, and if all else fails, will return them as the seller was not able to help me with it other than offering a full refund if I returned them and I already got a return label yesterday. I am hoping I do not have to use the return label and rather use the LCDs as I really was hoping to use them on a multitude of projects.

here is my code that is not working.
I did a scan to find that I do see 1 device and its hex code is 0x3C, hence I put that in the code below.

#include "Wire.h"
#include "LiquidCrystal_I2C.h"
#include "thingProperties.h"

void setup() {
  Serial.begin(9600);
  delay(1500); 
  initProperties();
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
  
  Serial.println("Setting up and will print on LCD now");
  LiquidCrystal_I2C lcd(0x3C, 20, 2); 
  lcd.init();

  lcd.backlight();
  lcd.setCursor(1, 0);
  lcd.print("This is");
  lcd.setCursor(1, 1);
  lcd.print("Working");
}

void loop() {
  ArduinoCloud.update();
}

I dont know how to draw and post the schematic on here. I can draw one up with maybe mspaint (I am using windows), but would like to know what you guys use so i can do a better job. Thanks.

You can always draw by hand on a piece of paper and photograph it, then upload it here.

I'm reasonably comfortable using the free version of Eagle but I've also use Kicad.

Might also be worth taking some photos of your LCD module and posting them here as well. Also post the link to the Amazon page if you have it.

Maybe lcd constructor should be outside setup loop()? Have you tried any simple library example?

Yes ive tried a few examples that I found online, none of which worked. I understand this LCD does not have a backlight, so unless I display something , it will stay dark. My test code above is also from one of the examples I saw online, the only thing I changed was the wording in the displays. Still trying to get this to work.

Try to use the standalone IDE program and not a cloud version.

Please post the photo of the display

Have you tried the example(s) that came with the LCD library?

Connect your LCD with UNO and then upload the following sketch to get the 7-bit slaveAddress of the LCD.

#include<Wire.h>
byte busStatus;

void setup()
{
  Serial.begin(9600);
  Wire.begin();
  for (int i2cAddress = 0x00; i2cAddress < 0x80; i2cAddress++)
  {
    Wire.beginTransmission(i2cAddress);
    busStatus = Wire.endTransmission();
    if (busStatus == 0x00)
    {
      Serial.print("I2C Device found at address: 0x");
      Serial.println(i2cAddress, HEX);
    }
    else
    {
      Serial.print("I2C Device not found at address: 0x");
      Serial.println(i2cAddress, HEX);
    }
  }
}

void loop()
{

}

What library you are using? Look at this example, for a start you don`t have lcd.begin() and constructor should be out of the setup loop . Arduino-LiquidCrystal-I2C-library/HelloWorld.ino at master · fdebrabander/Arduino-LiquidCrystal-I2C-library · GitHub
Try library example first..

Hi, @logichc

An image of a hand drawn circuit will be much easier and better.

Can you please post some images of your project?
Preferably using an Arduino board.
Do you have a UNO or Nano?

Do the example codes for the library you are using work?

You need to go back to basics to get your display working, so use an example code that comes with the library.

Thanks.. Tom...