Загрузка данных


#define SENSOR A0

#define LED_RED 2     // Все выключено
#define LED_GREEN 3   // Горит 1 половина
#define LED_YELLOW 4  // Горят обе половины

// Пороговые значения (настраиваются по Serial Monitor)
// Значения выше THRESHOLD_OFF, но ниже THRESHOLD_HALF -> 1 половина
// Значения выше THRESHOLD_HALF -> обе половины
int thresholdOff = 300;   // Порог темноты (все выключено)
int thresholdHalf = 650;  // Порог одной половины освещения

void setup() {
  Serial.begin(9600);
  
  pinMode(LED_RED, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_YELLOW, OUTPUT);
  pinMode(SENSOR, INPUT);
}

void loop() {
  // Считываем значение напряжения с фоторезистора
  int lightLevel = analogRead(SENSOR);
  
  // Отправляем значение в Монитор порта для калибровки
  Serial.print("Текущая освещенность: ");
  Serial.println(lightLevel);

  // Логика управления светодиодами
  if (lightLevel <= thresholdOff) {
    // 1. Свет выключен -> КРАСНЫЙ
    digitalWrite(LED_RED, HIGH);
    digitalWrite(LED_GREEN, LOW);
    digitalWrite(LED_YELLOW, LOW);
  } 
  else if (lightLevel > thresholdOff && lightLevel <= thresholdHalf) {
    // 2. Включена одна половина -> ЗЕЛЕНЫЙ
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_GREEN, HIGH);
    digitalWrite(LED_YELLOW, LOW);
  } 
  else {
    // 3. Включены обе половины -> ЖЕЛТЫЙ
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_GREEN, LOW);
    digitalWrite(LED_YELLOW, HIGH);
  }

  delay(200); // Пауза для сглаживания и стабильного чтения
}