Подсветка сама держит яркость

Чем темнее вокруг, тем ярче светодиод: обратная зависимость плюс сглаживание.

Продвинутый уровень Arduino Uno C++
Схема подключения: Подсветка сама держит яркость
Схема в симуляторе. Нажмите «Открыть в симуляторе», чтобы запустить её и поменять.

Что понадобится

Как подключить

ОткудаКуда
Arduino Uno5V→ФоторезисторVCC
Arduino UnoGND→ФоторезисторGND
Arduino UnoA0→ФоторезисторAO
Arduino UnoD9→Резистор1
Резистор2→СветодиодA
СветодиодC→Arduino UnoGND

Скетч

// Яркость светодиода обратна освещённости, а показания сглажены
// экспоненциальным фильтром: свет не прыгает от случайной тени.
float smooth = 0;
bool first = true;

void setup() {
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int raw = analogRead(A0);
  if (first) { smooth = raw; first = false; }
  smooth = smooth * 0.8 + raw * 0.2;      // фильтр: 80 % старого, 20 % нового

  int duty = map((int)smooth, 0, 1023, 255, 0);   // темно → ярко
  duty = constrain(duty, 0, 255);
  analogWrite(9, duty);

  Serial.print("свет ");
  Serial.print((int)smooth);
  Serial.print("  ШИМ ");
  Serial.println(duty);
  delay(120);
}

Коротко о детали: Фоторезистор

Модуль с фоторезистором: его сопротивление падает тем сильнее, чем ярче свет. Аналоговый выход даёт напряжение, пропорциональное освещённости, цифровой — готовый порог. Освещённость в люксах задаётся двойным кликом по компоненту.

Распиновка и все примеры →

Ещё примеры с деталью «Фоторезистор»

Попробуйте сами

Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.

Открыть «Подсветка сама держит яркость» в симуляторе