Мы пытаемся проверить показания простого температурного зонда DS18B20. Показания идут, но все они выходят на -127,0 градусов. Мы не уверены, куда идти отсюда. Контакт расположен в цифровом контакте 8, потому что он производит лучшие числа и точки данных для проекта. Невозможно переместить его в аналог из-за нехватки пинов. Также мы используем Arduino Nano в качестве нашего силового дома.
Мы попытались добавить в строку temp, так как это требуется для завершения кода, добавив float temp, но, похоже, это не сработало со строкой temp. Мы попробовали каждый из них вместе, и оба они по отдельности, и те, кажется, все еще не решают проблему под рукой.
#define ONE_WIRE_BUS 8 // Temperature sensor pin
#define MOSI 11 // SD
#define MISO 12
#define SCK 13
#define CS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float temp = 0.0;
String time_str = "";
String data_str = "";
//String temp = "";
int temperature = 0;
digitalWrite(HBRIDGE, LOW); // turn the LED off by making the voltage LOW
digitalWrite(13, LOW); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
buckVoltage = analogRead(BUCK_IN);
hbridgeVoltage = analogRead(HBRIDGE_IN);
negativeData = hbridgeVoltage - buckVoltage;
Serial.println(negativeData);
delay(500);
sensors.requestTemperatures();
temp = sensors.getTempCByIndex(0);
DateTime c = rtc.now();
String seconds = "";
if (c.second() < 10) {
seconds = '0' + c.second();
}
else {
seconds = c.second();
}
time_str = String(c.month()) + '/' + String(c.day()) + "/" +
String(c.year()) + "," +
String(c.hour()) + ":" + String(c.minute()) + ":" +
seconds;
data_str = String(temp) + ',' + String(positiveData) + ',' +
String(negativeData);
Serial.println(time_str + ',' + data_str);
f.println(time_str + ',' + data_str);
f.close();
Теоретически наши результаты должны читать о температуре вещества, которое мы тестируем, но результаты бессмысленны и не имеют смысла, так как они каждый раз считывают только отрицательное число.