Amateur Radio Station R9AL

Обзор

В этом уроке вы узнаете, как измерить интенсивность света с помощью аналогового входа. Вы будете использовать урок 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.

Пример:





Обсуждение на форуме





Copyright © R9AL 2020 Все права защищены

Рейтинг@Mail.ru Яндекс цитирования