Домой / Осваиваем ПК / Умная лампа с помощью Arduino. Схема датчика освещения на фоторезисторе и реле

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

Добрый день или ночь, у кого как. Сегодня я поделюсь инструкцией по изготовления небольшого ночника. Основой послужит – матовый рассеиватель от сгоревшей светодиодной лампочки. А внутрь мы поместим Arduino Pro Mini и светодиоды SW2812. Я выложу только один скетч, но вариантов цветов или переливаний может быть очень много. Начнем, как всегда, со списка необходимого:

Рассеиватель от светодиодной ламы, цоколь Е27
- Блок питания на 5В
- Arduino Pro Mini 5V
- USB-TTL (для заливки скетча в ардуино)
- Светодиоды WS2812
- Тонкий пластик
- Двусторонний скотч
- Зарядка от телефона не нужная, но рабочая
- Паяльник
- Провода
- Припой, канифоль
- Термоклеевой пистолет

Шаг 1. Изготовление корпуса.
Для начал нам понадобиться добыть рассеиватель. Берем светодиодную лампочку, с цоколем Е27. Лучше, конечно, брать уже отработавшую свое лампочку:

Одной рукой держим лампочку за цоколь и пластиковый корпус, другой - берем за рассеиватель, и надламываем лампочку. Рассеиватель должен легко отойти от корпуса, так как держится только на герметике:

Теперь нам надо изготовить основу, к которой мы будем приклеивать светодиоды. Для этого берем тонкий пластик, подойдет обложка от пластикового скоросшивателя. Теперь замеряем внутренний диаметр посадочного отверстия рассеивателя, а также надо измерить глубину рассеивателя. Переходим к изготовлению основы. Она будет в форме цилиндра, диаметр которого должен быть на 5 мм меньше внутреннего диаметра посадочного отверстия рассеивателя. А высота меньше на 7 мм глубины рассеивателя. Выглядеть должно примерно так:

На этом пока закончим.

Шаг 2. Электрика.
Как я уже говорил ранее, контролером будет Arduino Pro Mini, версия, работающая от 5 вольт. Светодиодная лента подключается вполне просто, для этого необходимо контакт +5V подключить к плюсу от блока питания на 5 вольт, а GND – к минусу. Контакт DIN (вход) соединить с pin 6 Arduino. Порт подключения ленты можно поменять на любой удобный в скетче. Arduino будем питать от того же блока питания. Так как блок питания будем использовать стабилизированный, соединяем плюс от блока питания с контактом 5V на Arduino. Минус блока питания должен быть подключен к GND Arduino. Схема такая:

Итак, один светодиод, при максимальной яркости всех трех цветов, потребляет 60 мА. У меня поместилось 25, значит получается:

25 х 60 mA = 1500 mA = 1.5 А

То есть, мне нужен блок питания 5 В, 1.5 А. Это максимальный показатель силы тока, который будет при включение все светодиодов в режим максимальной яркости всех трех цветов.

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

Отрезаем штекер от нее и припаиваем провода напрямую к ленте, не забудьте проверить полярность тестером или мультиметром. Также следует сделать выводы проводов для питания Arduino. И сигнальный провод от ленты к Arduino.

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

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

Если у вас получилось так же, не расстраивайтесь, просто обрежьте свисающую по краям ленту и припаяйте провода напрямую к светодиодам. Контакты WS2812:

Обратить внимание, светодиодная лента на WS2812B имеет направление, с одной стороны (начало или вход) у нее контакты DIN, +5V, GND. А с другой стороны (конец или выход) DO, +5V, GND. Если припаиваете на прямую к светодиодам, смотри на расположение контактов, ориентируясь на ключ (срез угла). Для упрощения монтажа, на ленте нарисованы стрелки, указывающие на направление. Особое внимание уделите переходу на верх, получается очень резкий изгиб, велика вероятность переломить ленту. У меня получилось вот так:


Сверху припаивался на прямую к светодиодам:

А посередине, вторым уровнем, еще пару светодиодов:

И для надежности, заливаем провода термоклеем:

Теперь вставляем наш цилиндр со светодиодами внутрь шара от лампочки. Используя термоклей, фиксируем цилиндр внутри шара по кругу:

Не забудьте проделать прорезь для вывода наружу провода питания:

Шаг 3. Подготовка среду и прошивка.
Для загрузки скетча (или прошивки) будем использовать Arduino IDE. Скачиваем с официального последнюю версию и устанавливаем ее.

Чтобы это сделать, вначале скачиваем архив. Затем распаковываем этот архив. И перемещаем распакованные файлы в папку «libraries», которая находится в папке с установленной Arduino IDE. Можно сделать проще. Запускаем Arduino IDE. Не распаковываем скачанный архив. Прямо в среде Arduino IDE выбираем пункт меню Скетч – Подключить библиотеку. В самом верху выпадающего списка выбираем пункт «Добавить.Zip библиотеку». Должно появиться диалоговое окно. Далее в нем выбираем нашу библиотеку, Adafruit_NeoPixel-master. Немного стоит подождать. Снова открываем пункт меню Скетч – Подключить библиотеку. Теперь в самом низу выпадающего списка вы увидите новую библиотеку. Перезагрузив Arduino IDE, библиотеку можно использовать.

Скачиваем мой скетч:

Осталось залить скетч в Arduino. Мы используем Arduino Pro Mini. У этой версии популярной Arduino нет распаянного на плате USB-TTL чипа. Поэтому для связи с компьютером и заливки скетча необходимо использовать отдельный USB-TTL. Подключение по следующей схеме:

Arduino – USB-TTL
RX (P0) – TX
TX (P1) – RX
GND – GND

Питание USB-TTL будет от USB порта компьютера. Arduino можно запитать от USB-TLL или использовать внешний источник питания. Главное, чтобы контакт GND USB-TTL и Arduino были соединены. Чаще всего в продаже попадаются USB-TTL без вывода контакта DTR. Контакт DTR необходимо соединить с Reset Arduino для осуществления автоматической перезагрузки перед загрузкой скетча. Если у вас, как и у меня, такого вывод нет, перезагрузку перед заливкой скетча необходимо выполнять вручную. Действуем так: подключаем всем по схеме, описанной выше, открываем Arduino IDE, открываем скаченный вами скетче, нажимает кнопку – Загрузка – и смотрим что написано внизу. Пока идет «компиляция», ничего не делаем, просто ждем, когда появится надпись «загрузка» нам необходимо нажать кнопку Reset на Arduino. Если не удобно нажимать кнопку на плате, можно вывести кнопку, подключенную к GND и Reset. Или просто вывести провода к тем же выводам и замыкать их в нужный момент.

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

Всем привет! Я - Артем Лужецкий и я буду вести серию статей посвященных "Умному дому" и IoT (англ. - Internet of Things, интернет вещей). Мы познакомимся с удивительными способами создания домашней сети из разнообразных устройств, которые будут работать либо автономно, либо при помощи человека. Ну что? Приступим!

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

Итак, для начала нам потребуются два микроконтроллера, которые мы будем использовать: и .

Arduino UNO

Я думаю не надо знакомить вас с этой платой, она очень популярна среди начинающих и поклонников DIY. Скажу только то, что способности этой платы ограничены и UNO не может работать с протоколом https, не хватает вычислительной мощности микроконтроллера ATmega328P, поэтому, когда нам придется работать с микроконтроллером и протоколом https, то мы будем программировать ESP8266.

ESP8266

Я буду работать с Troyka-модулем ESP8266 от компании "Амперка", но можно спокойно использовать и обычный модуль ESP 8266, они практически не имеют отличий, главное при подключении посмотреть значение пинов и запомнить, что ESP работает по 3,3 вольтовой логике, поэтому нужно либо подключать через 5 вольт, но подключить в схему стабилизатор напряжения, либо просто использовать пин со подачей напряжения в 3,3 вольта.

Данный микроконтроллер не самый мощный в серии компании Espressif на общем рынке, но он один из самых дешевых и распространенных. Он будет основой наших IoT разработок.

Дополнительные детали

Также нам потребуется для создания всех опытов:

  1. Светодиоды
  2. Фоторезистор
  3. Термистор
  4. Ультразвуковой дальномер
  5. Пьезодинамик
  6. Мини Сервопривод
  7. ИК - датчик
  8. ИК - пульт

Не нужно иметь все эти модули, чтобы работать с IoT, но для того, чтобы сделать все будущие проекты, нам со временем придется приобрести их все.

Программы и библиотеки

Первое - скачайте библиотеку, которая поможет вам намного проще работать в Arduino IDE, если вы используйте ESP8266 - http://wiki.amperka.ru/_media/iot-m:iot-m-libs.zip

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

  1. www.dweet.io
  2. maker.ifttt.com
  3. narodmon.ru
  4. и т.д.

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

  1. OpenHab
  2. Blink
  3. и т.д.

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

2. Делаем "умную лампу"

Я уже заставил вас скучать? Сделаем самую простую умную лампу, которая будет включатся, если в комнате темно.

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

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

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

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

Общая электрическая схема должны будет выглядеть так:

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

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

3. Код для "умной лампы"

Теперь напишем код, по которому будем передавать ток на реле, если в комнате будет темно.

#define SHINE 5 //ПИН НА ФОТОРЕЗИСТОРЕ #define REL 13 //ПИН НА РЕЛЕ void setup(){ pinMode(SHINE, INPUT); pinMode(REL, OUTPUT); Serial.begin(9600); } void loop(){ if (analogRead(SHINE)<600) // Если света в комнате мало, то включаем лампу { digitalWrite(REL, HIGH) } else // если много, то выключаем { digitalWrite(REL, LOW); } Serial.printIn(analogRead(SHINE)); selay(500); }

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

В следующий раз мы попробуем усложнить код и добавить еще пару функций. До скорой встречи!

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

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

Напряжение с делителя, мы подаем на вход АЦП Arduino. Там мы сравниваем полученное значение с определенным порогом и включаем или выключаем светильник.

Принципиальная схема делителя показана ниже. Когда освещенность увеличивается, сопротивление фоторезистора падает и соответственно на выходе делителя (и входе АЦП) напряжение увеличивается. Когда освещенность падает все наоборот.

На фото ниже, показана собранная схема на макетной плате. Напряжения 0В и 5В берутся с Arduino. Ножка А0 используется как вход АЦП.

Ниже показан скетч Arduino. В данном уроке мы просто включаем и выключаем LED, который встроен в плату Arduino. Более яркий LED-светодиод, вы можете подключить к ноге 13 (через резистор ~220 Ом). Если будете подключать более мощную нагрузку, такую как лампу накаливания, то ее следует подключать через реле или тиристор.

В коде программы есть закомментированные участки, они служат для отладки. Можно будет контролировать значение АЦП (от 0 до 1024). Также, необходимо в коде изменить значение 500 (порог включения и выключения) на то, которое вы подберете опытным путем, изменяя освещенность.

/* ** Ночник ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // устанавливаем входную ногу для АЦП unsigned int sensorValue = 0; // цифровое значение фоторезистора void setup() { pinMode(13, OUTPUT); Serial.begin(9600); // старт последовательного вывода данных (для тестирования) } void loop() { sensorValue = analogRead(sensorPin); // считываем значение с фоторезистора if(sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

Датчики освещенности (освещения), построенные на базе фоторезисторов, довольно часто используются в реальных ардуино проектах. Они относительно просты, не дороги, их легко найти и купить в любом интернет-магазине. Фоторезистор ардуино позволяет контролировать уровень освещенности и реагировать на его изменение. В этой статье мы рассмотрим, что такое фоторезистор, как работает датчик освещенности на его основе, как правильно подключить датчик в платам 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 фоторезистор используется как датчик освещения. Получая от него информацию, плата может включать или выключать реле, запускать двигатели, отсылать сообщения. Естественно, при этом мы должны правильно подключить датчик.

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

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

Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере – АО). К этой же ноге подключаем резистор 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 < 300) { 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); // Меняем яркость }

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

Int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);

Схема датчика освещения на фоторезисторе и реле

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

#define PIN_RELAY 10 #define PIN_PHOTO_SENSOR A0 void setup() { pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); if (val < 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }

Заключение

Проекты с применением датчика освещенности на базе фоторезистора достаточно просты и эффектны. Вы можете реализовать множество интересных проектов, при этом стоимость оборудования будет не высока. Подключение фоторезистора осуществляется по схеме делителя напряжения с дополнительным сопротивлением. Датчик подключается к аналоговому порту для измерения различных значений уровня освещенности или к цифровому, если нам важен лишь факт наступления темноты. В скетче мы просто считываем данные с аналогового (или цифрового) порта и принимаем решение, как реагировать на изменения. Будем надеяться, что теперь в ваших проектах появятся и такие вот простейшие «глаза».