Использование термистора: пошаговое руководство для Arduino
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Термистор NTC 10K | 1 |
| Резистор 10 кОм | 1 |
| Arduino UNO | 1 |
| Перемычки | 1 |
| Макетная плата | 1 |
Программное обеспечение
- Arduino IDE
- Arduino Web Editor
О проекте
Насколько просто использовать термистор?
В этой статье я объясню, как работать с термистором. Во-первых, что это такое? Термистор — это резистор, сопротивление которого зависит от температуры. Существует два противоположных типа:
- PTC (Positive Temperature Coefficient) — сопротивление растёт при нагреве
- NTC (Negative Temperature Coefficient) — сопротивление падает при нагреве
В данном примере используется NTC.
Немного математики
Для расчёта сопротивления термистора используется уравнение с параметром B (только для NTC):
Где:
e— основание натурального логарифмаR0— сопротивление термистора при температуре T0B— постоянный коэффициент, зависящий от материала, в Кельвинах (указан в даташите)
Чтобы найти температуру, нужно узнать сопротивление RT по закону Ома.

Это схематичное представление цепи (делитель напряжения).
RT = VRT / (VR / R)
Теперь у нас есть все данные для расчёта температуры.
Важно: переводите все параметры (например T0) в Кельвины перед расчётами, результат тоже будет в Кельвинах.
Результат


Код (Arduino)
// Термометр с термистором
/* Параметры термистора (из даташита):
* RT0: 10 000 Ω
* B: 3977 K ± 0.75%
* T0: 25 °C
* ± 5%
*/
#define RT0 10000 // Ω
#define B 3977 // K
//--------------------------------------
#define VCC 5 // Напряжение питания
#define R 10000 // R = 10 кОм
// Переменные
float RT, VR, ln, TX, T0, VRT;
void setup() {
Serial.begin(9600);
T0 = 25 + 273.15; // T0 из даташита, перевод °C → Кельвины
}
void loop() {
VRT = analogRead(A0); // Чтение аналогового значения
VRT = (5.00 / 1023.00) * VRT; // Перевод в вольты
VR = VCC - VRT; // Напряжение на резисторе
RT = VRT / (VR / R); // Сопротивление термистора
ln = log(RT / RT0); // Натуральный логарифм
TX = (1 / ((ln / B) + (1 / T0))); // Температура в Кельвинах
TX = TX - 273.15; // Перевод в Цельсии
Serial.print("Temperature:");
Serial.print("\t");
Serial.print(TX);
Serial.print("C\t\t");
Serial.print(TX + 273.15); // Кельвины
Serial.print("K\t\t");
Serial.print((TX * 1.8) + 32); // Фаренгейты
Serial.println("F");
delay(500);
}
Схемы


Производственный процесс
- Как молибден формирует современную промышленность: применение, преимущества и динамика поставок
- Использование Azure DevOps: проверенные практики для ускоренной доставки
- Использование нечистых функций в VHDL: повышение читаемости и поддерживаемости FSM
- Освоение функций VHDL: практическое руководство по эффективному дизайну
- Использование процедур в VHDL: упростите свой дизайн с повторно используемым кодом
- Освоение циклов While в VHDL: динамическое управление итерациями
- Освоение циклов For в VHDL: практическое руководство
- Измерение качества воздуха с OpenSensors: руководство по Arduino и Python
- Навигация по нашему сайту: полное руководство по добавлению, покупке и скачиванию DXF файлов
- Освоение техник шлифовального станка для режущих инструментов: практическое руководство