ПредишенСледващото

Намалете консумацията на електроенергия от устройствата на AVR

Когато захранва устройства от независими източници на енергия - батерии, акумулатори (ябълки и остана на електродите;)) трябва да се грижи за намаляване на консумацията на енергия, за да се удължи живота без смяна на батерията. Сама по себе си, консумацията на енергия зависи от много фактори: вида на микроконтролера, захранващи напрежения, честотата на избраните произведения от конфигурирани периферия и дори температурата на околната среда.

За управление на захранването всички AVR устройства имат множество режими на работа, за да се намали значително своята собствена консумация на енергия - това е сън (Икономичен режим) и да се спре (Power - надолу)

Както консумация на енергия варира в зависимост от избрания режим на работа ясно е показано в таблицата по-долу (в 1 MHz, 3V, 25 ° C):

Очевидно е, че те се произнесе ситуацията микроконтролери нов одитите (тези, които са на разположение с наставката "а" от края) и новите модели (ATmega48 / 88/168, и други подобни).

Сега нека видим как се работи с режими с ниска мощност.

В този режим, спира часовника, но останалата част от периферията продължава да работи и на микроконтролера ще реагира на външни прекъсва, прекъсва и UART прекъсване брояч / таймер. Доста полезно например, когато в очакване на някакъв вид трансформация - докато външната периферия на мисълта (какъвто е случаят с датчици 18b20), че микроконтролера не е напразно яде излишната енергия може да се сложи да спи по време на гърба си и след определен период от време с помощта на таймер.

Dive микроконтролер да спят в Bascom - AVR използва режим на екип.

Пример за използване на режима на сън. Там е конфигуриран таймер прекъсване след 4 секунди, като преливник прекъсват таймер и прави така, че да се събудя микроконтролер.

$ Regfile = "m8def.dat"
$ Crystal = 1000000
'$ Сим

"Конфигуриране на таймер за генериране на прекъсвания
"Прекъснете таймера ще се появи приблизително на всеки 4 секунди

Конфигуриране TIMER1 = таймер. Prescale = 64
На таймер 1 Awake:

EnableInterrupts
Активиране на таймер 1
Старт таймер 1

правя

Печат "Hello" "печат поздрав
Печат "Sleep сега"
Idle "приспиване
контур

Awake. "Случи таймер прекъсване

Най-икономичният режим, а в действителност, микроконтролера изключен напълно. Този режим спира часовника и изключване на всички периферни устройства, с изключение на външно прекъсване манипулатор, който е на енорията прекъсват микроконтролерът се връща към нормална работа. За да активирате този режим даде команда Powerdown.

$ Regfile = "m8def.dat"
$ Crystal = 1000000
'$ Сим

"Конфигуриране на прекъсване на INT0
"Това, което се случва на по-ниското ниво на крака MK

Config INT0 = ниско ниво
На INT0 Бътън.
EnableInterrupts
Активиране на INT0

правя
Печат "Hello" "печат поздрав
Печат "Powerdown сега"
Powerdown "корабни микрона в energocberegayuschy режим
контур

Бътън. "Това е прекъсната
Печат "Старт" "администратор събудих и написа съобщение
Печат ""
Изчакайте 1
Gifr = 64
връщане на връщане "към главната линия

Обезточвано ми напълно!

В приложения, където микроконтролера трябва да бъдат използвани в продължение на дълъг период от време (например, в термометри, че през повечето време не може да се види), които можете да приложите един много интересно решение с използването на външен БНТ.

Ниска консумация на енергия микроконтролери AVR устройства - полезна информация - AVR - проекти

Долната линия е това: на транзистора, включени в захранващ блок счупи устройство и самия микроконтролер отваря по време на изпълнение. Докато програмата се изпълнява, по крака PD0 държи високо ниво на напрежение и полевик е в отворено състояние, на ток, преминаващ през себе си. След извършване на необходимата програма, микроконтролер затваря транзистор, като по този начин де-енергизиране верига напълно. Поради големия съпротивление на БНТ в затворено състояние, ток ще бъде много малък (много по-малък от текущия саморазрядът батерията).

$ Regfile = "m8def.dat"
$ Crystal = 1000000

Config PORTD. 0 = изход
PORTD. 0 = 1 ", за да се получи единица крак, като по този начин отваряне на транзистор

Config Portc. 0 = изход ", а тук сме светодиод
Водени Alias ​​Portc. 0

"Да си вършат работата, като например LED примигна

Водени = 1
Waitms 80
Водени = 0
Waitms 80
Водени = 1
Waitms 80
Водени = 0

PORTD. 0 = 0 "близо транзистор

За да включите устройството, просто натиснете бутона на MCU захранващото напрежение отново отива, той от своя страна ще се отвори на транзистора, а след това започва да реализира своята програма, и за които завършването на, отново, отсечем собствено захранване.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!