Подключение модуля фоторезистора к ардуино. Схема фотореле и правила подключения

Обновление

Подключение модуля фоторезистора к ардуино. Схема фотореле и правила подключения

Новые статьи

● Проект 13: Фоторезистор. Обрабатываем освещённость, зажигая или гася светодиоды

В этом эксперименте мы познакомимся с аналоговым датчиком для измерения освещенности – фоторезистором (рис. 13.1).

Необходимые компоненты:

Распространённое использование фоторезистора – измерение освещённости. В темноте его сопротивление довольно велико. Когда на фоторезистор попадает свет, сопротивление падает пропорционально освещенности. Схема подключения фоторезистора к Arduino показана на рис. 13.2. Для измерения освещённости необходимо собрать делитель напряжения, в котором верхнее плечо будет представлено фоторезистором, нижнее – обычным резистором достаточно большого номинала. Будем использовать резистор 10 кОм. Среднее плечо делителя подключаем к аналоговому входу A0 Arduino.

Рис. 13.2. Схема подключения фоторезистора к Arduino

Напишем скетч чтения аналоговых данных и отправки их в последовательный порт. Содержимое скетча показано в листинге 13.1.

Int
light; // переменная для хранения данных фоторезистора

void
setup
()

{
Serial.begin(9600
);
}
void
loop
()

{
light = analogRead(0
);
Serial.println(light);
delay(100
);
}

Порядок подключения:

1. Подключаем фоторезистор по схеме на рис. 13.2.
2. Загружаем в плату Arduino скетч из листинга 13.1.
3. Регулируем рукой освещенность фоторезистора и наблюдаем вывод в последовательный порт изменяющихся значений, запоминаем показания при полной освещенности помещения и при полном перекрывании светового потока.

Теперь создадим индикатор освещенности с помощью светодиодного ряда из 8 светодиодов. Количество горящих светодиодов пропорционально текущей освещенности. Собираем светодиоды по схеме на рис. 13.3, используя ограничительные резисторы номиналом 220 Ом.

Рис. 13.3. Схема подключения фоторезистора и светодиодов к Arduino

Содержимое скетча для отображения текущей освещенности на линейке светодиодов показано в листинге 13.2.

// Контакт подключения светодиодов

const
int
leds={3
,4
,5
,6
,7
,8
,9
,10
};
const
int
LIGHT=A0; // Контакт A0 для входа фоторезистора

const
int
MIN_LIGHT=200
; // Нижний порог освещенности

const
int
MAX_LIGHT=900
; // верхний порог освещенности

// Переменная для хранения данных фоторезистора

int
val = 0
;
void
setup
()

{
// Сконфигурировать контакты светодиодов как выход

for
(int
i=0
;ivoid
loop
()

{
val = analogRead(LIGHT); // Чтение показаний фоторезистора

// Применение функции map()

val = map
(val, MIN_LIGHT, MAX_LIGHT, 8
, 0
);
// ограничиваем, чтобы не превысило границ

val = constrain(val, 0
, 8
);
// зажечь кол-во светодиодов, пропорциональное освещенности,

// остальные потушить

for
(int
i=1
;i=val) // зажечь светодиоды

digitalWrite(leds,HIGH);
else
// потушить светодиоды

digitalWrite(leds,LOW);
}
delay(1000
); // пауза перед следующим измерением

}

Порядок подключения:

1. Подключаем фоторезистор и светодиоды по схеме на рис. 13.3.
2. Загружаем в плату Arduino скетч из листинга 13.2.
3. Регулируем рукой освещенность фоторезистора и по количеству горящих светодиодов определяем текущий уровень освещенности (рис. 13.3).

Нижний и верхний пределы освещенности мы берем из запомненных значений при проведении эксперимента по предыдущему скетчу (листинг 13.1). Промежуточное значение освещенности мы масштабируем на 8 значений (8 светодиодов) и зажигаем количество светодиодов пропорциональное значению между нижней и верхней границами.

Листинги программ

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

У нас 8 светодиодов, они установлены так, что слева короткая ножка это минус, справа длинная ножка это плюс. Так они все установлены, в схеме использован один резистор на 10 килоом, я его брал из набора Arduino Kit
, и используется 8 подключенных к плюсовому контакту светодиода сопротивлений на 220ом, так оно подключено.

Использовано 8 чёрных проводов это минусовые, и зелёные 8 штук – пины управления от двенадцатого до пятого. В процессе отладки крайний черный заменил на зеленый, но об этом позже.

Фоторезистор здесь, рядом с ним резистор на 10килоом, синяя перемычка идёт к минусу, оранжевый подключается одним концом в среднюю точку, между резистором и фоторезистором, другим концом в плату Arduino
, в А0 (аналоговый пин).

Красный это 5 Вольт, и вот через этот делитель напряжения будет работать схема, будут загораться светодиоды, в зависимости от уровня освещенности. Я поправлю светодиоды, достаточно шаткая получилось конструкция. К модели ещё вернемся, а сейчас займемся написанием скетча.

Создадим новый проект, и приступим к написанию, объявим константы, несколько штук, пусть будет тип int
, это будет количество выводов, поскольку светодиодов в схеме 8 штук. Так будет указано, сколько светодиодов использовали в схеме.

const int NbrLEDs = 8;

Сделаем массив с номерами пинов, задействуем 5 6 7 8 9 10 11 12 цифровые разъёмы, укажем номер пина на котором снимается уровень освещённости, объявим переменную для фоторезистора, значение сенсора и также объявим уровень освещённости, чтобы можно было делать разбивку их по пинам.

const int ledPins = { 5, 6, 7, 8, 9, 10, 11, 12};
const int photocellPin = A0;
int sensorValue = 0;
int ledLevel = 0;

В подпрограмме setup напишем цикл, в котором чтобы не присваивать каждому значению исходящего через pinMode , пройдём в цикле по всем пинам присвоим им значения в pinmode из массива и каждому пину присвоим значение OUTPUT .

void setup() {
for (int led = 0; led

В принципе можно было этого не делать, можно было указать pinmode и дальше писать пять, потом 6, и так далее, но это очень долго и это дикий варварский метод. Поэтому в цикле за один проход пройдем все пины.

pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

В loop получим значение сенсора, считав через analogRead из пина A0 .

Далее, сделаем разбивку значение сенсор, используя функцию map получаем значение сенсора, и исходя из уровня освещенности, при чувствительности от 300
до максимального значения 1023
, будет распределяться по 8 пинам, которая объявлены выше.

Смотрите так же видео Фоторезистор и светодиоды на Arduino – (видео) , ссылка откроется в новой вкладке.

Далее в цикле пройдем все пины, так добавил скобки, начиная с первого светодиода, если счетчик не больше 8 будем прибавлять, и дальше проверим по условию, что если номер светодиода меньше уровня освещения, подадим на этот светодиод и все предыдущие напряжение через константу HIGH .

Если же нет, запишем в него отсутствие напряжения, и светодиод не будет гореть.

void loop() {
sensorValue = analogRead(photocellPin);
ledLevel = map(sensorValue, 300, 1023, 0, NbrLEDs);
for (int led = 0; led

Выравниваем код через комбинацию клавиш ctrl+T
и давайте теперь посмотрим, что получится, запустим на проверку, сохраним скетч.

Так компиляция скетча, теперь его загрузим на Arduino
. Вернемся к схеме, на данный момент один светодиод при изменении освещение не горит из-за плохого контакта.

Сейчас исправлю, не будем его трогать, если я выключу освещение, то погаснут все светодиоды. Если же я буду подсвечивать фоторезистор фонариком, плавно добавляя освещения, то будут гореть практически все светодиоды, ну и соответственно убираю, уменьшая уровень освещённости, меняется число горящих светодиодов.

Если же я включу полностью освещение, горят почти все, в чём проблема с этим светодиодом. Достаточно много потратил на него времени, здесь всё правильно собрано, даже минус пробросил заведомо исправным зеленым проводом, но почему-то он капризничает и не горит.

Давайте теперь вернемся к скетчу и посмотрим что не так. Пример был взят с официального источника, на диске к Arduino
есть такой же код.

В скетче получается распределение освещенности от 300
до 1023
(максимального значения), попытка изменить начальный порог на 0
– никакого результатов не даёт.

Но если распределяем на 8 частей вот это вот всё значение, то тут пригодится калькулятор, получается, либо сопротивление на 10килоом даёт погрешность какую-то, нужно 1023 разделить на 8, получаем практически 128, если брать правильно, то 1024 разделить на 8, это и есть 128.

Теперь нужно от 1023 вычесть 128, поставить сюда значение 895, тогда по логике вещей должно быть всё нормально. Загрузим и посмотрим, что изменится.

void loop() {
sensorValue = analogRead(photocellPin);
ledLevel = map(sensorValue, 0, 895, 0, NbrLEDs);
for (int led = 0; led

Сейчас горят все светодиоды, попробуем перекрыть освещенность, или давайте отключим…

Стартовое значение всё равно надо вернуть 300, поскольку подается на эти три первых светодиода питания. Давайте изменим в скетче 0 на 300, как было, было это сделано не просто так, перезалью скетч и посмотрим, что изменится на этот раз…

void loop() {
sensorValue = analogRead(photocellPin);
ledLevel = map(sensorValue, 300, 895, 0, NbrLEDs);
for (int led = 0; led

Теперь горит первый светодиод, при минимальном освещении, если включить все, а там у меня 1800 люксов, из двух метров светодиодной ленты, горят все, как и должно.

При выключении фоторезистор ловит остаточное освещение в помещении, горит люстра, не полная тьма, и он срабатывает. Но если подсвечивать фонариком, подавая плавно свет на фоторезистор, схема работает правильно.

Если вырубить свет полностью, посмотрим, что получится в полной темноте. Как видите, при полном отсутствии света, фоторезистор реагирует правильно, светодиоды загораются постепенно, по мере увеличения освещенности. При включенном свете горят все. Такой вот получился скетч, с лайфхаком – подгонка чувствительности фоторезистора, под свои нужды.

Датчики освещенности (освещения), построенные на базе фоторезисторов, довольно часто используются в реальных Arduino проектах. Они относительно просты, не дороги, их легко найти и купить в любом интернет-магазине.

Фоторезистор Arduino позволяет контролировать уровень освещенности и реагировать на его изменение. В этой статье мы рассмотрим, что такое фоторезистор, как работает датчик освещенности на его основе, как правильно подключить датчик в платам Arduino.

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

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

Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения – фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически. Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили. Как всегда, сфера применения любых датчиков Arduino ограничена лишь нашей фантазией.

Какие фоторезисторы можно купить в интернет-магазинах

Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Для начала работы с фоторезисторами вполне подойдет самый простой вариант.

Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:

На этом модуле уже есть все необходимые элементы для простого подключения фоторезистора к плате ардуино. В некоторых модулях реализована схема с компаратором и доступен цифровой выход и подстроечный резистор для управления.

Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. – выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 – более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.

Современная маркировка моделей, выпускаемых в России, довольно простая. Первые две буквы – ФотоРезистор, цифры после чёрточки обозначают номер разработки. ФР -765 – фоторезистор, разработка 765. Обычно маркируется прямо на корпусе детали

У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:

  • VT83N1 – 12-100кОм (12K – освещенный, 100K – в темноте)
  • VT93N2 – 48-500кОм (48K – освещенный, 100K – в темноте).

Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали. У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света
нужно понимать, что точность срабатывания – понятие условное. Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.

На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.

Достоинства и недостатки датчика

Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков. К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает – датчик не успевает отреагировать. Если же частота изменения довольно велика – резистор вообще перестанет «видеть», что освещённость меняется.

К плюсам можно отнести простоту и доступность. Прямое изменение сопротивления в зависимости от попадающего на неё света позволяет упростить электрическую схему подключения. Сам фоторезистор очень дешев, входит в состав многочисленных наборов и конструкторов ардуино, поэтому доступен практически любому начинающему ардуинщику.

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

Схема подключения датчика освещенности к Arduino довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения. Одно плечо меняется от уровня освещённости, второе – подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к. сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.

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

Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор
подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере – АО). К этой же ноге подключаем резистор 10 кОм. Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.

Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем. Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения – для предсказуемых значений на аналоговом порту. На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.

Меняя значение резистора мы можем «сдвигать» уровень чувствительности в «темную» и «светлую» сторону. Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.

Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.

Если на плате представлен цифровой выход, то отправляем его на цифровые пины. Если аналоговый – то на аналоговые. В первом случае мы получим сигнал срабатывания – превышения уровня освещенности (порог срабатывания может быть настроен с помощью резистора подстройки). С аналоговых же пинов мы сможем получать величину напряжения, пропорциональную реальному уровню освещенности.

Мы подключили схему с фоторезистором к ардуино, убедились, что все сделали правильно. Теперь осталось запрограммировать контроллер.

Написать скетч для датчика освещенности довольно просто. Нам нужно только снять текущее значение напряжения с того аналогового пина, к которому подключен датчик. Делается это с помощью известной нам всем функции analogRead(). Затем мы можем выполнять какие-то действия, в зависимости от уровня освещенности.

Давайте напишем скетч для датчика освещенности, включающего или выключающего светодиод, подключенный по следующей схеме.

Алгоритм работы следующий:

  • Определяем уровень сигнала с аналогового пина.
  • Сравниваем уровень с пороговым значением. Максимально значение будет соответствовать темноте, минимальное – максимальной освещенности. Пороговое значение выберем равное 300.
  • Если уровень меньше порогового – темно, нужно включать светодиод.
  • Иначе – выключаем светодиод.

#define PIN_LED 13
#define PIN_PHOTO_SENSOR A0
void setup() {
Serial.begin(9600);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int val = analogRead(PIN_PHOTO_SENSOR);
Serial.println(val);
if (val

#define PIN_LED 13

#define PIN_PHOTO_SENSOR A0

void
setup
()
{

Serial
.
begin
(9600
)
;

void
loop
()
{

Serial
.
println
(val
)
;

if
(val

digitalWrite
(PIN_LED
,
LOW
)
;

}
else
{

digitalWrite
(PIN_LED
,
HIGH
)
;

Прикрывая фоторезистор (руками или светонепроницаемым предметом), можем наблюдать включение и выключение светодиода. Изменяя в коде пороговый параметр, можем заставлять включать/выключать лампочку при разном уровне освещения.

При монтаже постарайтесь расположить фоторезистор и светодиод максимально далеко друг от друга, чтобы на датчик освещенности попадало меньше света от яркого светодиода.

Датчик освещенности и плавное изменение яркости подсветки

Можно модифицировать проект так, чтобы в зависимости от уровня освещенности менялась яркость светодиода. В алгоритм мы добавим следующие изменения:

  • Яркость лампочки будем менять через ШИМ, посылая с помощью analogWrite() на пин со светодиодом значения от 0 до 255.
  • Для преобразования цифрового значения уровня освещения от датчика освещенности (от 0 до 1023) в диапазон ШИМ яркости светодиода (от 0 до 255) будем использовать функцию map().

Пример скетча:

#define PIN_LED 10
#define PIN_PHOTO_SENSOR A0
void setup() {
Serial.begin(9600);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int val = analogRead(PIN_PHOTO_SENSOR);
Serial.println(val);
int ledPower = map(val, 0, 1023, 0, 255); // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ.
analogWrite(PIN_LED, ledPower); // Меняем яркость
}

#define PIN_LED 10

#define PIN_PHOTO_SENSOR A0

void
setup
()
{

Serial
.
begin
(9600
)
;

pinMode
(PIN_LED
,
OUTPUT
)
;

void
loop
()
{

int
val
=
analogRead
(PIN_PHOTO_SENSOR
)
;

Serial
.
println
(val
)
;

int
ledPower
=
map
(val
,
0
,
1023
,
0
,
255
)
;
// Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ.

analogWrite
(PIN_LED
,
ledPower
)
;
// Меняем яркость

В случае другого способа подключения, при котором сигнал с аналогового порта пропорционален степени освещенности, надо будет дополнительно «обратить» значение, вычитая его из максимального:

int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);

Датчик света — это прибор, который позволяет нашему устройству оценивать уровень освещенности. Для чего нужен такой датчик? Например, для системы уличного освещения, чтобы включать лампы только тогда, когда на город спускается ночь.
Еще одно применение датчиков света — это детектирование препятствия роботом, путешествующем по лабиринту. Либо детектирование линии роботом следопытом (LineFollower). Но в этих двух случаях, в паре с датчиком света используют специальный источник света.
Мы же начнем с простого примера, и подключим к микроконтроллеру Ардуино Уно один из самых распространенных датчиков — фоторезистор. Как долнжо быть понятно из названия, фоторезистор — это резистор, который меняет свое сопротивление в зависимости от падающего на него света. Выглядит этот радиоэлемент так:
Различаются фоторезисторы по диапазону сопротивления. Например:

  • VT83N1 — 12-100кОм;
  • VT93N2 — 48-500кОм.

Это значит, что в темноте сопротивления фоторезистора равно 12кОм, а при определенной тестовой засветке — 100кОм. Конкретно в случае этих светодиодов, тестовая засветка имела параметры: освещенность -10 Люкс, и цветовая теплота — 2856К.
Кроме фоторезистора, в датчиках света часто используют фотодиод и фототранзистор. Оба выглядят как типичные светодиоды:

1. Подключение

Для того, чтобы подключить наш фоторезистор к Ардуино Уно, необходимо будет вспомнить . Ведь на выходе цепи фоторезистора мы получим некое напряжение, в диапазоне от 0 до 5 Вольт, которое нам потребуется превратить во вполне себе конкретное число, с которым уже будет работать программа микроконтроллера. Держа в уме, что в Ардуино Уно есть 6 аналоговых входов на ногах A0-A5, подключаем фоторезистор по следующей схеме:

Внешний вид макета


Смотрите что получилось. Мы просто напросто построили обычный делитель напряжения, верхнее плечо которого будет меняться в зависимости от уровня света, падающего на фоторезистор. Снимаемое с нижнего плеча напряжение, мы подаем на аналоговый вход, который преобразует его в число от 0 до 1024.

2. Программа

Подключив фоторезистор по нехитрой схеме, начинаем писать программу. Первое что мы сделаем, это выведем необработанный сигнал с аналогового входа в последовательный порт, для того чтобы просто понять, как меняется значение на входе A0. Соответствующая программа имеет вид:
const int pinPhoto = A0;
int raw = 0;
void setup() {
Serial.begin(9600);
pinMode(pinPhoto, INPUT);
}
void loop() {
raw = analogRead(pinPhoto);
Serial.println(raw);
delay(200);
}
Запустив эту программу у нас в хакспейсе, мы получили следующие значения с датчика:


А теперь прикроем датчик рукой:


Видно, что значение сильно меняется. От 830 при прямом попадании света, до 500 в случае затенения (появление преграды на пути света). Зная такое поведение, мы можем численно определить порог срабатывания. Пусть он будет равен, скажем, 600. Не ровно 500, потому что мы хотим обезопасить себя от случайного срабатывания. Вдруг над датчиком пролетит муха — он слегка затенится, и покажет 530.
Наконец, добавим в программу некое действие, которое будет совершаться если уровень освещенности станет ниже заданного порога. Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается такая вот программа:
const int pinPhoto = A0;
const int led = 13;
int raw = 0;
void setup() {
pinMode(pinPhoto, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
raw = analogRead(pinPhoto);
if(raw

  • Фототорезистор: http://ali.ski/5GDvP7
  • Диоды и резисторы: http://fas.st/KK7DwjyF
  • Макетная плата: http://ali.ski/rq8wz8
  • Arduino uno: http://ali.ski/gC_mOa
  • В этом уроке мы подключим к Arduino фоторезистор. который будет управлять встроенным светодиодом.

    Фоторезистор: Сопротивление фоторезисторов уменьшается под воздействием света и увеличивается в темноте. Фоторезисторы просты в использовании, но достаточно медленно реагируют на изменение уровня освещенности и имеют весьма низку. точность. Как правило, сопротивление фоторезисторов может варьироваться от 50 Ом при дневном освещении до более чем 10 МОм в темноте.

    Сам фоторезистор мы будем подключать к земле через резистор в 10 кОМ и эту же ножку будем подключать к аналоговому пину Ардуино A0, вторую ножку фоторезистора будем подключать к 5 вольтам ардуино. Все это наглядно в приведено в схеме вначале статьи.

    После правильного подключения фоторезистора к ардуино, нужно скопировать код приведенный ниже, вставить его в программу Arduino ide и загрузить весь этот программный код в ардуино.

    Int PhotosensorPin = A0; //Указываем пин к которому подклюен Фоторезистор
    unsigned int sensorValue = 0; //Объявляем переменную для хранения значений.
    void setup() {
    pinMode(13, OUTPUT);
    Serial.begin(9600);
    }
    void loop() {
    sensorValue = analogRead(PhotosensorPin); //Считываем значения с фоторезистора
    if(sensorValue

    После загрузки программного кода в ардуино, необходимо открыть монитор порта.

    Теперь, если свет падает на фоторезистор, и встроенный светодиод выключен, заслоните фоторезистор рукой, и вы увидите, что в определенный момент светодиод включится! Так же можно посмотреть изменения значения с фоторезистора в мониторе порта.

    Демонстрацию работы фоторезистора можно посмотреть в видео ниже.

    Видео:

    Оцените статью
    Добавить комментарий

    два + семь =