Измерение продолжительности пикового уровня освещенности с помощью фоторезистора

Я пытаюсь измерить выдержку на старых камерах. По сути, это состоит из:

  1. Свет фонарика на одном конце камеры
  2. поместив фоторезистор на другом конце
  3. срабатывает затвор, который временно пропускает свет от фонарика (временно увеличивая значения фоторезистора)
  4. Регистрация продолжительности повышенного скачка уровня освещенности

То, что у меня есть в настоящее время, регистрирует уровни освещенности, но разброс огромен и, как правило, неверен, поскольку они меняются в зависимости от того, насколько близко находится фонарик к затвору, и обычно регистрирует значения между 400 и 900 мс, что слишком долго (должно быть около 50 мс).

Вот код ключа, который у меня есть на данный момент:

if (shutterbot.opened())
{
    /* Measure length of time it is opened until closure */
    unsigned long previousMillis = millis();

    while(true)
    {
        unsigned long currentMillis = millis();
        unsigned long time_elapsed = currentMillis - previousMillis;

        if (shutterbot.closed())
        {
            finished = true;
            /* Report back to user */
            Serial.println("Shutter speed is: ");
            Serial.println(time_elapsed);
            break;
        }
    }

}

Методы открытия и закрытия в классе shutterbot:

/* If light is 10% higher, set it to start recording */
int Shutterbot::opened()
{
    if (light_level() > 400)
    {
    return true;
    }
    else
    {
    return false;
    }
}

/*
  If light drops to below 10% higher, set it to stop
  recording
 */
 int Shutterbot::closed()
 {
     if (light_level() < 400)
     {
     return true;
     }
     else
     {
     return false;
     }
}

Полный код проекта находится здесь, для тестирования нужны только модуль фоторезистора и arduino uno. Я не уверен, что предоставил достаточно информации, поэтому если есть какие-либо вопросы, пожалуйста, дайте мне знать. Любая помощь будет высоко оценена, и спасибо за чтение.

, 👍0


1 ответ


Лучший ответ:

0

Маловероятно, что фоторезистор можно использовать для измерения времени события с точностью до секунды. Это связано с тем, что электроны в таком устройстве имеют множество проводящих состояний, в которые они переходят при воздействии света и из которых выходят при нахождении в темноте. Электронам требуется время, чтобы войти в эти проводящие зоны и выйти из них. В некоторых случаях это может занять значительную часть секунды. Как описано во 2-м абзаце в разделе Соображения по проектированию на вышеуказанной странице Википедии:

Фоторезисторы также демонстрируют определенную степень задержки между воздействие света и последующее снижение сопротивления, как правило, около 10 миллисекунд. Время задержки при переходе от освещенного к темному среды еще больше, часто до одной секунды. Это свойство делает их непригодными для обнаружения быстро мигающих огней, но иногда используется для сглаживания отклика аудиосигнала сжатие.

,