USB термометр
В якості мікроконтролера був обраний ATmega8. Цифровий термодатчик: DS18B20, у якого межі вимірювання температури від -55 до +125 градусів Цельсія. Загалом ось список всього, що потрібно для термометра:
- Мікроконтролер ATmega8 (дуже бажано без індексу “L” наприкінці).
- Температурний датчик DS18B20, потрібен без індексу PAR наприкінці, інакше макс. температура буде +85 град.
- Кварц 12 МГц.
- 2 конденсатори 22 пФ і один конденсатор по живленню (10V і не менше 100 мкФ, тому що у USB на лінії живлення просто жахливі перепади напруги).
- 2 резистора 68 Ом, 1 резистор 200 Ом, 1 резистор близько 2,2 – 4,7 кОм, 1 резистор 10кОм і 1 резистор 1,5кОм.
- 2 стабілітрони 3.6V.
- Штекер або роз'єм USB.
- Світлодіод.
- Ну і плата або макет, на якій це все буде зібрано.
Схема пристрою:
Схема дуже проста. Зліва розташовані всі 4 контакти USB. Конденсатор С3 – це той самий кондер по живленню. Стабілітрони VD1 і VD2 знижують напругу на лінії передачі даних до 3,3В. Датчик DS18B20 можна не ставити на плату, а вивести на потрібне місце, взагалі довжина проводу може бути до 100 метрів, але я не раджу більше 50м. Світлодіод змінює свій стан (запалюється/гасне) при кожному запуску вимірювання температури. Якщо він з хаотичною швидкістю миготить, тоді з термодатчиком все нормально, якщо постійно світиться або не світиться – з датчиком проблеми (неправильно підключений, не робочий, або дуже довгий провід, поблизу якого сильні електромагнітні перешкоди). Справа розташований роз'єм для внутрішньосхемного програмування мікроконтролера. Прошивка для нього - USBThermometer\MCU\USB_thermometer\default\main.hex. Після заливки прошивки вам потрібно правильно виставити фьюзи, інакше пристрій не буде працювати, в STK500 з AVR Studio це виглядає так:
Якщо ви правильно зібрали пристрій і правильно прошили МК, то при підключенні до комп'ютера через USB Windows знайде новий пристрій і запитає, де драйвер. Він розташований у папці USBThermometer\windows-driver\, куди вам і потрібно вказати шлях. Коли встановиться драйвер, перезавантажте ПК. Потім запустіть програму USBThermometer.exe. Якщо пристрій не підключено, то замість температури буде написано «Не підкл.» і при перетягуванні вікно буде трохи «підвисати» кожну секунду, тому що програма буде кожну секунду оновлювати дані про підключені пристрої, поки не знайде цей термометр. Якщо ви підключите пристрій, то в треї вискочить повідомлення «Термометр підключено», вікно підвисати вже не буде, і ви побачите таке:
Ще, що дуже зручно, є функція «Міні-вікно» і «Над усіма вікнами». Я зазвичай встановлюю всі 2 галочки і виходить ось що:
Вся сіра область це і є вікно програми в «міні-форматі» (біло-синій фон з бульбашками – то робочий стіл). Подобається :)?. Це зручно, тому що вікно маленьке (96х198), постійно над усіма вікнами і не заважає при використанні інших додатків. Крім того, програма не відображається на панелі завдань, а тільки в треї, і, навівши курсор на іконку програми, можна побачити температуру в Цельсіях:
Цей термометр я перевіряв на кількох стаціонарних ПК, ноутбуках і нетбуках під операційними системами Windows Home Edition, Windows Professional і Windows Vista. Все працювало відмінно! Тільки ось на Вісті, при температурі на термодатчику нижче -9 і вище 99 град. не було видно букви «С» (там, де температура в Цельсіях), тому що я вибрав шрифт для відображення температури «Comic Sans MS», але я не думаю, що для когось це проблема.
Програма, прошивка, вихідні коди, драйвер, друкована плата додаються
P.S. Якщо у вас немає програматора і вам потрібен вже прошитий мікроконтролер або ви хочете купити вже готовий термометр, то звертайтеся до мене на e-mail: devices2000 {собака} ya.ru
Також я приймаю замовлення на розробку і виготовлення пристроїв на мікроконтролерах, за цим звертатися на той же імейл.
Список радіоелементів
Обозначення | Тип | Номінал | Кількість | Примітка | ||
---|---|---|---|---|---|---|
МК AVR 8-біт |
ATmega8
|
1 | ||||
Датчик температури |
DS18B20
|
1 | ||||
VD1, VD2 | Стабілітрон |
1N4729A
|
2 | 3.6В | ||
С1, С2 | Конденсатор | 22 пФ | 2 | |||
С3 | Електролітичний конденсатор | 100 мкФ | 1 | |||
R1 | Резистор |
10 кОм
|
1 | |||
R2 | Резистор | 2.2-4.7 кОм | 1 | |||
R3, R4 | Резистор |
68 Ом
|
2 | |||
R5 | Резистор |
1.5 кОм
|
1 | |||
R6 | Резистор |
200 Ом
|
1 | |||
LED1 | Світлодіод | 1 | ||||
Z1 | Кварц | 12 МГц | 1 | |||
Роз'єм | 4 конт. | 1 | ISP Prog | |||
Роз'єм | 5 конт. | 1 | ISP Prog | |||
Прикріплені файли:
- USB_Thermometer.rar (652 Кб)