Главная » Статьи » Полезная информация

Еще один способ эффективного энергосбережения для проектов



 Размышляя на тему как максимально экономить батарейку в проектах где основная задача выполняется по нажатию кнопок (как в пультах ДУ) в голову пришла очень простая и эффективная схема. Ее достоинство состоит в том, чтобы на кнопку возложить не только задачу вызывать ту или иную функцию, но и подавать питание на микроконтроллер. Таким образом потребление схемы в режиме ожидание падает до нуля (!), так как батарейка оказывается полностью отключенной от схемы.

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





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

для проверки схемы собрал ее на макетке:




код обработки нажатия самый элементарный:

$regfile = "m16def.dat"
$crystal = 8000000

Config Portb = Output
Config Portc = Input

Do

If Pinc.= 1 Then
 Portb.= 1
End If

If Pinc.= 1 Then
 Portb.= 1
End If

If Pinc.= 1 Then
 Portb.= 1
End If

Loop

End






Как видно схема оказалась вполне работоспособной и ко всем прочим прелестям умеет обрабатывать сразу несколько нажатий, поэтому обязательно найдет себе применение.


 

Категория: Полезная информация | Добавлено: 29.09.2013
Просмотров: 20862 | Комментарии: 15 | Теги: энергосбережение | Рейтинг: 5.0/12
Всего комментариев: 15
+1   Спам
15 Kolini   (23.02.2014 18:40) [Материал]
Код программы требует доработок. Светодиоды выключаются только когда отжаты все кнопки. ТО есть если нажать две или три кнопки а потом отпустить все кроме одной (любой), то светодиоды буду продолжать гореть :-)

+2   Спам
14 gorlofu   (04.10.2013 09:58) [Материал]
Всё гениальное - просто

+1   Спам
13 kip96   (01.10.2013 11:20) [Материал]
Ну и слава Богу, что разобрались. Сам сегодня, ради интереса, отключил питание от Меги 8 и подключил питание на пустую ногу. Мега8 справилась имея на борту DS1307, NRF24L01 и индикатор 1602.Всё отработало нормально. Конечно, через внутренние диоды запитывать опасно, но можно в программе включать ногу потрта, который откроет мосфет, который подаст питание уже на Vcc, как уже предлогал exersizze

12 Valera18   (30.09.2013 23:14) [Материал]
Прикольно, даже не знал, что с любого порта напряжение попадает на VCC. :))))

11 Oboltus   (30.09.2013 23:04) [Материал]
Да, взглянул даташиты, понял о чем речь.

kip96 я ни к кому не настроен враждебно.Я просто уточняю Вашу мысль.Я сразу ее не понял. Кстати, спасибо! Момент с диодной защитой я как-то упустил из виду...

+1   Спам
10 exersizze   (30.09.2013 22:04) [Материал]
Немного не допоняли вы друг друга, просто исключить из этой схемы диоды конечно нельзя, это очевидно smile
Но камрад kip96 оказался таки прав. Если просто подавать напряжение с батареи на входы, то напряжение попадет на VCC через внутренние диоды. И схема работает точно также
а для проверки просто отключил провод питания  http://avrproject.ru/112/42dzhltva439.png
падение на внутренних диодах оказалось 1 Вольт (при питании 5 вольт на VCC появляется 3,98 вольт)
ps max, для пользователей смайлы отключил, из-за непонятной ошибки при вставке бывает что у сайта сносит крышу и страницы криво отображаются

9 kip96   (30.09.2013 20:34) [Материал]
Oboltus, тут всё в письменной форме, читайте коментарий 3.Зачем мне повторяться. Так что вопрос только с теории пройти на практику.

8 Valera18   (30.09.2013 17:42) [Материал]
Я согласен с Oboltus
Прочитайте статью.

Сам раньше думал про такой способ питания (включения) для передатчика на NRF24L01, но не хотелось возиться с диодами, так так после диода напряжение было меньше (особенно, заметно в цепях с низким напряжением питания).

+1   Спам
7 Oboltus   (30.09.2013 17:29) [Материал]
Т.е. Вы хотите сказать, что,диоды стоят например между PC2 и VCC ? И стоит просто сразу подавать питание только на PC2, а VCC вообще не трогать?

Или Вы все-таки не просекли момент: (фраза из статьи выше) Диоды в схеме нужны чтобы отсечь попадание высокого уровня на остальные входы. Вы о чем?

6 kip96   (30.09.2013 16:55) [Материал]
Точно так-же, как и в схеме статьи. Эти диоды уже стоят в МК. т.е. получается масло масленное. Диоды уже давно ставят в микросхемах, это своеобразная защита от статики.

5 Oboltus   (30.09.2013 15:34) [Материал]
Видимо транзистор и подразумевается, иначе ничего серьезнее выше приведеной схемы и не соберешь))
3 kip96!А как за пределами корпуса МК тогда разделить сигналы на прерывании без диодов? Иначе просто все кнопки окажутся запараллелеными. Или я не понял Вашу мысль?

4 max   (30.09.2013 15:21) [Материал]
Дешево и сердито.

P.S. В комментах не хватает смайлов.

+1   Спам
3 kip96   (30.09.2013 14:40) [Материал]
На самом деле в мк диоды уже стоят. На каждой ноге к Vcc и Vss. exersizze , попробуй без диодов, просто подать питание на порт, должно работать.

2 exersizze   (30.09.2013 12:43) [Материал]
Да. Но еще можно добавить транзистор, который будет держать напряжение пока это необходимо, а после выполнения программы закрывать его.

1 Scorpushka   (30.09.2013 12:35) [Материал]
спасибо, вообщем, пока держишь кнопку, работает

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация
Логин:
Пароль: