Python_py
@Python_py

Как настроить внешнее прерывание Arduino?

Народ, хелп! Уже 2 часа сижу с настройкой сна. Перерыл и интернет и GPT. Использую плату Arduino Mega 2560, внешнее прерывание по кнопке, на порту D2.
Пример кода:
#include <GyverPower.h>

const byte interruptPin = 2; // номер пина для внешнего прерывания

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP); // настраиваем пин для внешнего прерывания на INPUT_PULLUP
  attachInterrupt(digitalPinToInterrupt(interruptPin), externalInterrupt, FALLING); // подключаем функцию externalInterrupt к внешнему прерыванию
}

void loop() {
  // выполнение операций
  power.sleep(SLEEP_FOREVER); // вход в бесконечный сон
  digitalWrite(13, !digitalRead(13));
  delay(5000);
}

void externalInterrupt() {
  // обработка внешнего прерывания
  Serial.println(1);
  power.wakeUp(); // выход из режима сна
}

Реакции никакой, ни после power.sleep(SLEEP_FOREVER), ни в самой функции прерывания.
Подскажите, сайтик с нормальным решением, ну или как этот код починить...
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 3
@kalapanga
По библиотеке GyverPower лучше непосредственно автора спрашивать. Он иногда и здесь отвечает, но на его форуме наверное быстрее выйдет.
Из интересного почитать можно порекомендовать https://www.gammon.com.au/power
Ответ написан
Комментировать
nava2002
@nava2002
Инженер
Все просто внимательно изучите описание.
Важно! Прерывания работают на определенных ногах Arduino.
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Подскажите, сайтик с нормальным решением

Вот пример идущий вместе с этой библиотекой, который делает то, что ты описал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы