Оглавление:
Видео: Датчик температуры DIY с использованием одного диода: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Так как одним из фактов о PN-переходах является то, что их прямое падение напряжения изменяется в зависимости от проходящего тока и температуры перехода, мы собираемся использовать это, чтобы сделать простой дешевый датчик температуры.
Эта установка обычно используется во многих интегральных схемах для измерения внутренней температуры и многих датчиков температуры, таких как знаменитый LM35, который основан на этом свойстве.
Просто прямое падение напряжения на диоде (который представляет собой одиночный PN-переход) изменяется по мере изменения величины проходящего через него тока, а также при изменении температуры диода, падение напряжения будет меняться (при повышении температуры прямое падение уменьшается на величину (от 1,0 до 2,0 милливольт для кремниевых диодов и 2,5 милливольт для германиевых диодов).
Таким образом, пропуская постоянный ток через диод, прямое падение напряжения теперь должно изменяться только в зависимости от температуры диода. Теперь нам просто нужно измерить прямое напряжение диода, применить несколько простых уравнений и вуаля вот и ваш датчик температуры !!!
Запасы
1 - диод 1n4007 # 12 - резистор 1 кОм # 13 - плата Arduino
Шаг 1: Принципиальная схема
Как видно на схеме, это очень просто. подключив диод последовательно с токоограничивающим резистором и стабильным источником напряжения, мы можем получить грубый источник постоянного тока, поэтому измеренное напряжение на диоде будет изменяться только из-за изменения температуры. слишком низкий, чтобы через диод проходит большой ток и вызывает заметный самонагрев в диоде, а также не очень высокий резистор, поэтому проходящего тока недостаточно для поддержания линейной зависимости между прямым напряжением и температурой.
резистор 1 кОм с питанием 5 В должен давать ток диода 4 мА, что является достаточным значением для этой цели. I (диод) = VCC / (Rseries + Rdiode)
Шаг 2: кодирование
Нам нужно иметь в виду, что есть некоторые значения, которые нужно настроить в коде, чтобы получить лучшие результаты, например:
1 - VCC_Voltage: поскольку значение analogRead () зависит от VCC микросхемы ATmega, нам нужно добавить его в уравнение после измерения на плате Arduino.
2 - V_OLD_0_C: прямое падение напряжения используемого диода при токе 4 мА и температуре 0 Цельсия
3 - Temperature_Coefficient: температурный градиент вашего диода (лучше получить из таблицы данных), или вы можете измерить его, используя следующее уравнение: Vnew - Vold = K (Tnew - Told)
куда:
Vnew = вновь измеренное падение напряжения после нагрева диода
Vold = измеренное падение напряжения при некоторой комнатной температуре
Tnew = температура, при которой диод был нагрет до
Told = старая комнатная температура, при которой был измерен Вольд.
K = Temperature_Coefficient (отрицательное значение, варьирующееся от -1,0 до -2,5 милливольт). Наконец, теперь вы можете загрузить код и получить результаты измерения температуры.
#define Sens_Pin A0 // PA0 для платы STM32F103C8
двойной V_OLD_0_C = 690.0; // Прямое напряжение 690 мВ при 0 Цельсия при испытательном токе 4 мА
двойной V_NEW = 0; // Новое прямое напряжение при комнатной температуре и испытательном токе 4 мА double Temperature = 0.0; // Расчетная температура помещения double Temperature_Coefficient = -1.6; // изменение на -1,6 мВ на градус Цельсия (-2,5 для германиевых диодов), лучше брать из даташита диода double VCC_Voltage = 5010.0; // Напряжение на шине 5V Arduino в милливольтах (требуется для большей точности) (3300.0 для stm32)
void setup () {
// поместите сюда свой установочный код для однократного запуска: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }
void loop () {
// поместите сюда ваш основной код для повторного запуска: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // делим на 4,0, если вы используете 12-битный АЦП Temperature = ((V_NEW - V_OLD_0_C) / Temperature_Coefficient);
Serial.print ("Temp =");
Serial.print (Температура); Serial.println ("C");
задержка (500);
}
Шаг 3. Получение лучших ценностей
Я думаю, что при выполнении этого проекта желательно иметь рядом с собой надежное устройство для измерения температуры.
вы можете видеть, что есть заметная ошибка в показаниях, которая может доходить до 3 или 4 градусов по Цельсию, так откуда эта ошибка?
1 - вам может потребоваться настроить переменные, упомянутые на предыдущем шаге
2 - разрешение АЦП Arduino ниже, чем то, что нам нужно, чтобы обнаружить небольшую разницу напряжений
3 - опорное напряжение Arduino (5 В) слишком высокое для этого небольшого изменения напряжения на диоде
Поэтому, если вы собираетесь использовать эту настройку в качестве датчика температуры, вы должны знать, что, хотя это дешево и удобно, оно неточно, но может дать вам очень хорошее представление о температуре вашей системы, если она включена. Печатная плата или установка на работающий двигатель и т. Д.
Эта инструкция предназначена для использования как можно меньшего количества компонентов, но если вы хотите получить наиболее точные результаты от этой идеи, вы можете внести некоторые изменения:
1 - добавьте несколько каскадов усиления и фильтрации, используя операционные усилители, как в этой ссылке 2 - используйте нижний внутренний аналоговый опорный контроллер, как платы STM32F103C8 с аналоговым опорным напряжением 3,3 В (см. Пункт 4) 3 - используйте внутреннее аналоговое опорное напряжение 1,1 В в arduino, но имейте в виду, что вы не можете подключить более 1,1 вольт к любому из аналоговых контактов arduino.
вы можете добавить эту строку в функцию настройки:
analogReference (ВНУТРЕННИЙ);
4 - Используйте микроконтроллер с АЦП с более высоким разрешением, например STM32F103C8, который имеет 12-битное разрешение АЦП Итак, в двух словах, эта установка на основе Arduino может дать хороший обзор температуры вашей системы, но не очень точные результаты (приблизительно 4,88 мВ / показание)
установка STM32F103C8 даст вам довольно точный результат, поскольку он имеет более высокий 12-битный АЦП и более низкое аналоговое опорное значение 3,3 В (приблизительно 0,8 мВ / показание)
Ну вот и все !!: D
Рекомендуемые:
Датчик температуры TMP36 и ЖК-дисплей с использованием Arduino (Tinkercad): 7 шагов
Датчик температуры и ЖК-дисплей TMP36 с использованием Arduino (Tinkercad): Всем привет! Мы - студенты Университета Тун Хусейн Онн Малайзия (UTHM), выполняющие проект, демонстрирующий, как мы можем моделировать датчик температуры, ЖК-дисплей и Arduino с помощью Tinkercad в рамках нашей учебной программы для UQD0801 (Robocon 1) (
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: 7 шагов
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: я сделал этот датчик для своего любимого Çipitak. Автомобиль fiat 126 с 2-цилиндровым двигателем с воздушным охлаждением под задним капотом. У ipitak нет датчика температуры, показывающего, насколько горячий двигатель, поэтому я подумал, что датчик будет полезен. Также хотел, чтобы датчик был проводным
Датчик пожара на основе ПИН-диода: 4 шага
Датчик пожара на основе PIN-диода: вот датчик пожара на основе PIN-диода, который активирует тревогу при обнаружении пожара. Пожарная сигнализация на основе термистора имеет недостаток; сигнализация включается только в том случае, если огонь нагревает термистор в непосредственной близости. В этой схеме чувствительный PIN-диод u
Датчик температуры с использованием термистора с Arduino Uno: 4 шага
Датчик температуры с использованием термистора с Arduino Uno: Привет, ребята, в этой инструкции мы узнаем, как использовать термистор с Arduino. Термистор - это, по сути, резистор, сопротивление которого меняется в зависимости от температуры, поэтому мы можем считывать его сопротивление и получать от него температуру & Термистор i
Датчик температуры Arduino с использованием LM35: 3 шага
Датчик температуры Arduino с использованием LM35: Введение Серия LM35 представляет собой прецизионные температурные устройства на интегральных схемах с выходным напряжением, линейно пропорциональным температуре по Цельсию. LM35 - трехконтактный линейный датчик температуры от National Semiconductors. Он может измерить