Добавить в корзинуПозвонить
Найти в Дзене
KNL Games

Листинг кода к "Arduino № 13 Сигнализация на светодиодах и фоторезисторах."

const int pinRes1 = A4; const int pinRes2 = A2; const int pinLed = 9; const int pinBeep = 12; // Переменные для мигания светодиода bool ledState = LOW;         // Текущее состояние светодиода unsigned long previousMillisLed = 0; // Время последнего изменения состояния светодиода const long intervalLed = 500; // Интервал мигания светодиода (в миллисекундах) // Переменные для прерывистого звучания зуммера bool beepState = LOW;        // Текущее состояние зуммера (LOW - выключен, HIGH - включен) unsigned long previousMillisBeep = 0; // Время последнего изменения состояния зуммера const long intervalBeepOn = 200;  // Время, на которое включается зуммер const long intervalBeepOff = 300; // Время, на которое выключается зуммер void setup(){ pinMode(pinLed, OUTPUT); pinMode(pinBeep, OUTPUT); // Устанавливаем пин зуммера как выход Serial.begin(9600);       // Для отладки (необязательно) } void loop(){ // Считываем значения с аналоговых пинов int valueRes1 = analogRead(pinRes1); int valueRes2 =

const int pinRes1 = A4;

const int pinRes2 = A2;

const int pinLed = 9;

const int pinBeep = 12;

// Переменные для мигания светодиода

bool ledState = LOW;         // Текущее состояние светодиода

unsigned long previousMillisLed = 0; // Время последнего изменения состояния светодиода

const long intervalLed = 500; // Интервал мигания светодиода (в миллисекундах)

// Переменные для прерывистого звучания зуммера

bool beepState = LOW;        // Текущее состояние зуммера (LOW - выключен, HIGH - включен)

unsigned long previousMillisBeep = 0; // Время последнего изменения состояния зуммера

const long intervalBeepOn = 200;  // Время, на которое включается зуммер

const long intervalBeepOff = 300; // Время, на которое выключается зуммер

void setup(){

pinMode(pinLed, OUTPUT);

pinMode(pinBeep, OUTPUT); // Устанавливаем пин зуммера как выход

Serial.begin(9600);       // Для отладки (необязательно)

}

void loop(){

// Считываем значения с аналоговых пинов

int valueRes1 = analogRead(pinRes1);

int valueRes2 = analogRead(pinRes2);

// Если условие выполняется, включаем мигание светодиода и прерывистый звук зуммера

if(valueRes2 >= valueRes1){

// Управление миганием светодиода

unsigned long currentMillis = millis(); // Получаем текущее время

if (currentMillis - previousMillisLed >= intervalLed) {

previousMillisLed = currentMillis; // Сохраняем новое время

ledState = !ledState;             // Инвертируем состояние светодиода

digitalWrite(pinLed, ledState);   // Устанавливаем новое состояние

}

// Управление прерывистым звуком зуммера

// Если зуммер выключен и прошло время intervalBeepOff, включаем его

if (beepState == LOW && currentMillis - previousMillisBeep >= intervalBeepOff) {

previousMillisBeep = currentMillis;

beepState = HIGH;

tone(pinBeep, 2000); // Включаем зуммер на частоте 2000 Гц

}

// Если зуммер включен и прошло время intervalBeepOn, выключаем его

else if (beepState == HIGH && currentMillis - previousMillisBeep >= intervalBeepOn) {

previousMillisBeep = currentMillis;

beepState = LOW;

noTone(pinBeep); // Выключаем зуммер

}

}

// Если условие не выполняется, выключаем светодиод и зуммер

else {

digitalWrite(pinLed, LOW);    // Выключаем светодиод

noTone(pinBeep);              // Выключаем зуммер

ledState = LOW;               // Сбрасываем состояние светодиода

beepState = LOW;              // Сбрасываем состояние зуммера

// Сбрасываем таймеры, чтобы при следующем включении все началось с нуля

previousMillisLed = millis();

previousMillisBeep = millis();

}

}