Мы уже писали во введении к этой книге, что «на борту» микроконтроллера micro:bit имеется измеритель температуры. Физически он находится внутри процессора, и поэтому, строго говоря, измеряет не температуру окружающего воздуха, а температуру самого процессора.
Так как процессор micro:bit потребляет очень малую энергию, то в первом приближении можно считать, что его температура примерно соответствует температуре окружающей среды. Конечно, для более точных измерений не обойтись без специального внешнего термометра (и мы его подключим позже, когда займемся моделью марсохода BoxRover), но сейчас для нас будет вполне достаточно измерителя температуры, интегрированного в micro:bit.
Здесь, конечно, нас не будут интересовать ртутные или иные аналоговые градусники. Нам интересно узнать, как измеряется температура в электронных устройствах.
Для измерения температуры применятся так называемые терморезисторы. Терморезистор представляет собой полупроводниковый прибор, сопротивление которого зависит от температуры.
Зависимость эта нелинейная, однако можно выставить рабочую точку терморезистора так, что она попадет на линейный участок. В этом случае по изменению сопротивления терморезистора можно будет судить об изменении его температуры.
В простейшем случае можно подключить терморезистор к батарейке через миллиамперметр, и проследить за изменением проходящего тока при нагреве или охлаждении терморезистора (рис. 4.1).
Рис. 4.1. Включение терморезистора
Конечно, настоящие схемы измерения температуры совсем не такие, но для понимания принципа и этого будет достаточно.
Вы также можете контролировать изменение сопротивления терморезистора с помощью омметра или тестера, переключенного в режим измерения сопротивления.
Существуют два типа терморезисторов. Это термисторы и позисторы. Сопротивление термистора уменьшается при увеличении температуры, а позистора наоборот, увеличивается. Говорят, что термисторы обладают отрицательным температурным коэффициентом сопротивления (ТКС), а позисторы – положительным.
В интернете есть множество статей, посвященных терморезисторам, например, эта – https://elektrikexpert.ru/termorezistor.html. На данном этапе мы не будем углубляться в детали, т.к. для измерения температуры будем использовать готовые устройства, учитывающие все особенности, в частности, нелинейную зависимость сопротивления терморезистора от температуры.
Вы можете очень просто превратить свой микроконтроллер micro:bit в термометр. Достаточно использовать программу, показанную на рис. 4.2.
Рис. 4.2. Программа для измерения температуры процессора micro:bit
Эта программа находится в файле BoxRover/ch04/microbit-измеритель-температуры.hex.
Здесь мы добавили в блок постоянно блок показать число, предназначенный для вывода числа на экран микрокомпьютера, а также блок задержки на одну секунду. В качестве значения мы вставили из панели Ввод блок температура (°C). Этот блок возвращает значение температуры процессора micro:bit в градусах Цельсия.
Таким образом, на экран раз в секунду выводится текущее значение температуры в виде бегущей строки (рис. 4.3).
Рис. 4.3. На монитор micro:bit выводится текущая температура процессора
Как можно использовать встроенный измеритель температуры?
Например, с его помощью можно контролировать перегрев процессора микрокомпьютера. Если температура превысила максимально допустимое значение, можно предпринимать какие-либо действия.
Подготовим программу, которая при превышении температуры сверх заданного значение (30 °C) включает сразу все светодиоды экрана micro:bit. Если же температура нормальная, на экране будет нарисовано сердце (рис. 4.4).
Рис. 4.4. Программа контроля температуры
Программа сохранена в файле microbit-проверка-температуры.hex.
Здесь в палитре Переменные мы определили переменную с именем температура. При помощи блока задать мы задаем значение этой переменной, равной блоку температура (°С), добавленному из панели Ввод.
Когда срабатывает условие, что значение, записанное в переменную температура, превышает 30 °С, блок показать светодиоды включает на экране все светодиоды сразу.
Если же перегрева нет, то блок показать значок выводит на экран изображение сердца.
Попробуйте поместить плату micro:bit на пару минут в холодильник (только не в морозильную камеру), а также оставить на солнце. Посмотрите, как это скажется на результатах измерения температуры процессора.
Проследите, чтобы в ходе экспериментов с холодильником на плату micro:bit не попала влага.
Учтите, что значительны перегрев платы micro:bit, а также переохлаждение могут привести к выходу платы из строя. Согласно описанию https://tech.microbit.org/hardware/, датчик температуры в micro:bit работает в диапазоне от -25C до 75C, а его точность составляет ±4C.
В этой главе вы узнали, что в микроконтроллере micro:bit имеется встроенный измеритель температуры. И хотя он установлен непосредственно внутри микропроцессора и показывает его температуру, а не температуру окружающей среды, все равно он может принести определенную пользу. Например, вы можете обнаружить перегрев процессора, опасный для работы вашей модели марсохода BoxRover или модуля автоматизации умного дома.
Вы составили программу, которая показывает текущее значение температуры, а также программу контроля превышения заданного значения температуры.
В следующих главах книги вы научитесь подключать к micro:bit миниатюрную погодную станцию, способную показывать не только температуру окружающей среды, но и давление, влажность, а также температуру точки росы.