Для того чтобы мигнуть светодиодом три раза с использованием внешнего прерывания attachInterrupt() в Arduino, вам понадобятся следующие шаги:
1. Подключите светодиод к любому цифровому пину. Например, пину 13.
2. Укажите пин, к которому подключен внешний источник прерывания. Например, пину 2.
3. В функции setup() установите режим работы пина 2 на вход, используя команду pinMode(2, INPUT).
4. В функции setup() также укажите, что прерывание будет происходить при фронтальном (переменном состоянии) спадающем счетчике, используя команду attachInterrupt(digitalPinToInterrupt(2), функцияОбработчик, FALLING).
Здесь digitalPinToInterrupt(2) используется для того, чтобы перевести номер пина в внутренний номер внешнего прерывания.
5. В секции кода после функции setup() создайте функцию функцияОбработчик(). Внутри этой функции можно просто устанавливать и выключать светодиод.
Пример реализации функции обработчика:
C++
void функцияОбработчик() {
static int счетчик = 0; // создание статической переменной для хранения количества миганий
счетчик++; // увеличение счетчика на 1
if (счетчик <= 3) { // проверка количества миганий
digitalWrite(13, HIGH); // включить светодиод
delay(500); // задержка 500 миллисекунд
digitalWrite(13, LOW); // выключить светодиод
delay(500); // задержка 500 миллисекунд
}
}
6. В функции loop() нет необходимости в каких-либо изменениях, она будет выполняться в бесконечном цикле после инициализации прерывания.