你能帮我做以下几件事吗?:我是初学者,有一个Arduino Nano RP2040连接和四个AM2320温度传感器,但每个都有相同的地址,是不能更改的(这个项目是为我的毕业考试而设计的)。我得到了一个信息,它可以“以软件的方式”创建更多的I2C总线,通过使用4种功能(一个开始,一个停止,一个可以传输比特,一个可以读取一点)。这样,任何数字引脚都可以编程为SDA/SCL。有人告诉我,有一个名为“SoftwareWire”的库,但我不能真正理解它的命令,它是继其他命令之后出现的。有什么关于这个的事吗?
在搜索“软件方式”时,发现有这样的程序库,但无法处理命令。
发布于 2022-11-02 01:45:06
嗨,我会把一个功能传递给你,这个函数适用于我,有3个i2c感应器,sh21有相同的入口。
#include <Wire.h>
#include "SHT2x.h"
uint32_t start;
uint32_t stop;
SHT2x sht;
float tempN1;
float humN1;
float dwn1;
float tempN2;
float humN2;
float dwn2;
float tempN3;
float humN3;
float dwn3;
int flip = 0;
void sht21read(){
if (flip == 0)
{
Wire.begin(21, 22); // 2
delay(100);
// myHTU21D.begin();
sht.begin(21, 22);
start = micros();
sht.read();
stop = micros();
delay(250);
tempN1 = sht.getTemperature();
humN1 = sht.getHumidity();
// dwn1 = SHT2x.GetDewPoint();
delay(250);
Wire.end();
flip = 1;
}
else if (flip == 1)
{
Wire.begin(32, 22); // 4
delay(100);
// myHTU21D.be sht.begin();gin();
sht.begin(32, 22);
start = micros();
sht.read();
stop = micros();
delay(250);
tempN2 = sht.getTemperature();
humN2 = sht.getHumidity();
// dwn2 = SHT2x.GetDewPoint();
delay(250);
Wire.end();
flip = 2;
}
else if (flip == 2)
{
Wire.begin(27, 22); // 13
delay(100);
// myHTU21D.begin();
sht.begin(27, 22);
start = micros();
sht.read();
stop = micros();
delay(250);
tempN3 = sht.getTemperature();
humN3 = sht.getHumidity();
// dwn3 = SHT2x.GetDewPoint();
delay(250);
Wire.end();
flip = 3;
}
else if (flip == 3)
{
flip = 0;
Serial.print("TEMPERATURA N1= ");
Serial.print(tempN1);
Serial.print("");
Serial.print("HUMEDAD N1= ");
Serial.print(humN1);
Serial.print("");
Serial.print("||||");
Serial.print("TEMPERATURA N2= ");
Serial.print(tempN2);
Serial.print("");
Serial.print("HUMEDAD N2= ");
Serial.print(humN2);
Serial.print("");
Serial.print("||||");
Serial.print("TEMPERATURA N3= ");
Serial.print(tempN3);
Serial.print("");
Serial.print("HUMEDAD N3= ");
Serial.print(humN3);
Serial.println("");
delay(5000);
}
}然后在void循环和uala上运行函数sht21read();(或使用自己的名称)。
https://stackoverflow.com/questions/74207696
复制相似问题