Страница 1 из 1

Arduino.Включение светодиода от фоторезистора на некоторое в

Добавлено: Вс дек 15, 2019 22:08:03
JackRoL
Всем доброго времени суток. Работаю на ардуино, нужна помощь. Задача такая: нужно чтобы при закрывании фоторезистора или выключении света светодиод включался на несколько секунд (5-10) и потом выключался. В общем получилось, но отсчет времени идёт от того момента, когда я убираю палец с фоторезистора. И ещё интервал времени до отключения бывает меняется (становится меньше). Вот что получилось:

Код: Выделить всё

int ledPin = 7;
int photoPin = A0;
int ledState = LOW;
long previousMillis = 0; 
long interval = 5000;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(photoPin, INPUT);

}

void loop() {
  if (analogRead (photoPin) >800)
  digitalWrite (ledPin, HIGH);
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis >= interval) {
  digitalWrite (ledPin, LOW);
  previousMillis = currentMillis; 
  if (ledState == HIGH)
      ledState = LOW;
  digitalWrite(ledPin, ledState);
  }


}

Re: Arduino.Включение светодиода от фоторезистора на некотор

Добавлено: Пн дек 16, 2019 23:51:49
BOB51
Снова без схемы!
:evil:
Фоторезистор не генерирует напряжение - он может быть лишь частью делителя, подключенного к источнику +5 вольт.
Помимо прочего характеристики зависят от температуры, а АЦП весьма неплохо отзывается на "сигнал из пальца".
Алгоритм у Вас не соответствует "хотелке".
Должно быть:
запуск
ожидание изменения ответа АЦП
при обнаружении включить индикатор
ждать интервал
гасить индикатор
ожидание возврата фоторезистора в "освещенное" состояние (иначе имеем бесконечный перезапуск при отсутствии освещенности)
и далее по кругу.
8)