|
|
我用了2块arduino 一块做主机 一块做从机,从机上连接了6个FSR406传感器,想通过i2c方式传给主机
但主机接受到的信号只有从机里6个FSR406中一个,如何更改能达到全部都接收,请帮帮忙看看,现在我把主机和从机的程序都写上。
连线大致是这个样子
这个是主机的:
#include <Wire.h>
char c[7];
void setup()
{
Serial.begin(9600);
Wire.begin();
delay(1000);
}
void loop()
{
Wire.requestFrom(2, 7);
while(Wire.available())
{
for(int i=0;i<7;i++){
c = Wire.read();
}
c[7] = '\0';
Serial.println(c);
}
delay(500);
}
这个是从机的
#include <Wire.h>
int i =0;
int a =0;
int b =0;
int c =0;
int d =0;
int e =0;
int f =0;
void setup()
{
Serial.begin(9600);
Wire.begin(2);
Wire.onRequest(requestEvent);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
}
void loop()
{
delay(100);
}
void requestEvent()
{
a = analogRead(A0);
Serial.print(A0);
Serial.print(",");
if (a > 500){
Wire.write("S1_A0=0");
}
else{
Wire.write("S1_A0=1");
}
b = analogRead(A1);
Serial.print(A1);
Serial.print(",");
if (b > 500){
Wire.write("S1_A1=0");
}
else{
Wire.write("S1_A1=1");
}
c = digitalRead(2);
Serial.print(c);
Serial.print(",");
if (c == 1){
Wire.write("S1_D2=0");
}
else{
Wire.write("S1_D2=1");
}
d = digitalRead(3);
Serial.print(d);
Serial.println(",");
if (d == 1){
Wire.write("S1_D3=0");
}
else{
Wire.write("S1_D3=1");
e = digitalRead(4);
Serial.print(d);
Serial.println(",");
if (e == 1){
Wire.write("S1_D4=0");
}
else{
Wire.write("S1_D4=1");
}
f = digitalRead(5);
Serial.print(d);
Serial.println(",");
if (f == 1){
Wire.write("S1_D5=0");
}
else{
Wire.write("S1_D5=1");
}
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|