Почему мой TMP35 выдает странные значения?
TMP35/36/37 выдает очень высокие показания напряжения, что приводит к высоким показаниям температуры. Последовательный монитор выглядит так:
Как вы видите, значение датчика составляет 900, напряжение почти 5, а температура составляет 400. Схема очень проста, просто TMP подключен к 5 В и земле и контакту A0. Вот мой код:
const int sensorPin = A0;
const float baselineTemp = 20.0;
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorVal = analogRead(sensorPin);
Serial.print("Sensor value: ");
Serial.print(sensorVal);
float voltage = (sensorVal / 1024.0) * 5.0;
Serial.print(", volts: ");
Serial.print(voltage);
Serial.print(", degrees C: ");
float temperature = (voltage - .5) * 100;
Serial.println(temperature);
delay(1000);
}
Это очень простая программа и очень простая схема, поэтому я не уверен, что происходит. Возможно, проблема в самом датчике. Я также пробовал этот датчик с несколькими другими схемами и программами, и происходит то же самое.
Если кто-то что-то знает об этом, помощь была бы очень кстати.
@MICROexchange6, 👍6
Обсуждение2 ответа
Я часто использую делители напряжения и уже видел это раньше.
В каждом случае, когда ВСЕ мои показания высоки, но при этом они предсказуемо изменяются (как на моих солнечных панелях — они растут днем и падают ночью), всегда доказывалось, что существует очень простая, единственная причина.
Сопротивление заземляющего провода.
Например, если он вставлен в отверстие на макетной плате, которое не держит его должным образом, или если я удлинил его и по пути есть соединения.
Поэтому это было бы первым, на что я бы обратил внимание.
С учетом вышесказанного, если показания очень высокие и НЕ изменяются предсказуемым образом, я бы поискал отсоединенный заземляющий провод.
Если все соединения в порядке, но он все равно работает неправильно, я бы заменил его на другой, чтобы убедиться, что проблема не в самой детали.
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- BMP280 возвращает 0
- Нужен усилитель сигнала датчика качества воздуха MQ135? Датчик более высокого качества?
- Датчик DHT11: режим ожидания или выключение?
- Проблема с подключением датчика сердцебиения и температуры на arduino uno, но работает по отдельности
- Проблема с условием if
- DHT20 и дисплей Oled не работают вместе
- Используйте маломощный Arduino с солнечной панелью
Можете ли вы подключить вольтметр к Vout TMP? Если напряжение действительно такое высокое, то да, у вас сломанная деталь. Попробуйте другой датчик TMP. Это нужно, чтобы просто исключить ардуино., @krol
Когда я подключаю вольтметр к TMP, он показывает 5 В. Значит, дело в детали., @MICROexchange6
Да, должно быть, как-то повредился. Просто ради полноты вы можете: 1. дважды проверить вашу схему, 2. дважды проверить ориентацию TMP (я подключал их наоборот раньше), 3. дважды проверить напряжение питания и убедиться, что оно находится между 2,7 В и 5,5 В (согласно техническому описанию). Но, вы, вероятно, уже сделали это. Я просто подумал, что должен упомянуть об этом на всякий случай., @krol
Спасибо за комментарий, но да, я проверил все это несколько раз. Жаль, что в стартовом наборе дают только один TMP., @MICROexchange6
Просто интересно: откуда взялось
- .5
втемпература плавающего элемента = (напряжение - .5) * 100;
? TMP35 выдает 10 мВ/градус Цельсия, при этом 0 В при 0 градусах Цельсия. (Не то чтобы это помогло, если это ошибка кодирования; это заставило бы ваши результаты выглядеть на 50 градусов Цельсия выше.), @JRobert