由网络教程修改而来,着重以字符串为条件判断依据。
主机:
//I2C主机
#include <Wire.h>
#define LED 13
//初始化
void setup()
{
Wire.begin(); //主机
pinMode(LED,OUTPUT);
Serial.begin(115200);
}
//主程序
void loop()
{
Wire.beginTransmission(4); //发送数据到设备号为4的从机
Wire.write("OFF"); // 发送字符串
Wire.endTransmission(); // 停止发送
request(); //回复状态
delay(1000);
Wire.beginTransmission(4);
Wire.write("ON");
Wire.endTransmission();
request();
delay(1000);
}
void request()
{
delay(10);
Wire.requestFrom(4, 2); //通知4号从机上传2个字节
String c;
while(Wire.available()>0) // 当主机接收到从机数据时
{
c += char(Wire.read());
}
Serial.print(c);
if(c=="OK"){digitalWrite(LED,HIGH);}
else {digitalWrite(LED,LOW);}
}
从机:
//I2C从机
#include <Wire.h>
#define LED 13
bool LED_ST