LowPower.idle не ждет
Я пытаюсь заставить Arduino ждать в режиме ожидания с низким энергопотреблением, заданном библиотекой LowPower, созданной Rocketscream на Uno. Однако, когда я пытаюсь заставить его ждать 8 секунд, кажется, что он вообще не останавливается. Кто-нибудь знает, как сделать так, чтобы он ждал целых 8 секунд перед запуском следующей строки кода?
Вот код:
#include "LowPower.h"
void setup() {
Serial.begin(9600);
}
void loop() {
delay(100);
Serial.println("above");
delay(100);
LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_ON, SPI_OFF, USART0_OFF, TWI_OFF);
delay(100);
Serial.println("below");
}
Я ожидал бы, что это напечатает "выше", затем подождите 8 секунд, затем напечатает "ниже", а затем повторите это снова. Но что происходит, так это то, что он проходит прямо через LowPower.idle, ничего не делая, и вывод выглядит так:
1:12:14.547 --> выше
21:12:14.746 –> ниже
21:12:14,845 -> выше
21:12:15.044 --> ниже
21:12:15.144 --> выше
21:12:15.376 --> ниже
...и так далее.
Если у кого-нибудь есть идеи, как сделать ожидание бездействующим, было бы здорово.
Спасибо!
@Hayden, 👍0
Обсуждение1 ответ
К вашему сведению, эта проблема была поднята почти 3 года назад, но ответа от автора не было: https://github.com/rocketscream/Low-Power/issues/36
Это печально, но спасибо за эту информацию!, @Hayden
- Как запитать Arduino и 1 цветную светодиодную ленту от одного источника питания
- Как остановить uno от запуска программы при включении питания?
- Питание Arduino напряжением более 5 В
- Режим глубокого сна для Uno без сложных схем?
- Питание двух шаговых двигателей с драйверами A4988
- Как перевести RFID-модуль MFRC522 в спящий режим?
- Не удается включить Arduino Uno + Ethernet Shield с USB-разъема, отличного от компьютера
- Питание Raspberry Pi 3 от Arduino Uno
Попробуйте поставить
cli();
передLowPower.idle(...)
. Я думаю, что timer0 (используемый для миллисекунд и задержки) прерывает ваше время простоя., @GerbenСпасибо за ответ, но это, похоже, ничего не меняет., @Hayden