Включается долгим нажатием кнопки?

В своем проекте на Arduino я хочу реализовать включение всей схемы долгим нажатием кнопки.

Но в то же время я хочу, чтобы Arduino выключался в режиме ожидания или сна, но не знаю, как его тогда разбудить.

Подскажите, пожалуйста, как это можно реализовать?

, 👍0

Обсуждение

В вашем проекте есть одна кнопка. Вам нужно (*долгое) нажатие кнопки, чтобы разбудить Arduino. Через некоторое время вы хотите, чтобы Arduino перешел в спящий режим (возможно, для экономии заряда батареи). Вы хотите, чтобы Arduino снова просыпался при (*длительном) нажатии кнопки и все это в непрерывном цикле. Это правильно, или вы также хотите, чтобы Arduino просыпался и при других триггерах? (*Технически Arduino просыпается при коротком нажатии кнопки, но сразу же переходит в режим сна, если нажатие кнопки было слишком коротким), @6v6gt

@6v6gt Да, все именно так, как ты описал. В идеале мне бы хотелось вот так: - Нажмите и удерживайте 3 секунды (вкл.) - Короткое нажатие во время работы (режим сна) - Длительное нажатие во время работы (3 сек.) выключение, @EndyVelvet

Какой Ардуино вы используете? Не все Arduino, особенно платы для разработки, обеспечивают значительную экономию энергии в спящем режиме. Вам придется допустить, чтобы Arduino перешел в режим «пробуждения» сразу после подключения источника питания. Будут только состояния бодрствования и сна с использованием только программного обеспечения. Полное отключение также возможно, но для отключения Arduino от источника питания потребуется дополнительное оборудование. Вам требуется полное отключение?, @6v6gt

Да, требуется полное отключение. Я использую Arduino Mega2560., @EndyVelvet

Нажмите 3 секунды (вкл.) - Короткое нажатие во время работы (режим сна) - Длительное нажатие во время работы (3 секунды) выключение ... добавьте это к вопросу... это не относится к комментарию, @jsotola

вы можете использовать микроконтроллер со сверхнизким энергопотреблением для обнаружения нажатия клавиш и управления питанием Arduino... что-то вроде https://www.st.com/resource/en/datasheet/stm8l001j3.pdf, @jsotola


1 ответ


Лучший ответ:

3

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

схема фиксации

Найдено по адресу: https:// forum.arduino.cc/t/switch-microcontroller-on-and-off-with-a-button-and-mofset/1047044

Это схема с фиксацией, обладающая особым свойством: вы можете использовать одну и ту же кнопку для включения Arduino, а затем, когда Arduino работает, протестировать кнопку в коде.

Это работает следующим образом. Если Arduino выключен, нажатие кнопки включит Arduino. Ваша программа сразу (или через определенный выбранный интервал) включит D6. Это поддерживает защелку.

Теперь в вашем коде вы можете обнаружить нажатие кнопки и делать с ней все, что захотите. Возможно, выключите устройство, установив D6 в положение LOW, если кнопка была нажата в течение X мс.

Если вы хотите, чтобы устройство просто переходило в спящий режим при нажатии кнопки, вы также можете сделать это. Однако все становится немного сложнее, потому что для пробуждения устройства необходимо использовать кнопку. Это означает установку прерывания смены контакта на контакте A0, а затем тестирование A0 при пробуждении, чтобы определить продолжительность нажатия кнопки. Если он слишком короткий, вы можете заставить Arduino возобновить спящий режим.

,