Спящий режим Arduino на 12 часов с модулем rtc1302
ОК, доброе утро, ребята, с проектом сбора данных, в нем я получаю данные каждые 12 часов, даже если это всего лишь 12 часов, Arduino подключается напрямую и питается от батареи 9 В, дольше срок службы этой батареи, чтобы попытаться перевести Arduino в спящий режим в режиме реального времени, используя часы реального времени 1302, вы могли бы помочь мне написать код для этих часов, потому что я никогда раньше ими не пользовался! спасибо
@Pedro Henrique, 👍0
Обсуждение1 ответ
Вам нужно 3 фрагмента кода и один запасной:
1) Откажитесь от ds1302 и приобретите RTC с выводом прерывания (например, DS3231, который предлагает Джот). Это облегчит вам жизнь.
2) Настройте RTC на прерывание каждые 12 часов.
3) Поскольку вы успешно внедрили спящий режим, попробуйте разбудить Arduino с помощью аппаратного прерывания. См. руководство Ника Гаммона по прерываниям и внимательно прочитайте о пробуждении микроконтроллера с помощью внешнего прерывания. Вы можете создать его прототип с помощью кнопки, которая подключит вывод прерывания к GND или Vcc. Также используйте соответствующий резистор. Это руководство содержит полезную информацию для начинающих.
Подводя итог: ваш Arduino всегда будет находиться в спящем режиме, а ваш RTC настроен на запуск аппаратного прерывания. При срабатывании прерывание пробуждает Arduino, и код прерывания обрабатывает ваши измерения.
- Преобразование в Unix Timestamp и обратно
- Разница между «time_t» и «DateTime»
- Библиотека времени Arduino и библиотеки RTC
- Как найти разницу между двумя timestamp
- Как отслеживать миллисекунды в спящем режиме
- Как установить RTC в ES32 с помощью NTP-сервера?
- Как разбудить Arduino с помощью rtc?
- Синхронизация библиотеки времени и RTClib
Arduino SE доступен только на английском языке. Поймете ли вы ответ на английском языке?, @Juraj
Да, я прекрасно понимаю., @Pedro Henrique
переведите вопрос на английский с помощью Google Translate, @Juraj
хорошо, Доброе утро, ребята, с проектом сбора данных, в нем я получаю данные каждые 12 часов, даже если это всего лишь 12 часов, Arduino подключается напрямую и питается от батареи 9 В, для увеличения срока службы этой батареи. Чтобы попытаться перевести Arduino в спящий режим в режиме реального времени, используя часы реального времени 1302, вы могли бы помочь мне написать код для этого черепка, потому что я никогда раньше не использовал его! Спасибо, @Pedro Henrique
Если вы никогда не использовали ds1302, продолжайте в том же духе. Не используйте это. ds3231 намного лучше. Какую плату Arduino вы используете? Для ds1302 вы можете начать здесь: https://playground.arduino.cc/Main/DS1302RTC Установка Arduino Uno в спящий режим может не помочь, есть другие компоненты, которые используют ток. Для спящего режима вы можете начать здесь: https://www.gammon.com.au/power, @Jot
У меня готов Sleep_pwr_down, я как раз думал добавить несколько строк кода для настройки времени ds1302 и сделать условие, чтобы просыпаться, когда будет 20 часов, и спать, когда будет 8 часов, без особых сложностей можно сделать так?, @Pedro Henrique
Это возможно. Вы даже можете просыпаться каждую минуту, чтобы проверить время. Для активности в течение 1% времени требуется мало энергии. Если вы хотите питать Arduino Uno от батареи 9 В, то спящий режим для чипа Atmega мало что даст. Вы внимательно просмотрели https://www.gammon.com.au/power? все, что вам нужно знать, есть. Какую плату ардуино вы используете., @Jot
Для действительно низкого энергопотребления рассмотрите возможность использования МОП-транзистора, пропустите обработку «спящего режима» и «полностью» выключите Arduino. https://sites.google.com/site/wayneholder/low-power-techniques-for-arduino, @Mikael Patel
Здравствуйте, извините, что пропустил, в колледже много вакансий. Итак, я пришлю вам код сна, вы могли бы посмотреть и объяснить мне, как поставить условные обозначения, чтобы он просыпался в 8 часов на работу, а когда ему будет 8 часов, он снова засыпал! мне бы очень помогло! Спасибо за внимание., @Pedro Henrique