#include <Arduino.h>
const int buttonPin = 2; // Пин кнопки
const int ledPin = 9; // Пин светодиода
volatile bool buttonPressed = false; // Флаг нажатия кнопки
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Настройка кнопки как входа с подтягивающим резистором
pinMode(ledPin, OUTPUT); // Настройка светодиода как выхода
// Настройка внешнего прерывания
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonISR, FALLING);
}
void loop() {
if (buttonPressed) {
buttonPressed = false; // Сбрасываем флаг
sendSOS(); // Отправляем сигнал SOS
}
}
void buttonISR() {
buttonPressed = true; // Устанавливаем флаг нажатия кнопки
}
void sendSOS() {
// Формирование сигнала SOS (...---...)
for (int i = 0; i < 3; i++) { // Точки
digitalWrite(ledPin, HIGH);
delay(200); // Длительность точки
digitalWrite(ledPin, LOW);
delay(200); // Интервал между точками
}
for (int i = 0; i < 3; i++) { // Тире
digitalWrite(ledPin, HIGH);
delay(600); // Длительность тире
digitalWrite(ledPin, LOW);
delay(200); // Интервал между тире
}
for (int i = 0; i < 3; i++) { // Точки
digitalWrite(ledPin, HIGH);
delay(200); // Длительность точки
digitalWrite(ledPin, LOW);
delay(200); // Интервал между точками
}
}