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
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).
-
// 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
|
|