#define PIN_FHOTO_SENSOR A0 // Фоторезистор подключается к А0 входу
#define PIN_LED 2 //светодиод подключается ко 2 входу
int i=0; //переменная для цикла со счетчиком
int tonePin = 3; // Зумер подключается к 3 выходу
void setup()
{
pinMode(PIN_LED, OUTPUT); //настройка вывода 2 на выход
}
void loop()
{
int val = analogRead(PIN_FHOTO_SENSOR); //Считывается значение с фоторезистора
if (val<300){ // Начинается цикл увеличения выходной частоты звука (для формирования сирены)
for (i=700;i<800;i++){
digitalWrite(PIN_LED, HIGH); //загорается светодиод
tone(tonePin,i); //включается сирена
delay(15);
val = analogRead(PIN_FHOTO_SENSOR); //Считывается значение с фоторезистора
if (val>300){ //Цикл прерывается, если сигнализацию вернули в исходное состояние(закрыли дверь)
break;
}
}
for (i=800;i>700;i--){ //Начинается цикл уменьшения выходной частоты звука
digitalWrite(PIN_LED, HIGH); //загорается светодиод
tone(tonePin,i); //включается сирена
delay(15);
val = analogRead(PIN_FHOTO_SENSOR); //Считывается значение с фоторезистора
if (val>300){ //Цикл прерывается, если сигнализацию вернули в исходное состояние(закрыли дверь)
break;
}
}
} // Отключение сирены (при наличии преграды, которая затмевает источник света)
else {
digitalWrite(PIN_LED, LOW); //гаснет светодиод
noTone(tonePin); //звук сирены останавливается
}
}