Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp32 [2020/05/21 13:29] – labuser29 | products:laboratory_iot:exp32 [2021/05/23 13:59] (текущий) – [Эксперимент 32. Преобразование сигнала терморезистора] labuser29 | ||
---|---|---|---|
Строка 15: | Строка 15: | ||
{{ : | {{ : | ||
- | Теперь разберемся что есть что. Напряжение на выходе делителя мы получаем от АЦП и записываем его, например, | + | Теперь разберемся что есть что. Напряжение на выходе делителя мы получаем от АЦП и записываем его, например, |
{{ : | {{ : | ||
Строка 30: | Строка 30: | ||
Для этой зависимости нам надо знать To (этот параметр для комнатной температуры (25 °C) = 298.15 K), B (для нашего терморезистора равен 3950 - коэффициент, | Для этой зависимости нам надо знать To (этот параметр для комнатной температуры (25 °C) = 298.15 K), B (для нашего терморезистора равен 3950 - коэффициент, | ||
+ | |||
+ | ==== Схема эксперимента ==== | ||
+ | Оставляем схему собранную на прошлом эксперименте. | ||
+ | {{ : | ||
+ | // | ||
+ | |||
+ | {{ : | ||
+ | // | ||
+ | |||
+ | ==== Программный код эксперимента ==== | ||
+ | <file python Exp32.py[enable_line_numbers=" | ||
+ | from machine import Pin | ||
+ | import time | ||
+ | import math | ||
+ | _init() | ||
+ | |||
+ | Bcoef = 3950 | ||
+ | R1 = 10000 | ||
+ | Rtnom = 10000 | ||
+ | T0 = 273.15 | ||
+ | |||
+ | adc = machine.ADC(0) | ||
+ | |||
+ | while True: | ||
+ | value = adc.read() | ||
+ | |||
+ | R2 = (-R1 * value)/ | ||
+ | |||
+ | temp = 1 / (math.log(R2 / Rtnom) / Bcoef + 1/(25+T0)) -T0 | ||
+ | |||
+ | print(temp) | ||
+ | time.sleep(1) | ||
+ | </ | ||
+ | |||
+ | Теперь программа в терминал печатает температуру в градусах по Цельсию. Ты можешь измерить температуру окружающей среды, собственного тела, воды и даже почвы в цветочном горшке. Терморезистор в водонепроницаемом нержавеющем корпусе все это легко переживет. | ||
+ |