DS18B20 的温度读数适用于 Arduino Yun 和 Mega 2560,但不适用于 Arduino Giga

问题描述 投票:0回答:1

三个温度传感器 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 的解决方案是什么?

谢谢!

arduino
1个回答
0
投票

由于新处理器,库不兼容。使用 microDS18B20 库。这在 Giga R1 上对我有用。

你可以在github上找到它(我不知道我是否可以在这里发布链接)

© www.soinside.com 2019 - 2024. All rights reserved.