Страницы

вторник, 28 апреля 2015 г.

Что мы делаем?

А делаем мы цифровой термометр. И вот его рабочий прототип:


Это вполне рабочий вариант, хотя на стенку его не повешаешь. Разве что, ради экзотики. В нижней части находится микроконтроллер Arduino Uno, который всем и управляет. В верхней - макетная плата, на которой расположены: 1) светодиодный индикатор для отображения температуры; 2) затерянная в проводах вспомогательная микросхема MAX7219, которая управляет этим светодиодным индикатором; 3) множество проводов, которые всё это добро соединяют друг с другом и 4) "гвоздь" программы - цифровой температурный датчик DS18B20 (длинный чёрный провод с металлическим набалдашником на конце).

Программа управления термометром загружена в микроконтроллер, так что устройство вполне самостоятельное - компьютер ему не нужен. Питается либо через блок питания от розетки, либо от 9-вольтовой "кроны".

Плюсы такой сборки с помощью Arduino Uno - не надо ничего паять, быстро собирается, быстро проверяется работоспособность, легко устраняются ошибки, потом всё разбирается и собирается что-то новое. Минусы: можно использовать как окончательное устройство, но оно не имеет презентабельного вида, провода легко могут отойти, стоит только случайно их задеть (а через время уже и забудешь, куда втыкать вылетевший провод). В плане материальных затрат такое устройство получается очень дорогим - за универсальность и удобство надо платить. Ну и от батарейки (щелочная "крона") такое устройство проработало всего одну ночь. Arduino, даже ничего не "делая", потребляет ток больше 30 мА, а с тускло горящим индикатором - 50 мА.

Плюсы мы уже все взяли. А с минусами решили побороться. И первым делом избавляемся от микроконтроллера Arduino, который нам так верно послужил. Дело в том, что внутри Arduino Uno находится другой микроконтроллер - ATmega328p. Очевидно, что его использовать уже не так легко и просто, как Arduino. Задача усложняется, но "игра стоит свеч".


И вот уже следующий прототип, который достался на проверку Кантемиру:


Что изменилось? Arduino Uno "опустел" - мы вытащили из него микроконтроллер ATmega328p и вставили на отдельную макетную плату. Саму Arduino мы ещё пока используем, но уже только для понижения девяти вольт "кроны" до рабочих для ATmega328p пяти вольт. (На фотографии видно, что от Arduino к макетной плате тянутся только два провода - синий и красный. Это плюс и минус питания.) Такой переход на ATmega328p не прост - нужно разбираться с "даташитом" (инструкцией по применению).

В итоге одним таким переходом на "чистый" микроконтроллер мы избавились от лишних энергозатрат. Питание нашего устройство теперь ниже 15мА. Термометр проработал без выключения от одной кроны в три раза дольше. Конечно, и этого нам мало. Поэтому впереди нас ещё ждёт работа по увеличению срока работы термометра. Но пока надо избавиться от проводов и привести в достойный вид наше устройство. Поэтому паяем.



Комментариев нет:

Отправить комментарий