Приведенный в данной статье термометр является «микроконтроллером» не только потому, что он построен на микроконтроллере ATtiny13, но и потому, что это достаточно миниатюрное устройство, собранное на SMD компонентах.
Измерение температуры производиться цифровым датчиком температуры DS18S20 от Maxim. Программа микроконтроллера ATtiny13 инициирует однократное преобразование температуры, ожидает завершения преобразования, затем считывает и отображает результат при помощи двухцветного светодиода.
Температуру можно определить, подсчитав красные и зеленые вспышки светодиода. Например, 2 красных и 3 зеленых мигания означают, что температура составляет 23°C. Мигания светодиода легко читаются, поскольку каждое мигание длится примерно 135 мс, после чего следует пауза в 400 мс.
Этот же светодиод используется для отображения и других событий:
- При отрицательной температуре (значение по шкале Цельсия) последовательность RGRG (красный – зеленый – красный – зеленый) без пауз обозначает знак «-»;
- 0°C отображается как последовательность коротких красных и зеленых миганий продолжительностью в 1 секунду (красный и зеленый свет смешиваются вместе);
- Ошибка связи с датчиком отображается миганием красным длительностью 1 сек.
Как показано на принципиальной схеме, в термометре могут использоваться два разных типа двухцветного (красный + зеленый) светодиода:
- 3-контактный (с общим катодом)
- 2-контактный (с красным и зеленым светодиодами, соединенных встречно-параллельно).
Данная программа для ATtiny13 подходит для обеих версий светодиода. Поскольку светодиоды потребляют большую часть энергии, выберите подходящее значение сопротивления для резистора R2 в соответствии со своими предпочтениями. Резистор 100 Ом ограничивает ток, протекающий через включенный светодиод на уровне 8 мА.
В процессе отображения температуры, светодиоды светятся с рабочим циклом 25% что снижает среднее потребление светодиода примерно до 1,5 мА. Ток потребления можно еще значительно снизить, если для отображения использовать два отдельных светодиода с низким током: красный и зеленый. Но даже со светодиодами на 20 мА схема может работать от небольшого литиевого элемента на 3 В длительное время.
DS1820 можно подсоединить (насколько позволяет протокол 1-Wire) проводом длиной до 3 м. Прототип был протестирован, и все работало хорошо. Если датчик должным образом изолирован, вы можете измерять температуру воды или других не агрессивных жидкостей. Но наиболее распространенное использование предложенной схемы — это создание небольшого и простого термометра с низким энергопотреблением, который будет всегда под рукой.
Назначение перемычек:
- При установленной перемычке JP1 показание производиться в режиме «по модулю 5»: каждое мигание красного цвета теперь равно 5, в то время как зеленые мигания по-прежнему равны единице. Таким образом, при температуре 23°C будет 4 красных и 3 зеленых мигания (4*5 + 3 = 23).
- При установленной перемычке JP2 микроконтроллер переходит в режим пониженного энергопотребления. Измеряет и выводит температуру при включении. Этот экономичный вариант. Чтобы повторить измерение, выключите термометр, подождите 1-2 секунды и снова включите его.
Скачать прошивку (1,0 KiB, скачано: 325)