I2C

    This page is to Scan I2C by Arduino and ESP8266
 

Hardware and Software

Hardware 
    Arduino and any I2C Devices Connected

Software 
    Arduino IDE


Sanki Notes

  • Scan I2C Address
  • THIS IS OLED 0.9 and 1.3 inch I2C Address
    CHANGING I2C ADDRESSES:


    SOME I2C interfaces have pins (or solder pads) that can be changed to change the address. They are usually labelled A0-A1-A2 . Here's the way addresses change from a default 0x27 with if you connect address pads together.
  •  (1 = Not Connected. 0 = Connected):

    A0

    A1

    A2

    HEX Address

    1

    1

    1

    0x27

    0

    1

    1

    0x26

    1

    0

    1

    0x25

    0

    0

    1

    0x24

    1

    1

    0

    0x23

    0

    1

    0

    0x22

    1

    0

    0

    0x21

    0

    0

    0

    0x20



  • EEPROM AT24C512 : 
    • I2C scanner. Scanning ...
    • Found address: 81 (0x51)

Examples

          This example is ..........
I2C scanner. Scanning ...
Found address: 39 (0x27)
Done.
Found 1 device(s).
  1. // I2C Scanner
    // Written by Nick Gammon
    // Date: 20th April 2011
    
    #include <Wire.h>
    
    void setup() {
      Serial.begin (115200);
    
      // Leonardo: wait for serial port to connect
      while (!Serial) 
        {
        }
    
      Serial.println ();
      
    }  // end of setup
    
    void loop() {Serial.println ("I2C scanner. Scanning ...");
      byte count = 0;
      
      Wire.begin();
      for (byte i = 8; 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 (")");
          count++;
          delay (1);  // maybe unneeded?
          } // end of good response
      } // end of for loop
      Serial.println ("Done.");
      Serial.print ("Found ");
      Serial.print (count, DEC);
      Serial.println (" device(s).");
      delay(2000);
      }
    


Scan I2S on ESP8266
  • -- http://www.esp8266.com/viewtopic.php?f=19&t=771
  • -- Scan for I2C devices

  • id=0
  • sda=8
  • scl=9

  • -- initialize i2c, set pin1 as sda, set pin0 as scl

  • i2c.setup(id,sda,scl,i2c.SLOW)

  • for i=0,127 do
  •   i2c.start(id)
  •   resCode = i2c.address(id, i, i2c.TRANSMITTER)
  •   i2c.stop(id)
  •   if resCode == true then print("We have a device on address 0x" .. string.format("%02x", i) .. " (" .. i ..")") end
  • end