Мониторинг температуры ПК на AVR микроконтроллере

Иногда нужно знать точную температуру того или иного узла ПК, но встроенные средства это не всегда позволяют. Для данных целей и предназначено это устройство.

Потребность в такого рода устройстве возникла у меня, когда я купил старенький ПК, и решил приспособить его под FTP сервер. Но мне попался компьютер с чипсетом VIA и процессором AMD. По отдельности эти понятия работают очень даже неплохо, но вместе…. И, как вы наверное догадались, мне пришлось устанавливать ещё один дополнительный кулер. Соответственно потребовалось как-то контролировать температуру всей этой «ядерной микроволновки». Всего датчиков в ПК было 3: где-то на материнской плате, в процессоре и в жестком диске(датчиков на видеокарте, БП, обоих мостах не было). Для мониторинга раннее указанных деталей и было создано это устройство.

Я встроил сей девайс в лицевую планку своего ПК, что хорошо видно на рисунке выше (к уст-ву подключен лишь один датчик — на БП).

Устройство «без корпуса» выглядит так:

Извиняюсь за «непрезентабельный» вид платы — не было возможности промыть в растворителе.

Теперь о используемых деталях:

Основа этого устройства — микроконтроллер производства компании Atmel ATmega8. Для отображения информации я применил жидкокристаллический дисплей с контроллером HD44780 на борту. В качестве датчиков использовались термисторы (в начале хотел применить DS18B20, но посмотрев на разницу в цене (а мне надо целых 6 штук) решил вопрос в пользу термисторов). Это основные детали устройства, все детали будут перечислены ниже.

Принципиальная схема устройства не сложна, и может быть повторена даже начинающими (но вот что касательно печатной платы, тут несколько сложнее). Дефицитных деталей схема не содержит.

Печатная плата устройства получилась относительно сложной. Сложной в каком плане — есть 4-5 мест, где детали не очень удобно паять, а так же без технологии ЛУТа сложно развести плату в ручную (особенно начинающим). Она 2-хсторонняя, потому что на одной стороне развести такое кол-во дорожек было сложно. Текстолит можно использовать любой, главное что бы вам паять было удобно.

Топология печатной платы:

О программе для МК

Программа (прошивка) для МК разрабатывалась в среде  microPascal. В целом работа программы проста:
— Инициализация АЦП;
— Инициализация дисплея;
— Старт бесконечного цикла, в котором и происходит измерение (и преобразование в читабельный вид) температуры.

К слову, для преобразования температуры использовалась следующая формула: 
temp:= 1 / (a + (b * temp) + (c * temp*temp*temp))
где a,b,c — константы, которые можно найти в даташите на термистор (для 10 кОм соответственно 0.001129148, 0.000234125, 0.0000000876741).

Вся начинка устройства держится на дисплее, который, в свою очередь прикреплен к передней планке ПК.

О прошивке МК

Я прошивал МК через программатор USBasp, и софт к нему Khazama AVR Programmer.

При прошивке нужно выставить следующие фузы:

После сверления, травления, сборки платы, прошивки МК и подключения датчиков все должно заработать сразу. Если что-то не работает (например не все датчики показывает) то проверьте монтаж, разводку платы, возможно где-то КЗ. Ошибки в программной части исключаются. Если у вас неточно показывает температуру,то придется подключать дополнительный подстроечный резистор, потому что у термисторов возможен разброс параметров.

Удачи вам в сборке!

В архиве статьи лежат исходники, а так же проект в Proteus.


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

LCD1
LCD-дисплейLCD WH1602B1
С подсветкойU1
МК AVR 8-битATmega81
R1-R6
Резистор10 кОм6
ПрецизионныйR7
Резистор10 Ом1
SMDRV1
Подстроечный резистор10 кОм1
Желательно многооборотныйRT1-RT3
Термистор10 кОм3
Я использовал 3-х ммC1, C2
Конденсатор33 пФ2
C3
Электролитический конденсатор1000 мкФ1
X1
Кварцевый резонатор8МГц1
Низкопрофильный
PLS-401

PBS-203

Панелька 28 pin1
УзкаяДобавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.