只需一步,快速开始
签到天数: 867 天
[LV.10]以坛为家III
i2c_scanner_arduino.png (15.88 KB, 下载次数: 19)
下载附件
2017-10-28 10:17 上传
#include <Wire.h> void setup() { Wire.begin(); Serial.begin(115200); Serial.println("I2C Scanner"); } void loop() { uint8_t error, address, line = 1; int nDevices = 0; Serial.println(" 0 1 2 3 4 5 6 7 8 9 A B C D E F"); Serial.print ("00: "); // [url=https://learn.adafruit.com/i2c-addresses/the-list]https://learn.adafruit.com/i2c-addresses/the-list[/url] for (address = 0x03; address < 0x78; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { printHex(address); nDevices++; } else if (error == 4) Serial.print(" ER"); else Serial.print(" --"); if ((address + 1) % 16 == 0) { Serial.println(); Serial.print(line); Serial.print("0:"); line++; } } if (nDevices == 0) Serial.println("\nNo I2C devices found\n"); else { Serial.print("\nFound "); Serial.print(nDevices); Serial.println(" devices\n"); } delay(5000); // wait 5 seconds for next scan } void printHex(uint8_t address) { Serial.print(" "); if (address < 16) Serial.print("0"); Serial.print(address, HEX); }
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2 )
GMT+8, 2024-11-22 02:06 , Processed in 0.048344 second(s), 27 queries .
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.