Мазмуну:

Arduino Powered, Sensor Controlled Fading LED Light Strips: 6 кадам (Сүрөттөр менен)
Arduino Powered, Sensor Controlled Fading LED Light Strips: 6 кадам (Сүрөттөр менен)

Video: Arduino Powered, Sensor Controlled Fading LED Light Strips: 6 кадам (Сүрөттөр менен)

Video: Arduino Powered, Sensor Controlled Fading LED Light Strips: 6 кадам (Сүрөттөр менен)
Video: Beginner's Guide to Using LED Strips with Arduino 2024, Ноябрь
Anonim
Image
Image

Мен жакында ашканамды жаңырттым жана жарыктандыруу шкафтардын көрүнүшүн "көтөрөрүн" билчүмүн. Мен "Чыныгы колу жокторго" бардым, ошондуктан менде жумуштун астында боштук, ошондой эле шкафтын астында, шкафтын астында жана шкафтардын үстүндө боштук бар жана аларды жарык кылгым келди. Айлананы карагандан кийин мен каалаган нерсени таппай койдум жана аны өзүмдүкү кылып көрүүнү чечтим.

Жарыктандыруу үчүн мен бир түстү, жылуу ак LED диоддорун (коргоо үчүн ийкемдүү пластикалык каптоочу суу өткөрбөөчү түрү) тандап алдым.

Дубал шкафтары үчүн, алар түбүндө жалпак болгондуктан, мен өтө төмөн профилдеги жарыктарды тандап, кабелди кабинеттин ичине жана арт жагына бурдум (шкафтардын ичинде кабель үчүн Дремелдин жардамы менен оюкту кесип, кайра толтурдум бир жолу кабель ичинде болгон, ошондуктан анын белгиси жок).

БИРОК … Мен чоң которгучту каалабадым, жана жарыктын кандайча пайда болгонун эң сонун көргүм келди, андыктан айланамды карап, бир аз өчкөн/өчкөн өчүргүчтөрдү жана бир Alexa иштетилгенди тапкандан кийин дагы деле таба алган жокмун ал бардык жарыктандырууну иштете алат жана дагы деле жакшы көрүнөт, ошондуктан мен өзүмдүкүн жасоону чечтим.

Ошентип, менин долбоорум төрт жарыктын баарын кубаттай ала турган, пассивдүү сенсордон бат эле өчүп бараткан бир аппаратты чыгаруу болчу - мен ашканадан чыкмайынча уланта бергиле, же күйгүзүүгө "мажбурлоого" которгула, же эгер мен эч кимди көрбөсөм, алдын ала белгиленген убакыттан кийин ашканада өчүп калсам.

(Ал амазонкада бир дагы алдын ала жасалган бирдиктен алда канча кымбат турбады-запастыктар менен!).

Бул жерде анын иш -аракетинин видеосу

1 -кадам: Бөлүктөр

Менде Amazonдан колдонгон бөлүктөрдүн тизмеси бар. Аларды сатып алуу үчүн шилтемени басыңыз. Көңүл бургула, булардын кээ бирлери "бир нече" нерселер, андыктан досторуңарга жана үй -бүлөңөргө же башка долбоорлорго керектүү запастарга ээ болушуңар керек - бирок алар ушунчалык арзан болгондуктан, бирөөнү сатып алуу көбүнчө ташуу акысынын ордун толтурат ….

Бул долбоордун бөлүктөрү:

Толук Arduino топтому (Эскертүү: талап кылынбайт, бирок келечекте ойноо үчүн көп нерселерди камтыйт!):

Arduino NANO (кутунун ичинде колдонулат):

PIR сенсор:

LED Жарык тилкелери:

LED айдоочу (Электр энергиясы):

MOSFET такталары:

Которуштуруу үчүн басыңыз:

Arduino жана MOSFET камтыган кара куту:

Сенсор жана которуу үчүн ак куту:

LED тилкелерине компоненттерден зымды туташтыруу:

2.1мм штепсель жана розеткалар:

Ардуинону башка компоненттерге туташтыруу үчүн зым:

Жылуулук радиаторлору (MOSFETs үчүн):

Жылуулук эки тараптуу скотч:

Жылуулукту азайтуучу

2 -кадам: Технология жана ал бири -бирине кантип туура келет

Технология жана ал кантип бири -бирине туура келет
Технология жана ал кантип бири -бирине туура келет
Технология жана ал кантип бири -бирине туура келет
Технология жана ал кантип бири -бирине туура келет

Муну жасоо үчүн, биринчиден, биз схеманы түзүшүбүз керек …

Ошентип баштоо үчүн, мен нанды жана толук өлчөмдөгү Ardiuno Uno колдондум. Буга чейин эч качан Arduino колдонгон эмесмин, мен үчүнчү жактын Unoсун камтыган пакетти жана бөлүктөрдүн бүт комплектин сатып алдым (мындан кийин мен башка долбоорлор үчүн колдоном). Албетте, эгер сиз бул долбоорду ээрчип жатсаңыз, муну кылуунун кажети жок, бирок бул сизге башка нерселерди курууга түрткү берсе жакшы болот.

Нан тактасы сизге зымдарды жана компоненттерди пластикалык тактага түртүп, электрондук бөлүктүн дизайнын текшерүүгө мүмкүндүк берет.

Мен аны бир нече кызыл LED менен коштум, жана бул мага программанын өчүп бара жаткан бөлүгү кандай иштегенин текшерүүгө мүмкүндүк берди (мен 10 секунддан кийин убакыттын өтүшү менен убактылуу орнотуп койдум, ошондо мен этаптын өчүшүнүн таасирин көрө алдым)). Бул иштөө ыкмасы - бул светодиоддор заматта күйгүзүү/өчүрүү (салттуу лампалардан айырмаланып), андыктан өзгөрүлмө чыңалууга кереги жок - сиз аларды тез эле күйгүзүп жана өчүрө аласыз, алар анча жарык эмес окшойт.. Бул Pulse Wave Modulation (PWM кыскасы) деп аталат. Негизинен, сиз аларды канчалык узак кармасаңыз, алар ошончолук жарык болот.

ЭСКЕРТҮҮ: Мен чыныгы жарык тилкелерин туташтыргандан кийин, алардын ар биринин учурдагы тартылышы алардын бир аз жарык болушуна алып келет жана алар бир аз башкача болуп калат - ошентип мен программаны конфигурацияланган жөндөөлөр менен жасадым)

Сиз LED тилкелерин түз алып жүрүү үчүн электр энергиясын чакан сайгычты сатып алсаңыз да, менде төртөө бар, мен LED драйверин сатып алууну чечтим (негизинен токтун кубаттуулугу жогору). Мен муну ашыкча бааладым, анткени ал курулганга чейин чыныгы учурдагы чүчүкулакты текшерген жокмун (муну ашкана орнотула электе эле кылып жаткам). Эгер сиз муну учурдагы ашканага ретро-фитинг кылып жатсаңыз (же муну колдонуп жатсаңыз), сиз учурдагы чүчүкулакты өлчөп, баалуулуктарды бирге кошуп, анан ылайыктуу LED драйверин тандап алсаңыз болот (кийинки кубаттуулук рейтинги).

Аны нанга отургузгандан кийин, мен чырактардын учурдагы тартылышы Arduino'дон түз айдоого өтө жогору болорун түшүндүм, андыктан реалдуу блок үчүн кээ бир MOSFETтерди колдондум - булар негизинен реле сыяктуу иштейт - эгерде алар кубат алса (кубаты аз тараптан)), алар андан кийин жогорку ток тарапта туташууну күйгүзүшөт.

Мен бул жерде алдандым - мен жөн эле чыныгы MOSFETтерди сатып алмакмын, бирок кээ бирлери чакан платаларга орнотулган, бурамалуу туташтыргычтар жана кичинекей SMD LED чырактары, алардын статусун көрө аласыз. Улантууга убакыт үнөмдөлсүнбү? Ооба, ооба!

MOSFET менен деле, LED тилкелеринин узундугунун максималдуу рейтинги дагы эле бир нече AMPти тартып жатты жана MOSFET аларды муздатууга жардам берүү үчүн жылыткычты кошууну сунуштады. Ошентип, мен кичинекей радиаторлорду алдым жана аларды жылыткычтын металл бөлүгүнө жабыштыруу үчүн эки тараптуу термикалык лента колдондум. Толук кубаттуулукта алар дагы эле ысый башташат, бирок менин программамдагы максималдуу жарыктыкты тууралагандан кийин (светодиоддор өтө жарык болчу), мен MOSFET -тер баары бир ысык иштебей турганын, бирок компоненттердин өмүрүн узартуу үчүн аларды кошуу керектигин билдим. же эгер сиз мага караганда жаркыраган деңгээлди тандасаңыз.

Сенсор ошондой эле кичинекей схемада пакеттелген болчу жана буга бардык колдоо схемалары, ошондой эле бир нече секиргичтер кирет (шилтемеси бар кичинекей казыктар, сиз ар кандай варианттарды тандоо үчүн кызматтарды алмаштыра аласыз) жана өзгөрмө убакыт бүттү. Биз муну өзүбүздүн таймерибизди иштетүү үчүн колдонуп жаткандыктан, биз аларды демейки абалында калтыра алабыз.

Мен сенсордун жанына кичинекей Push to Make өчүргүчүн кошуп, жарыкты үзгүлтүксүз күйгүзүп, экинчи басуу менен өчүрүп койдум. Бул мен эң көйгөйлүү болгон компонент болчу, анткени нерселердин жыйындысы Arduino көбүнчө которгуч басылып жатат деп ойлогон, ошондуктан ал жарыкты туш келди күйгүзүп жана өчүрүп коёт. Бул Arduino ичиндеги ызы-чуунун, кабелдин узундугунун, Ground/0V линиясындагы ызы-чуунун жана коммутаторлордун ичиндеги туташуулардын ызы-чуунун айкалышындай көрүндү, ошондуктан аларды "ажыратуу" керек. Мен бир нече нерселер менен ойнодум, бирок акыры программанын текшерүүсүн чечтим, мен баскычты бир нече миллисекундта басчумун-негизинен де-секирүү, бирок ошондой эле кандайдыр бир ызы-чууну тоготпоо.

Чыныгы блок үчүн мен сенсорду жана түрткүчтү жайгаштыруу үчүн кичинекей, эч нерсеге карабаган кутучаны таптым, экинчиси MOSFET такталарын жана кабелдерин орноткон. Ишти жеңилдетүү үчүн, мен токту көтөрө турган эки ядролуу кабелди сатып алдым (жана оңой аныктоо үчүн бир кабелди белгилеп койдум) жана муну ашкананын тегерегиндеги жарык тилкелеринин ар биринин баштапкы чекитине чуркадым. Мен ошондой эле кээ бир розеткаларды жана штепсельдерди сатып алдым, бул мага кабелдерди сайгычтан ажыратууга мүмкүндүк берди жана чоң розеткага төрт розетканы орнотту. Ошентип, мен жарык тилкелерин кайра заказ кыла алам, алар коддон өзгөрбөй, текчеден, шкафтын астынан жана шкафтын жарыгынан башталат.

Бул кутуча үстү жагында Arduino NANO (дагы 3 фунт стерлинг үчүн үчүнчү жактын тактайы) орнотулган. Нанодон жана MOSFETS ж. Мен дагы эле MOSFETтен розеткага чейинки жогорку агымдагы эки ядролук кабелди колдондум.

Кутучаларды бургулоо үчүн, мен бактыга жараша тирөөчтөргө ээ болчумун, бирок ансыз деле кичинекей бургулоочу учак менен тешип, андан кийин баскычтуу бургулоочу тешикти колдонуп, керектүү өлчөмгө чейин кеңейте аласыз (https:// amzn.to/2DctXYh). Ушундай жол менен, айрыкча ABS кутуларында, тыкан, көзөмөлгө алынган тешиктерди аласыз.

Диаграммага ылайык тешиктерди бургулаңыз.

Ак кутуча, мен сенсордун ордун жана ак фрезель линзасынын жаткан жерин белгиледим. Анан мен анын борбору кайда экенин тапкандан кийин, мен пилоттук тешикти бурдум, андан кийин кеңейтүү үчүн чоңураак баскычты колдондум (чоңураак "жыгачтан" бургучу колдонсоңуз болот). Мен тешикти бир аз чоңураак кумдаштырышым керек болчу, бирок мен фрезель линзасынын бардыгын тешиктен өткөргөн жокмун - тешикти кичирейтип, сенсорду ушунчалык көрүнүктүү кылбайт.

Сиз ошондой эле ак кутучада капкакты дубалга илип коюуга мүмкүндүк берүү үчүн капталынан чыгып турган бир нече кулакчалар бар экенин таба аласыз, бирок мен аларды кесип салдым. Андан кийин мен колдонгон 4 негизги кабелге туура келиши үчүн, бир жагында кабель үчүн иштелип чыккан кутучанын кичинекей тилкесин кеңейттим, ал эми кутунун экинчи тарабын которгучка ылайыкташтырып кеңейттим (сүрөттү караңыз).

3 -кадам: Аны зымга кошуу

Wiring It Up
Wiring It Up

Тиркелген электр схемасын караңыз.

Негизинен, сиз түрткүч туташтыргычтарды колдонсоңуз болот, андан кийин Arduino менен келген казыктарга ширетип койсоңуз болот, же мен кылгандай эле, Arduino тактайындагы казыктарга түз эле ширетип коюңуз. Ар кандай ширетүү жумуштарындагыдай эле, эгер сиз тажрыйбасыз болсоңуз, алгач Youtube видеолорун карап көрүңүз - бирок негизи: 1) Үтүктө жакшы жылуулукту (өтө ысык жана өтө муздак эмес) колдонуңуз жана учу оюк эмес экенин текшериңиз.. 2) Лайнерди үтүктүн учуна "жүктөбөңүз" (биринчи баштаганда аягына "калай" салуу жакшы практика болсо да, ашыкчасын аарчып же каккылап салсаңыз болот) - үтүктүн учуна тийип машыгыңыз жана көп өтпөй эле ширеткичти бир эле учурда учуна жана компонентине тийгизип, ал тактага агып кетиши керек.3) Компоненттерди ысып кетпеңиз (МААНИЛҮҮ !!!) - эгер ал агып жатпаса, аны муздатып, бир аздан кийин кайра аракет кылыңыз, жана ошол эле аймакта көпкө иштебеңиз. 4) эгер сизде үч колуңуз болбосо же таякчаларды кармоо тажрыйбасы болбосо, компоненттерди бириктирүү үчүн ошол жардам берүүчү нерселердин бирин сатып алыңыз (мис.

Жашоону жеңилдетүү үчүн, мен MOSFET такталарындагы 3-пин туташтыргычтарды да өчүрдүм. Бул үчүн, дагы бир жолу агып кетишине жардам берүү үчүн, учурдагы туташтыргычка эритип алыңыз, андан кийин дагы эриген бойдон казыктарды тартып алуу үчүн бир кычкачты колдонуңуз. Эгерде сизде компонентти сууруп чыгарардан мурун ээриген эритмесин тартып алуу үчүн эритүүчү насосуңуз же таякчаңыз болсо, жардам берет, (бирок https://amzn.to/2Z8P9aT), бирок ансыз деле жасай аласыз. Ошо сыяктуу эле, сиз кааласаңыз, түз эле казыктарга ширете аласыз (эгер сиз тактайга түз зым салсаңыз, анда бул таза).

Эми, туташуу схемасын карап көрүңүз.

Жакшы бир өзөктүү зымдын бир бөлүгүн алып, бир аз изоляциясын алып салыңыз (мен ролсон стрипперлерди жана кескичти жакшы көрөм https://amzn.to/2DcSkom жакшы), андан кийин зымдарды бурап, аларга кичине ширетүүнү эритип алыңыз. аларды бирге кармагыла. Зымды тактанын тешигинен түртүп, анан зымды ордуна коюңуз.

Муну мен тизмектеген Arduinoдогу бардык зымдар үчүн улантыңыз (сизге керектүү санарип казыктарынын санын колдонуңуз - менде 4 чырак бар, бирок сиз аздыр -көптүр колдоно аласыз). Идеалында колдонууга дал келген түстүү кабелди колдонуңуз (мисалы, 12V Кызыл, GND кара ж. Б.).

Кылдат нерселерди тыкан кылуу жана кыска туташууларды болтурбоо үчүн, мен ширетүүдөн мурун зымга ар бир байланыш үчүн жылуулукту азайтуучу бир аз бөлүгүн (https://amzn.to/2Dc6lD3) жылдырууну сунуштайм. Аны ээрчитип турганда алыс кармаңыз, муун муздагандан кийин жана баарын текшергенден кийин, аны туташтырмага жылдырып, бир нече секундага ысык пистолет менен ысытыңыз. Ал тыкан бириктирүү үчүн кичирейет.

ЭСКЕРТҮҮЛӨР: Мен Arduino D12 же D8деги айрым казыктардын ортосунда кээ бир кроссталк бар экенин бир жерден окудум. Коопсуз болуу үчүн мен D3тү төртүнчү чыгаруу үчүн колдондум - бирок эгер сиз башкаларды сынап көргүңүз келсе, эркин болуңуз, аны коддо жаңыртууну унутпаңыз.

Кабелдерди кутунун ичине ылайыктуу узундукта кесип, андан кийин кайра учтарын кесип, калайлаңыз. Бул жолу кабелдерди MOSFET такталарына көрсөтүлгөндөй казыктарга туташтырыңыз. Ар бир санариптик чыгаруу (D9, D10, D11 жана D3) төрт тактанын бирине ширетилиши керек. GND жыйынтыктары үчүн, мен алардын бардыгын чогултуп, аларды ширетүүчү менен коштум - эң тыкан жол эмес, бирок баары бир кутуга катылган…

Arduino MOSFETтерге

Киргизүү чыңалуусу +12V менен GNDди ошол эле жол менен зымдап, аларды жана 2 ядролуу кабелдин кыска узундугун Chocblockко койдум. Бул мага Choblockту LED драйверинен/PSUдан келген күчтү басаңдатуучу катары колдонууга мүмкүндүк берди, ошондой эле калың 2 ядролуу кабелдерди тыкан бириктирүүгө мүмкүндүк берди. Мен башында кабелдердин учтарын карматтым, бирок алар MOSFET такталарындагы туташууларга жакшы туура келбегенин аныктадым, ошондуктан калай учтарын кесип салышты жана алар жакшы жабдылды.

Мен дагы 2 ядролук кабелдин 4 см узундугун алып, буларды 2.1 розеткасына коштум. Белгилей кетчү нерсе, булардын үч казыгы бар жана бири туташуу үзүлгөндө тоют берүү үчүн колдонулат. Ички пин (12V) жана тышкы (GND) туташууну колдонуңуз жана үчүнчү пинди ажыратыңыз. Андан кийин ар бир кабелди кутунун капталындагы тешиктерге салып, гайканы кошуп, андан кийин MOSFET туташтыргычынын чыгуучу терминалдарына салып, бекемдеңиз.

Сенсорду туташтыруу

Төрт өзөктүү кабелди колдонуп, PSU жашырылган жерден сенсорду коюуга издеп жаткан жерге чейин жетүү үчүн узундукту кесиңиз (бул аймакты басып өткөндө сизди кармап турган жер экенине ишениңиз, бирок кимдир бирөө кийинки бөлмөдө басып баратканда чалынбайт!).

Зымдарды сенсор тактасындагы казыктарга туташтырыңыз (эгер кааласаңыз казыктарды алып салсаңыз болот) жана кыска узундуктагы кабелди колдонуп (кара!) GND кабелин которгучтун бир жагына улантуу үчүн зым кабелин өткөрүңүз. Андан кийин зымдардын дагы бирин 4 ядролуу кабелден которгучтун башка жагына ээрчиңиз.

Сенсорду коюп, ак кутуга которуңуз, андан кийин кабелди бөлмөңүздүн айланасына буруңуз, андан кийин кабелдин экинчи учун кара кутунун тешигинен түртүп, зымдарды Arduinoдогу туура казыктарга кошуңуз.

Бул кабелдин тартылып калуусун жана Arduino менен болгон туташууңузду бузбоо үчүн, кутунун ичиндеги кабелдин айланасына кичинекей кабелдик галстук тагыңыз.

Күч

Мен сатып алган LED драйвери (энергия менен камсыздоо) эки чыгуучу куйругу бар болчу - экөө тең 12V жана GND болгон, ошондуктан мен экөөнү тең колдонгонмун жана 2 х светодиод эки MOSFETтен өтүп, алардын биринен иштөө үчүн колдонууну бөлүштүм. электр менен камсыз кылуу чыгуулары, жана башка 2 башка LED. Сиз колдонуп жаткан Светодиоддордун жүгүнө жараша, сиз башка электр менен камсыздоону тандап алган болушуңуз мүмкүн жана бир гана чыгышы бар.

Ошентип, менин кутучамда 2 жолу тешик бар, ал жерде Кубат булагынын кабелдери кирет, анан мен туташуу үчүн Chocblock салып, ошондой эле штаммды басаңдатууну камсыздайм.

4 -кадам: Arduino программасы

Arduino программасы
Arduino программасы

Программа (тиркелет) салыштырмалуу түрдө түшүнүктүү болушу керек жана мен бүтүндөй комментарий берүүгө аракет кылдым. Сураныч, аны өзүңүздүн долбоордун талаптарына ылайыкташтырыңыз.

МААНИЛҮҮ: Мен муну алгач бөлүктөрдүн топтомуна жана Arduino UNOго орноттум. Эгерде сиз Arduino NANO такталарын колдонсоңуз, анда жүктөгүч эски болушу мүмкүн. Муну жаңыртуунун кажети жок (муну жасоонун жолу бар, бирок бул долбоор үчүн керек эмес). Болгону, Tools> Boardдо Arduino NANOну тандаганыңызга ынануу керек, андан кийин Куралдар> Процессордо туура бирин тандаңыз. COM портун тандап алгандан кийин, сериялык консолго туташсаңыз эмне болуп жатканын көрүүнү тандай аласыз (Куралдар> Сериялык монитор).

Бул менин биринчи Arduino долбоорум, жана Arduino программалоо куралдарын жүктөө жана орнотуу жана колдонуу чындыгында оңой болгонуна кубандым (программаларды терип, тактага жүктөөгө мүмкүндүк берген нерсе). (IDEни https://www.arduino.cc/en/main/softwareден жүктөп алыңыз)

Жөн эле тактаны USB портуна туташтыруу менен, ал программа катары тактага жүктөп бере турган түзмөк катары көрүнөт жана код иштейт!

Код кантип иштейт

Негизи бир аз орнотуу бар, мен бардыгын аныктайм. Бул жерде сиз чырактар үчүн колдонгон төөнөгүчтөрдү, жарыктардын максималдуу жарыктыгын (255 максимум), канчалык тез өчүп баратканын жана канчалык тез өчөрүн өзгөртө аласыз.

Ошондой эле бир жарыктын экинчисине өтүү ортосундагы ажырым бар - андыктан ар биринин өчүшүн күтүүнүн кажети жок - мурунку өчүп бүтө электе, кийинки өчүүнү баштасаңыз болот.

Мен өзүмө ылайыктуу баалуулуктарды тандадым, бирок сураныч, эксперимент жасоодон тартынбаңыз. Бирок: 1) Мен максималдуу жарыктыкты өтө жогору бурууну сунуштабайт элем - ал иштеп жатса да, мен чырактардын өтө жаркыраган жана ийкемсиз экенин сезем (жана LEDлердин узун жиби менен кошумча ток MOSFETтерди ысып кетет) кутуну көбүрөөк желдетилгенге алмаштырыңыз). 2) офсет учурдагы баалуулуктар үчүн иштейт, бирок Светодиоддор жарыгынын күчүн сызыктуу түрдө көбөйтпөгөндүктөн, сиз жакшы эффект алганга чейин башка параметрлерди тууралашыңыз керек болушу мүмкүн. 3) Өчүрүү тартибинде, мен астыңкы жарыктарымдын максималдуу жарыктыгын 255ке чыгардым (алар азыраак ток тартышат, андыктан MOSFETтерди ысып кетпегиле жана мен эмнени бышырып жатканымды көргүм келет!).

Орнотуу бөлүгүнөн кийин, бир чоң цикл бар.

Бул борттогу LEDдеги бир же эки жарк менен башталат (анын иштей турганын жана сенсордун диапазонунан чыгып кетүү мүмкүнчүлүгүн берүү үчүн кечигүү катары). Андан кийин код укурукка отуруп, сенсордон өзгөрүүнү күтөт.

Муну алгандан кийин, TurnOn маршрутун чакырат, ал жерде 0 түзүлүп, 4 түзмөктүн баардык тандалган максималдуу маанисине чейин, FadeSpeed1 маанисинде көрсөтүлгөн суммага көбөйөт. Бул чектөө буйругун колдонуп, ар бир өндүрүштүн максималдуу жарыктыгынан чоң болушуна жол бербейт.

Андан кийин ал башка циклде отурат, эгер сенсор кайра иштетилсе, маанини баштапкы абалга келтирет. Эгерде бул баштапкы абалга келтирилбесе, анда Arduino таймери ушул чекитке жеткенде, ал циклден чыгып, TurnOff тартибин чакырат.

"Күйүк" циклинин каалаган убагында, эгер которгуч бир нече миллисекунддан ашык басылса, биз жарыкты ырастап, андан кийин желекти орнотобуз, ал таймердин маанисин дайыма баштапкы абалга келтирет - ошентип жарык эч качан өчпөйт. кайра Коммутатордун экинчи басылышы жарыктардын кайра жаркырашына жана циклдин чыгып кетишине алып келет, бул жарыктын өчүшүнө жана аны кайра коюуга мүмкүндүк берет.

5 -кадам: Баарын кутуга салуу

Баарын кутуга салуу
Баарын кутуга салуу
Баарын кутуга салуу
Баарын кутуга салуу

Баарын туташтыргандан кийин, аны сынап көрүүгө убакыт келди.

Мен сенсордун баштапкы жайгашкан жери иштебей турганын билдим, ошондуктан кабелди кыскартып, жаңы жерге койдум - мен аны убактылуу эритилген клей менен жабыштырып койгом, бирок ал жерде жакшы иштейт, менде бар велкро төшөмөлөрдү колдонбостон, ошол жерде калып калган.

Сенсордо бир нече өзгөрмөлүү потенциометрлер бар, алар PIRдин сезгичтигин жана сенсор канча убакыт иштетилгенин жөнгө салууга мүмкүндүк берет. Биз коддогу "канча убакытка" элементин көзөмөлдөп жаткандыктан, сиз муну эң төмөнкү баада калтырсаңыз болот, бирок сезгичтик параметрин тууралоодон тартынбаңыз. Ошондой эле секирүүчү бар - мен муну демейки абалында калтырдым, ошондой эле сенсорду "кайра иштетүүгө" мүмкүндүк берет - эгерде ал сени бир жолу гана аныктап, ар дайым эскирип турса, анда бул которууну жылдырууга убакыт келди!

Тестирлөөгө жардам берүү үчүн, мен жарыктардын күйүү убактысын 2 мүнөт күтпөй, болжол менен 12 секундга кыскарттым. Көңүл буруңуз, эгер сиз аны толугу менен өчүрүү убактысынан азыраак кылсаңыз, код дайыма максималдуу убакыттан ашып кетет жана ошол замат өчөт.

Светодиоддук тилкелер үчүн тилкеге белгиленген чекиттердеги тилкелерди кесип алуу керек. Андан кийин, курч бычакты колдонуп (бирок аягына чейин кесүүдөн этият болуңуз!), Суу өткөрбөөчү катмардан темир тилкеге кесип, андан кийин сыйрып алыңыз, анда эки ширетүүчү аянтты ачып көрүңүз. Буларга бир аз ширеткичти коюңуз (дагы, аларды ысып кетүүдөн сак болуңуз) жана эки өзөктүү зымдын бир бөлүгүн тиркеңиз. Андан кийин зымдын экинчи учунда, розеткага туташтырыңыз, андыктан аны айдап кетүү үчүн розеткага сайыңыз.

Эскертүү: Мен LED тилкелери үчүн 90 градустук туташтыргычтарды сатып алганым менен, бирок мен аларды начар байланышта экенин билдим. Мен тилкелерди каалаган өлчөмгө кесип, анын ордуна LED тилкесинин кесилиштеринин ортосуна туташтыруу кабелин коштум. Бул мен идиш жуугуч менен муздаткыч турган жерге узунураак киришим керек болгондуктан, мен шкафтын астындагы тилкени иштетишим керек болгондо жардам берди.

Баарын бириктирип, анан электр менен камсыздоону туташтырыңыз. Андан кийин, эгер сиз PIR сенсорунун жанына жылсаңыз, анда ал иштей баштайт жана сиз жаркыраган светти көрүшүңүз керек.

Эгерде мен сыяктуу эле, жарыктар туура эмес тартипте өчүп калса, анда кайсы кабель экенин аныктап, жакшы өчүп калгыча кабелдерди башка розеткага сайыңыз/алмаштырыңыз.

Сиз ошондой эле программанын жөндөөлөрүн тууралагыңыз келиши мүмкүн (мен LED тилкелери канчалык узун болсо, караңгыда алар "толук жарыктыкта" көрүнөт), жана сиз жөн гана компьютериңизге ардуинону туташтырып, жаңы программаны кайра жүктөй аласыз.

Мен бир жерден Arduinoго эки кубат берүү туура эмес экенин окуганым менен (USB да кубат берет), мен ардуинону Кубат булагына туташтырып, анан USB туташуусун компьютерге кошуп койдум. Мен Serial Port мониторунун жардамы менен эмне болуп жатканын көзөмөлдөй алам. Бул мен үчүн жакшы иштеди, андыктан эгер сиз дагы муну кааласаңыз, мен сериялык билдирүүлөрдү коддо калтырдым.

Баары иштээрин ырастагандан кийин, баарын кутучаларга батыра турган убак. Бул үчүн мен жөн гана ысык клей колдондум.

Эгерде сиз кутунун ичиндеги нерселердин бардыгын карап көрсөңүз, анда MOSFET такталары кутунун эки жагына отура аларын жана бул циклдерден чыккан кабелди жана 2.1мм розетканы кийинки жайгаштырууга болорун көрөсүз. тешиктен жана аны кармап туруу үчүн тиркелген гайкадан MOSFETтин өзүнө. Бир аз клей буларды кармап турууга жардам берет, бирок, эгер керек болсо, дагы эле кайра тартып алса болот.

Arduino кутунун чокусуна капталда жайгашышы керек, ал эми кирүү үчүн блок түбүндө отурушу керек.

Эгерде сизде бардык кабелдерди өлчөөгө жана кайра ширетүүгө убактыңыз болсо, муну ээн-эркин кылыңыз, бирок ал кутучанын ичинде да, менин үстөлүмдүн астына да катылгандыктан, мен "келемиштердин уясын" зымдардын ортосуна таштап койгом. кутуча (MOSFETтердеги радиаторлордон алыс, эгер алар ысып кетсе).

Андан кийин капкакты кутуга коюп, сайыңыз жана ырахат алыңыз!

6 -кадам: Жыйынтык жана келечек

Бул сизге пайдалуу болду деп үмүттөнөм жана мен аны жаңы ашканам үчүн (LEDдын төрт элементи менен) иштеп чыкканым менен, ал башка максаттарга оңой ыңгайлаштырылган.

Менимче, биз негизги ашкананын жарыгын колдонууга жакын эмеспиз, анткени бул диоддор көпчүлүк максаттар үчүн жетиштүү жарык берет, ошондой эле ашкананы кызыктыруучу жайга айландырат.

Бул менин биринчи Arduino долбоорум, жана, албетте, менин акыркым болбойт, анткени коддоо бөлүгү электрондук процесстерди эмес, менин (дат баскан!) Коддоо жөндөмүмдү колдонууга мүмкүндүк берет, жана Arduino туташуусу жана колдоосу чындап эле сонун функцияларды берет. көп электрдик схемаларды жасоо.

Мен LED тилкелеринин жогорку агымын сүрүү үчүн MOSFETтерди өзүлөрү сатып алмакмын (же башка ыкманы колдонгон), бирок бул колдоо компоненттерин (диод, резистор ж. Б.) Сатып алмак, жана тактадагы SMD LED пайдалуу, ошондуктан мен тактоо үчүн кичине кошумча төлөп жатканымды сездим.

Мүмкүн, сиз муну конкреттүү долбооруңузда жарык берүү схемасынын башка түрлөрүн, ал тургай күйөрмандарды же башка мотор схемаларын айдаш үчүн өзгөрткүңүз келиши мүмкүн. Бул ошол эле иштеши керек жана Pulse Width Modulation ыкмасы ошол түзмөктөр менен жакшы иштеши керек.

Биздин ашканада жарыктар басым үчүн болушу керек, ошондуктан биз аларды дайыма колдонобуз. Бирок мен башында караңгы болсо гана "ON" абалын иштетүү үчүн жарык сенсорун кошууну ойлонуп жаткам. Коддогу этаптуу циклдардан улам, Arduinoдогу аналогдук казыктардын бирине Жарыкка көз каранды резисторду кошуу оңой болмок, андан кийин сенсор менен LDRди күтүш үчүн 'OFF' циклиндеги үзүлүү абалын өзгөртүү. мисалы, белгилүү бир мааниден төмөн болгула ((digitalRead (SENSOR) == LOW) жана (LDR <= 128));.

Мага бул же башка сунуштар менен эмне деп ойлогонуңузду же эмне кылганыңызды айтыңыз!

Сунушталууда: