#include <Wire.h> #include "gw_grayscale_sensor.h" // SDA : A4 // SCL : A5 #define GW_GRAY_ADDR GW_GRAY_ADDR_DEF // 使用默认地址 void setup() { // 初始化I2C Wire.begin(); // 初始化串口 Serial.begin(115200); } void loop() { uint8_t sensor_4, sensor_5; uint8_t ping_rep = 0; // 循环 直到PING成功 while (ping_rep != GW_GRAY_PING_OK) { Wire.beginTransmission(GW_GRAY_ADDR); Wire.write(GW_GRAY_PING); Wire.endTransmission(); Wire.requestFrom(GW_GRAY_ADDR, 1); ping_rep = Wire.read(); delay(10); } /* ping 成功 */ /* 打开模拟数据选择模式 */ Wire.beginTransmission(GW_GRAY_ADDR); Wire.write(GW_GRAY_ANALOG_CHANNEL_ENABLE); /* 只要中间2个探头数据(4,5号) */ Wire.write(0b00011000); // 也可以写成 // Wire.write(GW_GRAY_ANALOG_CH_EN_4 | GW_GRAY_ANALOG_CH_EN_5); Wire.endTransmission(); /* 打开模拟数据模式 */ Wire.beginTransmission(GW_GRAY_ADDR); Wire.write(GW_GRAY_ANALOG_MODE); Wire.endTransmission(); while (1) { Wire.requestFrom(GW_GRAY_ADDR, 2); sensor_4 = Wire.read(); sensor_5 = Wire.read(); Serial.print(sensor_4); Serial.print(" "); Serial.print(sensor_5); Serial.print("\n"); delay(100); } }