Обзор
В этом уроке вы узнаете, как измерить интенсивность света с помощью аналогового
входа. Вы будете использовать урок 25 и
использовать уровень освещенности, чтобы контролировать количество светодиодов,
которые будут гореть.
Необходимые компоненты:
Описание компонентов
Фоторезистор:
В качестве фотоэлемента будем использовать фоторезистор. Как следует из
названия, эти компоненты действуют точно так же, как резистор, за исключением
того, что сопротивление изменяется в ответ на то, сколько света падает на них.
Этот имеет сопротивление около 50 ком в почти полной темноте и 500 Ом при ярком
свете. Чтобы преобразовать это изменяющееся значение сопротивления во что-то,
что мы можем подать на Аналоговый вход платы MEGA2560 R3, он должен быть
преобразован в напряжение. Самый простой способ сделать это - объединить его с
фиксированным резистором.
Резистор и фотоэлемент вместе ведут себя как переменное сопротивление. Когда свет
очень яркий, то сопротивление фотоэлемента очень низкое по сравнению с
резистором фиксированного значения, и поэтому это похоже на то, как если бы
переменный резистор был повернут на максимум. Когда фотоэлемент находится в
тусклом свете, сопротивление становится больше фиксированного резистор, и это
похоже на то, как если бы переменный резистор был повернут в сторону GND.
Загрузите эскиз, приведенный в следующем разделе, и попробуйте накрыть
фотоэлемент пальцем, а затем подержать его рядом с источником света.
Принципиальная схема:
Монтажная схема:
Код:
После подключения, пожалуйста, откройте программу в папке с кодом
Урок 26 и нажмите кнопку Загрузить, чтобы загрузить
программу. См. Урок 2 для
получения подробной информации о загрузке программы при наличии ошибок.
Первое, что следует отметить, это то, что мы изменили название аналогового
пина на"lightPin", а не "potPin", поскольку у нас больше нет подключенного
переменного резистора. Единственное другое существенное изменение в эскизе -
это строка, которая вычисляет, сколько светодиодов нужно зажечь:
int numLEDSLit = reading / 57; // all LEDs lit at 1k
На этот раз мы делим исходное значение на 57, а не на 114. Другими словами,
мы делим его наполовину так же, как мы сделали с переменным резистором, чтобы
разделить его на девять зон. Этот дополнительный фактор должен учитывать
фиксированный резистор 1 ком. Это означает, что когда фотоэлемент имеет
сопротивление 1 ком (такое же, как и фиксированный резистор), исходное значение
будет равно 1023/2 = 511. Это будет приравниваться ко всем горящим светодиодам,
а затем бит (numLEDSLit) будет равен 8.
Пример:
Тема форума:
http://msevm.com/forum/index.php?topic=9893
|