#12 Эксперимент “Комнатный термометр”
В наше время уже никого не удивишь электронными термометрами, которые используются как в быту так и на производстве для быстрого и точного получения значений температуры окружающей среды и различных объектов. Датчики температуры лишены многих недостатков, которые были присущи “аналоговым” термометрам. Они не требуют длительного времени для замера показаний температуры, обладают больше точностью и не такие хрупкие, как привычные нам жидкостные “градусники”. На данный момент, самыми распространёнными и дешёвыми температурными датчиками являются:
- термопреобразователи сопротивления (терморезисторы) – полупроводниковые датчики, которые могут изменять своё сопротивление при повышении или понижении температуры;
- термоэлектрические преобразователи (термопары) – датчики, представляющие собой пару разнородны проводников, спаянных между собой. В случае, если проводники будут иметь разную температуру, в месте их контакта появится электрический ток, зафиксировав который, можно найти и температуру данной термопары.
Температурный датчик LM35, с которым мы будем работать, представляет собой термопреобразователь сопротивления, т.е. терморезистор, который может изменять своё сопротивление в зависимости от температуры среды, в которую он помещён. Датчик собран в монолитном корпусе и имеет 3 контакта – (-), (+) и (сигнал). При подаче на датчик опорного напряжения (например 5 В), на сигнальном проводе появляется напряжение, величина которого зависит от температуры самого датчика. Чем выше будет температура, тем ниже будет сопротивление датчика, и тем большее напряжение будет на его сигнальном контакте.
Используя этот датчик, мы соберём простой комнатный термометр. Он будет фиксировать внешнюю температуру в диапазоне [16 … 28 ºC] и с помощью светодиодных индикаторов, отображать её текущее значение с точностью до 2 ºC.
Перед выполнением эксперимента прочтите:
СБОРКА УСТРОЙСТВА НА МАКЕТНОЙ ПЛАТЕ
Нам понадобятся следующие компоненты:
- Arduino Uno;
- USB-кабель для подключения к компьютеру;
- Беспаечная макетная плата;
- 7 светодиодов (3 зелёных, 3 жёлтых и 1 красный);
- 7 резисторов, номиналом 220 Ом;
- 1 датчик температуры LM35;
- 12 соединительных проводов разных цветов.
Соберите устройство по следующей схеме:
Схема устройства на макетной плате |
Принципиальная схема устройства |
Обратите внимание:
- при подключении датчика температуры, очень важно соблюдать его распиновку, так как в случае неправильного подключения, он может сгореть! Датчик подключается по следующей схеме: крайний левый контакт – +5 В, средний – сигнал (A0), крайний правый – земля;
- при подключении светодиодов, задействованы цифровые пины 2-8, при этом, последовательно каждому светодиоду подключён токоограничительный резистор, номиналом 220 Ом;
- правильно подключённый датчик не должен греться, если ваш датчик после подключения существенно нагревается – проверьте правильность его подключения!
ПРОГРАММИРОВАНИЕ
Для того, чтобы получить значение температуры окружающей среды, необходимо снять сигнал с пина датчика и домножить его на коэффициент 0,48828125. Давайте попробуем получить значение температуры с датчика LM35 и отправить их в последовательный порт компьютера.
Запустите Arduino IDE, выберите [Инструменты] ⇒ [ArduBlock] и составьте алгоритм:
Для преобразования значений, полученных с датчика в значения температуры, мы домножили эти значения на коэффициент и поместили полученный результат в переменную Temp. Обратите внимание, для хранения таких – “дробных” данных, нам необходима десятичная переменная. Далее, мы выводим значение переменной в последовательный порт с задержкой в 1 секунду.
Откройте [Монитор последовательного порта] и понаблюдайте за работой программы. В ходе наблюдения, вы можете поднести к датчику тёплые или холодные предметы и проследить – как изменяются значения температуры, отправленные в последовательный порт:
Как видите, получить данные с датчика достаточно легко.
Теперь, давайте сделаем наш датчик автономным. Для индикации температуры нам понадобятся 7 светодиодов различных цветов. Сейчас, мы создадим алгоритм, который будет зажигать светодиоды нашей самодельной шкалы, в зависимости от температуры окружающей среды. Принцип работы программы будет очень простым:
- если значение переменной [Temp] > 16, то зажигается 1-й светодиод, в противном случае – светодиод гаснет;
- если значение переменной [Temp] > 18, то зажигается 2-й светодиод, в противном случае – светодиод гаснет;
- … ;
- если значение переменной [Temp] > 28, то зажигается 7-й светодиод, в противном случае – светодиод гаснет;
При желании можно использовать и большее количество светодиодов. Для нашей шкалы, алгоритм будет выглядеть следующим образом:
Загрузите программу в Arduino и понаблюдайте за её работой. При этом, вы можете отключить Arduino от USB-порта вашего компьютера и подключить внешнее питание:
Подключить внешний источник питания можно двумя способами:
- с помощью “штекера” питания;
- подключив (-) источника к пину GND, а (+) к пину Vcc Arduino.
Теперь у вас есть собственный цифровой индикатор температуры.
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ
Задание 1:
Добавьте в схему устройства ещё 3 светодиода и расширьте диапазон температуры, отображаемой устройством до диапазона [14 … 32 ºC].
Задание 2:
Добавьте в схему устройства пьезодинамик и измените алгоритм его работы таким образом, чтобы при достижении температуры в 32 ºC, пьезодинамик издавал прерывистые звуки.
Задание 3*:
Создайте прототип термостата – устройства, которое может регулировать температуру в помещении. Современные батареи отопления снабжены специальными вентилями, которые могут регулировать количество горячей воды, проходящей сквозь нее. Закрывая или открывая этот вентиль, мы может понизить или повысить температуру батареи, и тем самым изменять температуру внутри обогреваемого помещения.
Добавьте в схему устройства сервопривод. Он нужен для того, чтобы открывать или закрывать вентиль. Измените алгоритм таким образом, чтобы каждые 10 минут, программа считывала показания температурного датчика, расположенного около батареи отопления и:
- если температура будет ниже 18 ºC, поворачивала сервопривод в положение 180º, т.е. открывала вентиль;
- если температура выше 26 ºC, поворачивала сервопривод в положение 0º, т.е. закрывала вентиль.
Для того, чтобы получить сертификат, подтверждающий успешное прохождение курса – выполняйте тесты в конце занятий. | Пройти проверочный тест |