Почему мой 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);
}

Это очень простая программа и очень простая схема, поэтому я не уверен, что происходит. Возможно, проблема в самом датчике. Я также пробовал этот датчик с несколькими другими схемами и программами, и происходит то же самое.

Если кто-то что-то знает об этом, помощь была бы очень кстати.

, 👍6

Обсуждение

Можете ли вы подключить вольтметр к 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


2 ответа


1

Похоже, что деталь сломана; напряжение необычно высокое.

,

1

Я часто использую делители напряжения и уже видел это раньше.

В каждом случае, когда ВСЕ мои показания высоки, но при этом они предсказуемо изменяются (как на моих солнечных панелях — они растут днем и падают ночью), всегда доказывалось, что существует очень простая, единственная причина.

Сопротивление заземляющего провода.

Например, если он вставлен в отверстие на макетной плате, которое не держит его должным образом, или если я удлинил его и по пути есть соединения.

Поэтому это было бы первым, на что я бы обратил внимание.


С учетом вышесказанного, если показания очень высокие и НЕ изменяются предсказуемым образом, я бы поискал отсоединенный заземляющий провод.


Если все соединения в порядке, но он все равно работает неправильно, я бы заменил его на другой, чтобы убедиться, что проблема не в самой детали.

,