Два порога вместо одного (гистерезис)

На границе света свет не «дребезжит»: включение и выключение разведены.

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

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

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

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

Скетч

// С одним порогом лампа мигает, когда освещённость ровно на границе.
// Лечится двумя порогами: включаем ниже 350, выключаем выше 450.
const int ON_BELOW = 350;
const int OFF_ABOVE = 450;

bool lampOn = false;

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

void loop() {
  int light = analogRead(A0);

  if (!lampOn && light < ON_BELOW) lampOn = true;
  if (lampOn && light > OFF_ABOVE) lampOn = false;

  digitalWrite(8, lampOn ? HIGH : LOW);
  Serial.print(light);
  Serial.println(lampOn ? "  лампа горит" : "  лампа не горит");
  delay(200);
}

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

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

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

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

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

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

Открыть «Два порога вместо одного (гистерезис)» в симуляторе