-
Notifications
You must be signed in to change notification settings - Fork 0
/
PIR_Led
42 lines (35 loc) · 1.94 KB
/
PIR_Led
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#define SENSOR 1 //на этом пине сенсор
#define LED_STRIP 2 // на этом пине лента
int Delay = 5000; //задержка в милисекундах
bool lightOn = false; //флаг указывающий включен ли свет, начальное положение - выключен
bool motionDetect; // флаг указывающий сработал ли сенсор
void setup() //настройка входов-выходов
{
pinMode(LED_STRIP, OUTPUT); //устанавливаем что это выход
pinMode(SENSOR, INPUT); //устанавливаем что это вход
}
void loop ()
{
motionDetect = digitalRead (sensor); //читаем что на входе-сенсоре и присваиваем флагу, да или нет
// если движение есть и свет выключен то плавно зажигаем
if (motionDetect = true && lightOn = false ) {
for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
analogWrite(LED_STRIP, fadeValue);
delay(30); //задержка для плавности включения
}
}
if (fadeValue = 255) {
bool lightOn = true; //если яркость набрана максимальная взводим флаг что свет зажжен
delay(Delay); // и выдерживаем задержку когда свет просто горит не реагируя на датчик
}
//проверяем снова есть ли движение и включен ли свет, если движения нет, а свет горит, то плавно гасим
if (motionDetect = false && lightOn = true ){
for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
analogWrite(LED_STRIP, fadeValue);
delay(30); //задержка для плавности включения
}
}
if (fadeValue <=0) {
bool lightOn = false; // отмечаем флаг что свет погас
}
}