三个温度传感器 DS18B20 连接到引脚 D7。传感器的电源通过 Arduino 板的 GND 和 +5V 引脚供电。因此,传感器以正常模式使用,而不是寄生虫模式。
下面的代码用于获取温度数据,在 Arduino Yun 和 Arduino Mega 2560 上完美运行。
#include <OneWire.h>
#include <DallasTemperature.h>
// DS18B20 Sensors at D7 (Mega 2560)
OneWire bus(7);
DallasTemperature sensors(&bus);
void setup() {
Serial.begin(9600);
}
void loop() {
// Start the temperature measurement on all sensors and wait for it
sensors.requestTemperatures();
// Make string for assembling the data to Serial log
String dataString = "";
int index = 0;
DeviceAddress addr;
while(sensors.getAddress(addr, index)) {
// Read and show the result
dataString += String(index);
dataString += " = ";
dataString += String(sensors.getTempC(addr));
dataString += " ";
// Next index
index++;
}
// Print the data log
Serial.println(dataString);
// Wait one second before reading the next values
delay(1000);
}
不幸的是,当在 Arduino Giga 上使用相同的代码时,一切都很顺利,直到将代码上传到 Arduino Giga 之后。 MbedOS 明显立即崩溃,因为板载 LED 闪烁红色,如 here 所述。所有接线与 Arduino Mega 2560 和 Arduino Yun 相同。除了用于传感器的引脚(GND、+5V 和 D7)之外,没有其他引脚用于此测试。 仅供参考:我需要 Arduino Giga,因为我需要很多用于其他传感器的引脚和内置 WiFi。
我按照指示去做。按一次 RST 按钮没有帮助,指示灯立即开始再次闪烁红色。 按两次 RST 按钮可以将相同或不同的代码上传到 Arduino Giga,但不能解决问题。
有人可以解释为什么这发生在 Arduino Giga 而不是 Arduino Mega 2560 和 Arduino Yun 上吗?在 Arduino Giga 上使用 DS18B20 的解决方案是什么?
谢谢!
由于新处理器,库不兼容。使用 microDS18B20 库。这在 Giga R1 上对我有用。
你可以在github上找到它(我不知道我是否可以在这里发布链接)