Go Down

Topic: I2C Display Wiring (Read 206 times) previous topic - next topic


Hi guys,

I'm new to Arduino in general and the first thing I'm trying to do is get an I2C OLED display working with my Arduino Uno R3, but no matter what I try nothing displays on the screen.

I tried using various I2C scanners but all show no devices found.

I also tried what is apparently the default address of 0X3C or 0X3D, but nothing appears on the OLED screen.

The code I'm using is just from following this tutorial and using the Adafruit example:  https://www.instructables.com/id/Monochrome-096-i2c-OLED-display-with-arduino-SSD13/

I have attached images of how I have wired it up. I've tried all sorts of other configurations of the wiring as well, but none of them ever give me any results in the I2C scanners or show anything on the display with the example adafruit code.

So what am I missing?



Photos need to be taken in full daylight (but not sun) rather than in a dingy back room.  If you have a photo studio, that is OK too but ...  :smiley-eek:

What pull-ups do you think you are using?  I cannot see any on the module (which is actually, as it should be), so you need 10k pull-ups to your (5V) supply on each of SDA and SCL


I thought the photos were fine as you can clearly see which colour wires I have going into which pins no?

As for the pull up resistors, I was under the impression that the Wire.begin function automatically enabled the built in pull up resistor. Like in all of the tutorials for how to use the I2C scanners etc, they just mention wiring it up how I have done and then running the code. No mention of adding additional pull up resistors or anything.


Please post a link to the actual display that you bought e.g. Ebay sale.

The pcb looks as if it is a 3.3V display.   A Uno has got 5V GPIO.
Most of the SSD1306 and SH1106 boards have a 3.3V regulator on their pcb.   i.e. they can safely accept 5V VCC because they regulate to 3.3V on the pcb




to find I2C adress of your display, you can load/run I2C_Scanner

Code: [Select]
//  executer avec la version 1.8.5 de l' IDE Arduino
/* I2C Address Finder
 *  for " Arduino LCD I2C Tutorial| How to Program LCD Display"
 *  subscribe for more arduino Tuorials and Projects


#include <Wire.h>

void setup()

  Serial.begin (115200);
   while (!Serial)

  Serial.println ();
  Serial.println ("I2C scanner. Scanning ...");
  byte count = 0;
  for (byte i = 1; i < 120; i++)
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      delay (1);
  Serial.println ("Done.");
  Serial.print ("Found ");
  Serial.print (count, DEC);
  Serial.println (" device(s).");

void loop() {}

and click "moniteur serie" with the IDE Arduino.
but control 3.3v or 5V power display before.



perhaps, your display is dead...


perhaps, your display is dead...
Yep! I bought another OLED display and that worked fine straight away.

So yeah, I had it all set up fine from the start and just wasted loads of time thinking I must have been doing something wrong. The joys of being a beginner lol


Please post a link to the new OLED that you have bought e.g. Ebay sale.

Does the new OLED have an AMS1117 regulator chip?   These have 3 legs and the pcb is often printed U2.


Go Up