«Вечный» пульт управления на NRF24L01+
- Войдите на сайт для отправки комментариев
Имеется: приёмник и передатчик собранные на ардуино и NRF24L01+ (http://iarduino.ru/shop/Expansion-payments/nrf24l01-wireless-module-2-4g.html). Используется пленочная клавиатура типа (http://iarduino.ru/shop/Expansion-payments/elastichnaya-klaviatura-3x4-knopki.html) с библиотекой Keypad.
Все работает, но…
Передатчик потребляет много- батареек не напасешься.
Задача: сделать «вечный» пульт управления, который будет по нажатию на клавишу будить ардуину (у меня стоит Про мини 3,3), будить NRF24L01+, отправлять команду.
Затем в обратной последовательности засыпать (сразу или через какое то время – если пульт будет пользоваться).
Нашел примеры по усыплению ардуины и пробуждению по прерыванию. Не знаю только как получить сигнал со спящей клавиатуры. Можно ли с пленочной клавиатурой и с библиотекой Keypad использовать прерывания?
Можно, если перед сном поставить низкий уровень на пинах строк (или столбцов) и на других пинах (стоблцов или строк соответсвенно) поставить INPUT_PULLUP и разрешить по этим пинам прерывание типа PCINT. Вот по нему и будете просыпаться.
спасибо. буду рыть в этом направлении.
Можно, если перед сном поставить низкий уровень на пинах строк (или столбцов) и на других пинах (стоблцов или строк соответсвенно) поставить INPUT_PULLUP
В loop() перед сном описать:
pinMode(3,INPUT_PULLUP);
pinMode(4,INPUT_PULLUP);
pinMode(14,INPUT_PULLUP);
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
pinMode(8,INPUT_PULLUP);
или это как то с помощью Keypad.h делается?
Ну, сами-то чего-нибудь сделайте. Попробуйте, посмотрите, проверьте. Если это хобби, то от работы надо получать удовольствие, а какое удовольствие за каждой запятой на форум бегать?
)))
рою по чуть-чуть))
по добавленным строкам пока ошибок не выдается. теперь проверяю ноги на принадлежность к Группам PCINT. PCI0 у меня используется под NRF24L01+. поэтой причине все пины клавиатуры надо перенести в PCI1 и PCI2 и "разрешить по этим пинам прерывание типа PCINT". как разрешить- пока не нарыл.
Можно, если перед сном поставить низкий уровень на пинах строк (или столбцов) и на других пинах (стоблцов или строк соответсвенно) поставить INPUT_PULLUP и разрешить по этим пинам прерывание типа PCINT. Вот по нему и будете просыпаться.
Смотря как спать.) По idle экономии совсем не много(.
Ну, спать надо максимально, чтобы только от PCINT проснуться. Другое дело, если это ардуина, а не голый МК, то вся эта сонливость - мастурбация одна.
Только 2, 3 и Res сможет создасть настоящую "вечность", иначе это будет порнография).
Похищал сердца у дам, видный парень Рамазан и теперь проблема вечна, ходят дамы безсердечны!!!
нашел пример решения с регистрами.
Можно, если перед сном поставить низкий уровень на пинах строк (или столбцов) и на других пинах (стоблцов или строк соответсвенно) поставить INPUT_PULLUP и разрешить по этим пинам прерывание типа PCINT. Вот по нему и будете просыпаться.
можно ли на пины 5,6,7,14 ставить низкий уровень? как мы тогда что то получим на пинах 2,3,4?
разрешаем прерывания по всем 7 пинам или только для 2,3,4?
Вопросы показывают. что Вы не поняли идеи. Посмотрите на схему матрицы и подумайте ещё
можно ли на пины 5,6,7,14 ставить низкий уровень? как мы тогда что то получим на пинах 2,3,4?
Всё равно куда и какой уровень, лишь бы на строках он был один, а на столбцах другой. Ставьте каокй хотите и куда хотите.
разрешаем прерывания по всем 7 пинам или только для 2,3,4?
По тем, что на INPUT, конечно.
вот такое чудо получилось)
при нажатии на кнопки клавиатуры иногда в порт сыпет 5, 6, 7, 1....
где я не прав?
Не знаю, а что Вы сделали-то? Я Вам что писал в первом посте?
Я Вам писал делать это ПЕРЕД СНОМ чтобы проснуться. А при нормальной работе, всё выключаёте нахрен и пользуйтесь библиотекой как обычно. Это только чтобы проснуться техника. Понимаете? Проснулись - прерывания нафиг и спокойно живёте со своей библиотекой. Захотели спать - всё подготовили и тогда спим.
Не знаю, а что Вы сделали-то? Я Вам что писал в первом посте?
Я Вам писал делать это ПЕРЕД СНОМ чтобы проснуться. А при нормальной работе, всё выключаёте нахрен и пользуйтесь библиотекой как обычно. Это только чтобы проснуться техника. Понимаете? Проснулись - прерывания нафиг и спокойно живёте со своей библиотекой. Захотели спать - всё подготовили и тогда спим.
Товарищ еще не озвучил на какой именно ардуине это реализует, вдруг на NANO? Для вачдога надо же сначала загрузчик перешить
..... сделать «вечный» пульт управления, который будет по нажатию на клавишу будить ардуину (у меня стоит Про мини 3,3).......
это писал
не работает
правильно я бужу ардуину?
Не вижу, как Вы еёбудите по очень просто причине - Вы нигде её спать не укладываете.
Знаете, если у Вас именно ардуина, а не голый ичп, бросайте Вы это дело и забейте. Ничего Вы её сном не сэкономите. Там оснастка жрёт больше, чем сам МК.
ну почему же? у меня про мини с понижением частоты и программным усыпление без радиомодуля потребляет 0,17мА. меня устраивает. есть идея еще чуток уменьшить потребление, но пока не хочу ардуину "пилить". разберусь с просыпанием, займусь отключением радиомодуля (программно или отключением питания).
А должно быть 10 - 20 мка. С радиомодулем! Есть к чему стремиться.)
А должно быть 10 - 20 мка. С радиомодулем! Есть к чему стремиться.)
а как такого добиться?
Известно как. Непосильным трудом.) Я намёк вам дал ранее.
если Вы про это, то можно поподробнее?