#define LED_PIN 13
// Интервалы времени в миллисекундах
const unsigned long INTERVAL_ON = 500; // 500 мс включен
const unsigned long INTERVAL_OFF = 500; // 500 мс выключен
// Переменные для хранения состояния
unsigned long previousMillis = 0; // Время последнего переключения
bool ledState = LOW; // Текущее состояние светодиода
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, ledState);
}
void loop() {
unsigned long currentMillis = millis();
// Определяем, какой интервал использовать в зависимости от состояния
unsigned long interval = (ledState == HIGH) ? INTERVAL_ON : INTERVAL_OFF;
// Проверяем, не прошёл ли нужный интервал
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis; // Сохраняем время последнего переключения
// Переключаем состояние светодиода
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
}
// Здесь можно выполнять другой код, который не будет блокироваться
// Например, чтение датчиков, обработка данных и т.д.
}