Температура с помощью термистора
Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 20 из 24.
Термистор — это резистор, сопротивление которого меняется в зависимости от температуры. На этом модуле (типа NTC) напряжение на выводе OUT падает при нагревании: analogRead() показывает примерно 512 при 25 градусах C.
Показания меняются нелинейно, поэтому map() не подойдёт. Бета-уравнение преобразует их в градусы. BETA берётся из технической документации компонента (здесь 3950), а log() — это математическая функция, встроенная в плату. Вам не нужно разбираться в математике: просто скопируйте строку как есть.
const float BETA = 3950;
float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;Оставьте .0 в 1023.0. Вычисление 1023 / reading с двумя целыми числами отбрасывает дробную часть, и результат получается неверным на много градусов.
Задание
СреднеМодуль термистора подключён к A0. Выведите температуру:
- переведите показание в градусы Цельсия с помощью бета-уравнения
- выводите её с помощью
Serial.println()два раза в секунду
Нажмите Run, измените температуру на плате, затем нажмите Check.
Попробуйте сами
const float BETA = 3950; // бета-коэффициент термистора
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// преобразуй показание в градусы C и выведи его
delay(500);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Дисплеи и датчики
Потренируйтесь самостоятельно: Песочница Arduino