int photoPin = A0; // Фоторезистор подключен к аналоговому пину A0
int ledPin = 9; // Светодиод
int lightValue = 0;
int porog = 500;
int cshet = 0;
int led = LOW;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
// Считываем уровень света с фоторезистора (значения от 0 до 1023)
lightValue = analogRead(photoPin);
Serial.print("Light: ");
Serial.println(lightValue);
// Предусматриваем 3 уровня освещенности:
// (Уровни могут зависеть от освещения в комнате, их можно подстроить)
if (lightValue < 300) {
porog = 50; // 1 уровень (темно) — быстрое мигание
}
else if (lightValue >= 300 && lightValue < 700) {
porog = 150; // 2 уровень (полумрак/средне) — средняя частота
}
else {
porog = 400; // 3 уровень (светло) — редкое мигание
}
// Организация мигания БЕЗ использования delay()
if (porog > 0) {
cshet++;
if (cshet >= porog) {
cshet = 0;
// Переключение состояния светодиода через if / else
if (led == LOW) {
led = HIGH;
} else {
led = LOW;
}
digitalWrite(ledPin, led);
}
} else {
digitalWrite(ledPin, LOW);
led = LOW;
}
}