Почему мои показания на датчике температуры такие высокие? - PullRequest
1 голос
/ 06 июня 2019

Мы пытаемся проверить показания простого температурного зонда 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();

Теоретически наши результаты должны читать о температуре вещества, которое мы тестируем, но результаты бессмысленны и не имеют смысла, так как они каждый раз считывают только отрицательное число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...