Оптични сензори. Фоторезистори в МК схеми. Как да използвате фоторезистори, фотодиоди и фототранзистори Фоторезистор за улично осветление на Arduino

  1. Фоторезист: http://ali.ski/5GDvP7
  2. Диоди и резистори: http://fas.st/KK7DwjyF
  3. Платка за разработка: http://ali.ski/rq8wz8
  4. Arduino uno: http://ali.ski/gC_mOa

В този урок ще свържем фоторезистор към Arduino. който ще управлява вградения светодиод.

Фоторезистор: Съпротивлението на фоторезисторите намалява при излагане на светлина и се увеличава в тъмнина. Фоторезисторите са лесни за използване, но реагират доста бавно на промени в нивата на светлина и имат много ниска ефективност. точност. Обикновено съпротивлението на фоторезисторите може да варира от 50 ома на дневна светлина до повече от 10 мегаома на тъмно.

Ще свържем самия фоторезистор към земята чрез резистор от 10 kOhm и ще свържем същия крак към аналоговия щифт A0 на Arduino, вторият крак на фоторезистора ще бъде свързан към 5-волтовия Arduino. Всичко това е ясно показано на диаграмата в началото на статията.

След като свържете правилно фоторезистора към Arduino, трябва да копирате кода по-долу, да го поставите в програмата Arduino ide и да заредите целия този програмен код в Arduino.

Int PhotosensorPin = A0; //Посочва щифта, към който е свързан фоторезисторът unsigned int sensorValue = 0; //Деклариране на променлива за съхраняване на стойности. void setup() ( pinMode(13, OUTPUT); Serial.begin(9600); ) void loop() (sensorValue = analogRead(PhotosensorPin); // Четене на стойности от фоторезистора if(sensorValue<700) digitalWrite(13, HIGH); //Включаем else digitalWrite(13, LOW); // Выключаем Serial.print(sensorValue, DEC); //Вывод данных с фоторезистора (0-1024) Serial.println(""); delay(500); }

След като заредите програмния код в Arduino, трябва да отворите монитора на порта.

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

Демонстрация как работи фоторезисторът може да се види във видеото по-долу.

Видео:

Сензорът за светлина е устройство, което позволява на нашето устройство да оцени нивото на светлина. Защо е необходим такъв сензор? Например за система за улично осветление, която да включва лампите само когато над града падне нощ. Друго приложение на светлинни сензори е за откриване на препятствия за робот, пътуващ през лабиринт. Или откриване на линия от роботизиран тракер (LineFollower). Но в тези два случая се използва специален източник на светлина заедно със сензор за светлина. Ще започнем с прост пример и ще свържем един от най-често срещаните сензори - фоторезистор - към микроконтролера Arduino Uno. Както подсказва името, фоторезисторът е резистор, който променя съпротивлението си в зависимост от падащата върху него светлина. Този радио елемент изглежда така: Фоторезисторите се различават по диапазон на съпротивление. Например:

  • VT83N1 - 12-100 kOhm;
  • VT93N2 - 48-500 kOhm.
Това означава, че на тъмно съпротивлението на фоторезистора е 12 kOhm, а при определена тестова осветеност е 100 kOhm. Конкретно при тези светодиоди, тестовата осветеност беше със следните параметри: осветеност -10 Lux и топлина на цвета - 2856K. В допълнение към фоторезистора светлинните сензори често използват фотодиод и фототранзистор. И двете изглеждат като типични светодиоди:

1. Връзка

За да свържете нашия фоторезистор към Arduino Uno, ще трябва да запомните. В крайна сметка на изхода на фоторезисторната верига ще получим определено напрежение в диапазона от 0 до 5 волта, което ще трябва да превърнем в много специфично число, с което програмата на микроконтролера вече ще работи. Имайки предвид, че Arduino Uno има 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); ) Изпълнение на тази програма с нас в hackspace получихме следните стойности от сензора:
Сега нека покрием сензора с ръка:
Вижда се, че стойността се променя значително. От 830 при пряка светлина, до 500 при засенчване (поява на препятствие по пътя на светлината). Познавайки това поведение, можем числено да определим прага на задействане. Нека е равно на, да речем, 600. Не точно 500, защото искаме да се предпазим от случайно активиране. Изведнъж над сензора лети муха - тя ще бъде леко засенчена и ще покаже 530. Накрая ще добавим към програмата някакво действие, което ще се извърши, ако нивото на светлината падне под даден праг. Най-простото нещо, което можем да направим, е да запалим стандартния светодиод #13 на Arduino. Резултатът е програма като тази: 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< 600) digitalWrite(led, HIGH); else digitalWrite(led, LOW); delay(200); } Накрываем датчик рукой (или выключаем свет в комнате) — светодиод зажигается. Убираем руку — гаснет. Работает, однако. А теперь представьте, что вы зажигаете не светодиод, а подаете сигнал на реле, которое включает лампу в подъезде вашего дома. Получаеся готовый прибор для экономии электроэнергии. Или ставите такой датчик на робота, и он при наступлении ночи ложится спать вместе с вами 🙂 В общем, как говорил профессор Фарнсворт, у датчика света тысяча и одно применение!

Автоматизирането на захранването с осветление в апартамент, къща или улица се постига чрез използването на фото релета. Ако е конфигуриран правилно, той ще включи светлината, когато стане тъмно и ще се изключи през светлата част на деня. Съвременните устройства съдържат настройка, която ви позволява да настроите спусъка в зависимост от нивото на светлина. Те са неразделна част от системата „умен дом“, като поемат значителна част от отговорностите на собствениците. Веригата на фоторелето съдържа преди всичко резистор, който променя съпротивлението под въздействието на светлина. Лесно е да се сглоби и конфигурира със собствените си ръце.

Принцип на действие

Схемата за свързване на фотореле включва сензор, усилвател и фотопроводник PR1 променя съпротивлението под въздействието на светлина. В същото време се променя големината на електрическия ток, преминаващ през него. Сигналът се усилва от композитен транзистор VT1, VT2 (схема на Дарлингтън) и от него отива към задвижващия механизъм, който е K1.

На тъмно съпротивлението на фотосензора е няколко mOhm. Под въздействието на светлината тя намалява до няколко kOhms. В този случай транзисторите VT1, VT2 се отварят, включвайки реле K1, което управлява веригата на натоварване чрез контакт K1.1. Диодът VD1 не позволява преминаването на ток на самоиндукция, когато релето е изключено.

Въпреки своята простота, схемата на фоторелето е много чувствителна. За да го настроите на необходимото ниво, се използва резистор R1.

Захранващото напрежение се избира според параметрите на релето и е 5-15 V. Токът на намотката не надвишава 50 mA. Ако е необходимо да се увеличи, могат да се използват по-мощни транзистори и релета. Чувствителността на фоторелето се увеличава с увеличаване на захранващото напрежение.

Вместо фоторезистор можете да инсталирате фотодиод. При необходимост от сензор с повишена чувствителност се използват схеми с фототранзистори. Тяхното използване е препоръчително с цел пестене на електроенергия, тъй като минималната граница на реакция на конвенционално устройство е 5 лукса, когато околните обекти все още са различими. Прагът от 2 лукса съответства на дълбок здрач, след което настъпва тъмнина 10 минути по-късно.

Препоръчително е да използвате фотореле дори при ръчно управление на осветлението, тъй като можете да забравите да изключите светлината и сензорът ще се „погрижи“ за това сам. Монтира се лесно, а цената е доста достъпна.

Характеристики на фотоклетките

Изборът на фотореле се определя от следните фактори:

  • чувствителност на фотоклетка;
  • захранващо напрежение;
  • комутационна мощност;
  • външна среда.

Чувствителността се характеризира като отношение на резултантния фототок към външния светлинен поток и се измерва в μA/lm. Зависи от честотата (спектрален) и интензитета на светлината (интегрален). За управление на осветлението в ежедневието е важна последната характеристика, в зависимост от общия светлинен поток.

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

Натоварването на неговите контакти зависи от мощността на лампите, към които е свързано фоторелето. Осветителните фоторелейни вериги могат да осигурят директно превключване на лампите чрез сензорни контакти или чрез стартери при голямо натоварване.

На открито превключвателят за здрач се поставя под запечатан прозрачен капак. Осигурява защита от влага и валежи. При работа в студени периоди се използва отопление.

Фабрично изработени модели

Преди това веригата на фоторелето беше сглобена на ръка. Сега това не е необходимо, тъй като устройствата станаха по-евтини и функционалността се разшири. Те се използват не само за външно или вътрешно осветление, но и за управление на поливането на растенията, вентилационните системи и др.

1. Фото реле FR-2

Фабрично произведените модели се използват широко в устройствата за автоматизация, например за управление на уличното осветление. Често през деня можете да видите светлини, които сте забравили да изключите. С фотосензорите няма нужда от ръчно управление на осветлението.

Индустриално произведената фоторелейна схема fr-2 се използва за автоматично управление на уличното осветление. Реле K1 също е тук. Фоторезисторът FSK-G1 с резистори R4 и R5 е свързан към основата на транзистора VT1.

Захранването се осъществява от еднофазна мрежа 220 V. При слаба осветеност съпротивлението на FSK-G1 е голямо и сигналът, базиран на VT1, не е достатъчен, за да го отвори. Съответно транзисторът VT2 също е затворен. Релето K1 е захранено и работните му контакти са затворени, като лампите остават включени.

Когато осветеността се увеличи до работния праг, съпротивлението на фоторезистора намалява и се отваря, след което релето K1 се изключва, отваряйки веригата за захранване на лампите.

2. Видове фоторелета

Изборът от модели е достатъчно голям, за да можете да изберете правилния:

  • с дистанционен датчик, разположен извън тялото на продукта, към който са свързани 2 проводника;
  • Lux 2 - устройство с висока надеждност и ниво на качество;
  • фото реле с 12 V захранване и товар не по-висок;
  • модул с таймер, монтиран на DIN шина;
  • IEC устройства от местен производител с високо качество и функционалност;
  • AZ 112 - автоматична машина с висока чувствителност;
  • ABB, LPX са надеждни производители на устройства с европейско качество.

Методи за свързване на фото реле

Преди да закупите сензор, трябва да изчислите мощността, консумирана от лампите, и да я вземете с марж от 20%. При значително натоварване веригата на уличното фотореле предвижда допълнителна инсталация на електромагнитен стартер, чиято намотка трябва да се включи през контактите на фоторелето и да превключите товара със захранващи контакти.

Този метод рядко се използва у дома.

Преди монтажа се проверява захранващото напрежение ~220 V. Връзката се осъществява от автоматичен прекъсвач. Фотосензорът е монтиран по такъв начин, че светлината от фенерчето да не пада върху него.

Устройството използва клеми за свързване на проводници, което улеснява монтажа. Ако липсват, се използва съединителна кутия.

Благодарение на използването на микропроцесори, схемата на свързване на фоторелето с други елементи придоби нови функции. Към алгоритъма за действие бяха добавени таймер и сензор за движение.

Удобно е, когато лампите се включват автоматично, когато човек минава по площадка или по градинска пътека. Освен това работата се извършва само на тъмно. Благодарение на използването на таймер, фоторелето не реагира на фарове от преминаващи автомобили.

Най-простата схема на свързване на таймер със сензор за движение е серийна. За скъпи модели са разработени специални програмируеми схеми, които отчитат различни условия на работа.

Фото реле за улично осветление

За да свържете фоторелето, веригата се прилага към тялото му. Можете да го намерите в документацията на устройството.

От устройството излизат три проводника.

  1. Неутрален проводник - общ за лампи и фото релета (червен).
  2. Фаза - свързана към входа на устройството (кафява).
  3. Потенциален проводник за подаване на напрежение от фоторелето към лампите (син).

Устройството работи на принципа на прекъсване на фазите или превключване на фазите. Цветовите маркировки могат да варират от производител до производител. Ако в мрежата има заземяващ проводник, той не е свързан към устройството.

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

Опции с дистанционни сензори се използват, когато електронното съдържание на фоторелето е удобно поставено в контролния панел с други устройства. Тогава няма нужда от самостоятелен монтаж, захранване и поддръжка на височина. Електронният блок се поставя на закрито, а сензорът се изнася навън.

Характеристики на фотореле за улично осветление: диаграма

Когато инсталирате фото реле на открито, трябва да вземете предвид някои фактори.

  1. Наличие на захранващо напрежение и съгласувана мощност на контактите и товара.
  2. Не се допуска инсталирането на устройства в близост до запалими материали и в агресивна среда.
  3. Основата на устройството е разположена отдолу.
  4. Не трябва да има движещи се обекти пред сензора, като клони на дървета.

Проводниците са свързани чрез външна съединителна кутия. Фиксиран е до фоторелето.

Избор на фотореле

  1. Възможността за регулиране на прага на реакция ви позволява да регулирате чувствителността на сензора в зависимост от времето на годината или при облачно време. Резултатът е спестяване на енергия.
  2. При монтаж на фотореле с вграден чувствителен елемент са необходими минимални разходи за труд. Това не изисква специални умения.
  3. Таймерното реле е добре програмируемо за своите нужди и работа в зададен режим. Можете да настроите устройството да се изключва през нощта. Индикацията на корпуса на устройството и управлението с бутони улесняват настройките.

Заключение

Използването на фотореле ви позволява автоматично да контролирате периода на включване на лампата. Сега вече няма нужда да ставате фенерджия. Фоторелейната верига, без човешка намеса, включва светлините по улиците вечер и ги изключва сутрин. Устройствата могат да управляват осветителната система, което увеличава нейния ресурс и улеснява работата.

Сензорите за светлина (осветление), изградени на базата на фоторезистори, често се използват в реални проекти на Arduino. Те са относително прости, не са скъпи и лесно се намират и купуват във всеки онлайн магазин. Фоторезисторът Arduino ви позволява да контролирате нивото на светлината и да реагирате на нейните промени. В тази статия ще разгледаме какво е фоторезистор, как работи светлинен сензор, базиран на него, и как правилно да свържете сензора към платките Arduino.

Фоторезисторът, както подсказва името, е пряко свързан с резисторите, които често се срещат в почти всяка електронна схема. Основната характеристика на конвенционалния резистор е стойността на неговото съпротивление. Напрежението и токът зависят от него, с помощта на резистор задаваме необходимите режими на работа на други компоненти. По правило стойността на съпротивлението на резистора практически не се променя при същите условия на работа.

За разлика от конвенционалния резистор, фоторезисторможе да променя съпротивлението си в зависимост от нивото на околната светлина. Това означава, че параметрите в електронната схема постоянно ще се променят; на първо място, ние се интересуваме от падането на напрежението върху фоторезистора. Като записваме тези промени на напрежението на аналоговите щифтове на Arduino, можем да променим логиката на веригата, като по този начин създаваме устройства, които се адаптират към външни условия.

Фоторезисторите се използват доста активно в голямо разнообразие от системи. Най-често срещаното приложение е уличното осветление. Ако над града падне нощ или се заоблачи, светлините се включват автоматично. Можете да направите икономична крушка за дома от фоторезистор, който се включва не по график, а в зависимост от осветлението. Можете дори да направите система за сигурност, базирана на светлинен сензор, който ще се задейства веднага след отваряне и осветяване на затворен шкаф или сейф. Както винаги, обхватът на приложение на всеки Arduino сензор е ограничен само от нашето въображение.

Какви фоторезистори могат да бъдат закупени в онлайн магазини

Най-популярният и достъпен сензорен вариант на пазара са масово произвежданите модели от китайски компании, клонинги на продукти от производителя VT. Не винаги е възможно да разберете кой и какво точно произвежда този или онзи доставчик, но за да започнете с фоторезистори, най-простият вариант е доста подходящ.

Начинаещ потребител на Arduino може да бъде посъветван да закупи готов фотомодул, който изглежда така:


Този модул вече има всички необходими елементи за лесно свързване на фоторезистор към платката Arduino. Някои модули реализират схема за сравнение и осигуряват цифров изход и регулиращ резистор за управление.

Руски радиолюбител може да бъде посъветван да се обърне към руския PA сензор. Налични в продажба са FR1-3, FR1-4 и др. - са произведени още в съветско време. Но въпреки това FR1-3 е по-точен детайл. От това следва разликата в цената.За FR искат не повече от 400 рубли. FR1-3 ще струва повече от хиляда рубли на брой.

Маркировка на фоторезистор

Съвременното етикетиране на моделите, произведени в Русия, е доста просто. Първите две букви са PhotoResistor, цифрите след тирето показват номера на разработката. FR -765 - фоторезистор, разработка 765. Обикновено се маркира директно върху тялото на частта

VT сензорът има диапазон на съпротивление, посочен в диаграмата за маркиране. Например:

  • VT83N1 - 12-100kOhm (12K – свети, 100K – на тъмно)
  • VT93N2 - 48-500kOhm (48K – осветен, 100K – на тъмно).

Понякога, за да изясни информацията за моделите, продавачът предоставя специален документ от производителя. В допълнение към работните параметри там е посочена и точността на частта. Всички модели имат диапазон на чувствителност във видимата част на спектъра. Събиране светлинен сензорТрябва да разберете, че точността на работа е относително понятие. Дори за модели от един и същ производител, същата партида или една и съща покупка, може да се различава с 50% или повече.

Във фабриката частите са настроени за дължини на вълните, вариращи от червена до зелена светлина. Повечето хора също „виждат“ инфрачервеното лъчение. Особено прецизните части могат дори да открият ултравиолетова светлина.

Предимства и недостатъци на сензора

Основният недостатък на фоторезисторите е спектралната чувствителност. В зависимост от вида на падащата светлина съпротивлението може да варира с няколко порядъка. Недостатъците също включват ниската скорост на реакция при промени в осветеността. Ако светлината мига, сензорът няма време да реагира. Ако честотата на промяна е доста висока, резисторът обикновено ще спре да "вижда", че осветлението се променя.

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

Свързване на фоторезистор към Arduino

В проекти ардуиноФоторезисторът се използва като светлинен сензор. Получавайки информация от него, таблото може да включва и изключва релета, да стартира двигатели и да изпраща съобщения. Естествено, трябва да свържем сензора правилно.

Схемата за свързване на сензора за светлина към Arduino е доста проста. Ако използваме фоторезистор, тогава в схемата на свързване сензорът е изпълнен като делител на напрежение. Едното рамо се променя в зависимост от нивото на осветеност, второто подава напрежение към аналоговия вход. В чипа на контролера това напрежение се преобразува в цифрови данни чрез ADC. защото Когато съпротивлението на сензора намалее, когато светлината го удари, стойността на напрежението, падащо върху него, също ще намалее.

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

Инсталирането на самата платка не трябва да създава никакви затруднения. Тъй като фоторезисторът няма полярност, той може да бъде свързан от всяка страна; може да бъде запоен към платката, свързан с проводници с помощта на платка или използван с обикновени скоби (щипки тип крокодил) за свързване. Източникът на захранване във веригата е самият Arduino. Фоторезисторединият крак е свързан към земята, другият е свързан към платката на ADC (в нашия пример - AO). Към същия крак свързваме резистор от 10 kOhm. Естествено, можете да свържете фоторезистор не само към аналогов щифт A0, но и към всеки друг.

Няколко думи за допълнителния резистор 10 K. Той има две функции в нашата схема: ограничаване на тока във веригата и генериране на необходимото напрежение във веригата с делител. Ограничаването на тока е необходимо в ситуация, при която напълно осветен фоторезистор рязко намалява съпротивлението си. И генерирането на напрежение е за предвидими стойности на аналоговия порт. Всъщност за нормална работа с нашите фоторезистори е достатъчно съпротивление от 1K.

Чрез промяна на стойността на резистора можем да „изместим“ нивото на чувствителност към „тъмната“ и „светлата“ страна. Така че 10 K ще дадат бързо превключване на началото на светлината. В случай на 1K светлинният сензор ще открие по-точно високи нива на светлина.

Ако използвате готов модул за сензор за светлина, връзката ще бъде още по-проста. Свързваме изхода на VCC модула към 5V конектора на платката, GND към земята. Свързваме останалите щифтове към конекторите на Arduino.

Ако платката има цифров изход, тогава го изпращаме към цифрови щифтове. Ако е аналогов, отидете на аналогов. В първия случай ще получим сигнал за задействане - нивото на осветеност е превишено (прагът за задействане може да се регулира с помощта на регулиращ резистор). От аналоговите изводи ще можем да получим стойност на напрежението, пропорционална на действителното ниво на осветеност.

Примерна скица на светлинен сензор върху фоторезистор

Свързахме веригата с фоторезистора към Arduino и се уверихме, че всичко е направено правилно. Сега остава само да програмирате контролера.

Написването на скица за светлинен сензор е доста просто. Трябва само да премахнем текущата стойност на напрежението от аналоговия щифт, към който е свързан сензорът. Това се прави с помощта на функцията 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 ( вал< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

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

Когато инсталирате, опитайте се да поставите фоторезистора и светодиода възможно най-далече един от друг, така че по-малко светлина от яркия светодиод да пада върху сензора за светлина.

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

Можете да промените проекта, така че яркостта на светодиода да се променя в зависимост от нивото на осветеност. Ще добавим следните промени в алгоритъма:

  • Ще променим яркостта на електрическата крушка чрез PWM, изпращайки стойности от 0 до 255 към щифта с LED с помощта на analogWrite().
  • За да преобразуваме цифровата стойност на нивото на осветеност от сензора за светлина (от 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 сигнала. Колкото по-ниска е стойността на осветеност, толкова по-малко мощност трябва да подадем към светодиода чрез PWM. analogWrite(PIN_LED, ledPower) ; // Промяна на яркостта)

В случай на друг метод на свързване, при който сигналът от аналоговия порт е пропорционален на степента на осветеност, ще трябва допълнително да „обърнете“ стойността, като я извадите от максимума:

Int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);

Светлинна сензорна верига, използваща фоторезистор и реле

Примери за скици за работа с релета са дадени в статията за програмиране на релета в Arduino. В този случай не е необходимо да правим сложни движения: след като определим „тъмнината“, просто включваме релето и прилагаме съответната стойност към неговия щифт.

#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); } }

Заключение

Проектите, използващи сензор за светлина, базиран на фоторезистор, са доста прости и ефективни. Можете да реализирате много интересни проекти, а цената на оборудването няма да бъде висока. Фоторезисторът е свързан с помощта на верига на делител на напрежение с допълнително съпротивление. Сензорът е свързан към аналогов порт за измерване на различни нива на осветеност или към цифров, ако всичко, което ни интересува, е фактът на тъмнината. В скицата ние просто четем данни от аналогов (или цифров) порт и решаваме как да реагираме на промените. Да се ​​надяваме, че сега такива прости „очи“ ще се появят във вашите проекти.

За следващия ни проект ще използваме фоторезистор. И ще разгледаме внедряването на нощна лампа за спалнята, която автоматично да се включва, когато е тъмно и да се изключва, когато стане светло.

Съпротивлението на фоторезистора зависи от светлината, която пада върху него. Използвайки фоторезистор във връзка с конвенционален резистор 4,7 kOhm, получаваме делител на напрежение, в който напрежението, преминаващо през фоторезистора, се променя в зависимост от нивото на светлина.

Прилагаме напрежението от делителя към входа на Arduino ADC. Там сравняваме получената стойност с определен праг и включваме или изключваме лампата.

Електрическата схема на делителя е показана по-долу. Когато осветеността се увеличи, съпротивлението на фоторезистора пада и съответно напрежението на изхода на делителя (и входа на ADC) се увеличава. Когато осветлението спадне, всичко е обратното.

Снимката по-долу показва сглобената верига на макет. Напрежения 0V и 5V са взети от Arduino. Pin A0 се използва като ADC вход.

По-долу е скица на Arduino. В този урок ние просто включваме и изключваме светодиода, който е вграден в платката Arduino. Можете да свържете по-ярък светодиод към крак 13 (чрез ~220 Ohm резистор). Ако свържете по-мощен товар, например лампа с нажежаема жичка, тогава той трябва да бъде свързан чрез реле или тиристор.

В програмния код има коментирани секции, те се използват за отстраняване на грешки. Ще бъде възможно да се контролира стойността на ADC (от 0 до 1024). Освен това трябва да промените стойността 500 (праг за включване и изключване) в кода на тази, която сте избрали експериментално, като промените осветеността.

/* ** Нощна светлина ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // задаване на входния крак за ADC 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); }