锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

怎样测出I2C组件的总线地址

时间:2022-10-10 18:00:00 温湿度传感器怎么连接ni激光传感器vl53l1x

和爷爷一起学Arduino:怎样测出I2C组件的总线地址

I2C,Inter-Integrated Circuit,缩写也写作IIC。在Arduino里也叫TWI(Two-Wire Interface)。是菲利普(现在叫NXP)公司开发的通信协议。最初用于电视,以减少芯片之间的连接。Atmel搞了个TWI,Two-Wire Interface,两线接口。其实与I2C是一样的。ATmega328内置了TWI,Arduino UNO模拟输入脚A4与A5兼作TWI的SDA与SCL引脚。Arduino的Wire库支持I2C通信。选菜单项项目|“加载库”|“Wire装入Wire库。

它是嵌入式总线目前应用最广泛。使用I2C的组件有:8X8点阵HT16K33、16路PWM舵机驱动板,TM1637 六位数字管显示按钮扫描模块GP2Y0E03红外测距传感器模块,Sparkfun陀螺仪加速度计,DS1307 RTC时钟模块、LCD1602A(带I2C扩展小板),HT16K33(8X8单色点阵LED)、SHT35温湿度传感器,GY-49 MAX光照传感器44009,VL53L1X VL53L0X激光测距传感器等。你进淘宝用关键词I2C”或“IIC搜索,可以知道,带I2C总线的组件有多少?你进淘宝用关键词I2C”或“IIC搜索,可以知道,带I2C总线有多少组件?现在,所有需要高速传输的存储芯片只能使用SPI,其它多用I2C了。

I2C它是一条总线,所以挂在同一条线上I2C总线上的每个组件都必须有一个独特的地址,以确保没有冲突。地址范围为0~127(0~7FH)。主机地址为0,最多允许127个从机。Arduino只连接一个I2C组件还需要了解组件I2C地址,因为是的I2C组件编程时需要知道其总线地址。

#include    void setup() {   Wire.begin();     Serial.begin(9600);   while (!Serial);             // Leonardo用来等串口监视器的板   Serial.println("\nI2C Scanner"); }     void loop() {   byte error, address;   int nDevices;     Serial.println("Scanning...");     nDevices = 0;   for(address = 1; address < 127; address   )    {     Wire.beginTransmission(address);     error = Wire.endTransmission();       if (error == 0)     {       Serial.print("I2C device found at address 0x");       if (address<16)          Serial.print("0");       Serial.print(address,HEX);       Serial.println("  !");         nDevices  ;     }     else if (error==4)      {       Serial.print("Unknown error at address 0x");       if (address<16)          Serial.print("0");       Serial.println(address,HEX);     }       }   if (nDevices == 0)     Serial.println("No I2C devices found\n");   else     Serial.println("done\n");     delay(5000);           // 等待5秒,下次扫描 }

操作上述代码,可以在串口监视器中读取被测组件I2C总线地址。写下来,贴在组件上。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章