我目前正在尝试(几个小时)在我的Adafruit LEDBackpack上显示来自LEDBackpack的温度。但是,当我尝试在设置 (matrix.begin(0x070))中插入显示时,传感器返回的温度总是-127。
你能帮我理解一下我做错了什么吗?
用例
组件:
代码
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Bridge.h>
#include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc.
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
#define ONE_WIRE_BUS 2
#define TEMP_DELAY 2000 // Request temp every two seconds
Adafruit_7segment matrix = Adafruit_7segment();
unsigned long time, lastTempCheck = 0;
float temp = 0;
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
matrix.begin(0x70); // If I comment this and do not use the matrix, the temperature is correct.
}
void loop(void)
{
time = millis();
if((time - lastTempCheck) > TEMP_DELAY){
lastTempCheck = time;
processTemp();
}else {
matrix.print(100);
matrix.writeDisplay();
}
}
void processTemp(void){
sensors.requestTemperatures(); // Send the command to get temperatures
temp = sensors.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.println(temp);
}模式

发布于 2014-12-10 12:44:34
尝试给每个组件自己的电源(即LED - 3V和传感器- 5v)。每个引脚只能输出如此多的功率来阻止对板的损坏。LED可能从传感器中提取功率,传感器可能没有足够的功率来正确工作。
发布于 2016-10-20 18:34:39
你的电路图显示了在DS18B20的(+)和(-)引脚(腿)上的一个短圆圈,那是在电阻下面的短水平导线。值-127.0表示您的温度传感器也有问题.
因此,如果这是一个实际的问题(不仅仅是图表中的问题),请移除电线来修复它。此外,在安装程序()中,您可能希望在循环之前添加某种类型的检查,以确定传感器是否为A:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // Arduino pin D2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
setup()
{
Serial.begin(115200);
Serial.println("setup() runs ...");
sensors.begin();
if (sensors.getDeviceCount() < 1)
{
Serial.println("DS18B20 Error - No sensors found");
}
}
// ... rest of codehttps://stackoverflow.com/questions/27204157
复制相似问题