Բովանդակություն:

Multi Node LED PWM լամպի նախագծում. 6 քայլ (նկարներով)
Multi Node LED PWM լամպի նախագծում. 6 քայլ (նկարներով)

Video: Multi Node LED PWM լամպի նախագծում. 6 քայլ (նկարներով)

Video: Multi Node LED PWM լամպի նախագծում. 6 քայլ (նկարներով)
Video: The Basics of smart Lighting System - DALI Dimming system 2024, Սեպտեմբեր
Anonim
Multi Node LED PWM լամպի նախագծում
Multi Node LED PWM լամպի նախագծում

Այս հրահանգը ցույց կտա, թե ինչպես եմ ես նախագծել LED PWM լամպի վերահսկիչ: Բազմաթիվ լամպեր կարող են լարվել միասին ՝ լույսի մեծ լարեր ստեղծելու համար: Սուրբ Christmasննդյան տոների համար մի քանի լուսաշող լուսարձակներ ստեղծելը միշտ եղել է իմ ցանկությունների ցանկում: Անցյալ Սուրբ seasonննդյան սեզոնին ես իսկապես սկսեցի մտածել ինչ -որ բան կառուցելու մասին: Իմ առաջին միտքն այն էր, որ յուրաքանչյուր LED լամպ պարզապես կարող էր միացված լինել մի զույգ լարերի: LED լամպերի հզորությունը կարող է լինել AC ազդանշան, որը ցածր հաճախականությունից կանցնի բարձր հաճախականության: Յուրաքանչյուր լամպի մեջ ներկառուցված ժապավենը կարող է միացնել LED- ն, երբ հաճախականությունը կհամապատասխանի ժապավենի կենտրոնական հաճախականությանը: Եթե ժապավենների անցման զտիչները ճիշտ տեղադրված լինեին, կարող էր LED հետապնդման հաջորդականություն կազմել: Իրոք, այլ հաճախությունների փոխարեն ցատկելու փոխարեն, LED- ներից որևէ մեկը կարող էր միացվել: Օգտագործելով H -Bridge վարորդի չիպը, ցանկալի հաճախականությունը լարերի վրայով վարելը չպետք է չափազանց դժվար լինի: Դե, ես պարզապես հոտում եմ անալոգային դիզայնին. Ես ավելի շատ տղայի ծրագրային ապահովում եմ: Մի քանի նստարանային փորձարկումներից հետո ես արագ հրաժարվեցի անալոգային օգտագործումից: Այն, ինչ ես իսկապես ուզում էի, LED լամպ էր, որը կարող էր լիովին վերահսկվել `ցուցադրելու իմ ցանկացած գույնը: Օ, և այն պետք է կարողանա օգտագործել PWM (զարկերակի լայնության մոդուլյացիա), որպեսզի լուսադիոդային լուսարձակները կարողանան միացնել կամ անջատել իսկապես սառը նախշերով: Այն, ինչ հետևում է այս հրահանգին, միկրոչիպի միկրոպրոցեսորի վրա հիմնված իսկապես զով դիզայնի նկարագրությունն է: դա դուրս եկավ տոնածառի լույսերի իմ ցանկությունից: Շտապ դիտեք ստորև ներկայացված տեսանյութը `արագ տեսնելու համար, թե ինչ կարող է ցուցադրել Kemper LED PWM լամպի վերահսկիչը: Ուշադրություն դարձրեք, դժվար է ստանալ գործող LED լուսադիոդների լավ տեսանյութ, որոնք PWM- ն օգտագործում են ինտենսիվության վերահսկման համար: Նույն խնդիրն է, երբ փորձում ես տեսանկարել համակարգչի մոնիտորը: LED- ների 60 Հց հաճախականությամբ պայքարի մեջ են մտնում տեսախցիկի 30 Հց -ի հետ: Հետևաբար, չնայած կան ժամանակներ, երբ LED- ների տեսանյութը մի փոքր «փայլուն» է, բայց դա իրականում այդպես չէ: Մարդկային աչքով դիտվող LED- ները, ըստ երևույթին, ոչ մի անսարքություն չունեն: Տե՛ս ստորև բերված ծրագրաշարի քայլը ՝ LED- ների տեսագրման վերաբերյալ ավելի շատ քննարկման համար:

Քայլ 1: Նպատակների ձևավորում

Դիզայնի նպատակներ
Դիզայնի նպատակներ

Այս նախագծի մասին մտածելով Սուրբ Christmasննդյան արձակուրդն անցկացնելուց հետո ես հայտնվեցի ցանկությունների ցուցակ: Ահա մի քանի հնարավորություններ (դասավորված ըստ հերթականության), որոնք ես ուզում էի իմ LED վերահսկիչով. 1) Յուրաքանչյուր LED լամպ պետք է լինի հնարավորինս էժան: 100 լամպերի շարանը կարժենա մի փունջ, եթե յուրաքանչյուր լամպը շատ թանկ արժի: Արժեքը, հետևաբար, հիմնական գործոնն է: 2) Յուրաքանչյուր լամպի վրա կլինի մի փոքրիկ միկրո, որը կքշի LED- ները: Փոքր միկրոյը կստեղծի PWM ազդանշաններ, որպեսզի LED- ները կարողանան մթագնել կամ մարել: LED- ները կարող են կոշտ տեսք ունենալ, երբ դրանք պարզապես միացված և անջատված են: Օգտագործելով PWM ազդանշանները, LED- ները կարող են մարել վեր ու վար առանց LED- ների սովորական կոշտ եզրերի: Էլեկտրաէներգիան և հաղորդակցությունները կկիսեն նույն երկու լարերը: Լամպերին տրված հրամանները կտեղեկացնեն միկրոավտոբուսում, թե LED- ներից որն է վարել PWM- ով: 4) Պետք է զով տեսք ունենա: Կարծում եմ, որ սա իսկապես պետք է համարակալվի, ուստի այն թիվ մեկ է: Ահա որոշ փոքր նախագծային նպատակներ (առանց հատուկ կարգի). 1) Forարգացման համար պետք է հեշտությամբ միաձուլվի / ծրագրավորվի շրջանագծում: 2) ԱՀ-ն պետք է կարողանա առաջացնել հրամաններ լամպերին: Սա շատ ավելի հեշտ է դարձնում օրինաչափությունների մշակումը, քան մեկ այլ ներկառուցված միկրո օգտագործելը: 3) Յուրաքանչյուր լամպ պետք է ունենա յուրահատուկ հասցե: Յուրաքանչյուր լուսադիոդ, լամպի ներսում, պետք է լինի նաև եզակի հասցեավոր: Ներկայիս դիզայնը ապահովում է 128 լամպ մեկ լարի վրա: Մեկ լամպի 4 լուսադիոդով, որը մշակում է մինչև 512 լուսադիոդ ՝ երկու լարերի մեկ լարի վրա: Նաև նկատի ունեցեք, որ այդ 512 LED- ներից յուրաքանչյուրն ունի PWM- ով աշխատող ամբողջական սարք: 5) Արձանագրությունը պետք է ունենա հրաման, որն ասում է. Երբ մարումն սկսվում է, մյուս LED- ները նույնպես կարող են կարգավորվել և միանալ նույն լամպի վրա: Այլ կերպ ասած, տեղադրեք LED- ն մարող ձևի մեջ, այնուհետև մոռացեք այն ՝ իմանալով, որ LED- ը կկատարի հրամանը: Սա ենթադրում է միկրո գործի վրա բազմաֆունկցիոնալ ծրագրեր: 6) Պետք է լինեն գլոբալ հրամաններ, որոնք միանգամից կազդեն բոլոր լամպերի վրա: Հետևաբար, բոլոր LED- ները կարող են պատվիրվել ՝ օգտագործելով միայն մեկ հրաման: Ահա որոշ իրոք աննշան նախագծման նպատակներ (կրկին ՝ առանց որևէ կարգի). Սա թույլ կտա հրամանը վրդովվել 2: Սա թույլ կտա լամպերի յուրաքանչյուր x թիվը ընտրել մեկ հրամանով: Սա ավելի դյուրին կդարձնի մեծ թվով լամպերով հետապնդման նախշեր պատրաստելը: Որպես օրինակ, դա թույլ կտա հրաման ուղարկել լամպերի լարի յուրաքանչյուր երրորդ լամպին: Այնուհետև հաջորդ հրամանը կարող է ուղարկվել հաջորդ երեք հոգուց բաղկացած խմբին: 3) Ավտոմոբիլային բևեռայնության հայտնաբերման տրամաբանական համակարգը նույնպես հիանալի կլիներ: Այնուհետեւ, LED լամպերի սնուցման երկու լարերի բեւեռականությունը դառնում է անկարեւոր: Այս գործառույթի մասին ավելին տեսեք ապարատային բաժին:

Քայլ 2: Նախատիպերի ձևավորում

Նախատիպավորում
Նախատիպավորում
Նախատիպավորում
Նախատիպավորում
Նախատիպավորում
Նախատիպավորում

Հիմա հունվարի սկիզբն է, և ես գնում եմ: Ես գտա 10F206- ը Digikey- ում և այն իսկապես էժան է: Այսպիսով, ես պտտեցի մի նախատախտակ ՝ միկրոչիպից 10F206 միկրո պահելու համար: Ես նախագծեցի արագ տախտակ, քանի որ 10F2xx- ը հասանելի չէ DIP փաթեթում: Եզրակացություն, ես չէի ցանկանում քաշքշուկ անել փոքր չիպի հետ: (Ես այնքան վստահ էի դեռ հունվարին) ես նույնպես գնացի և գնեցի նոր CSS C կոմպիլյատոր, որն ուղղված էր 10F2xx միկրոն: Չիպերի 10F2xx ընտանիքն իսկապես էժան է: Մեծ հույսերով ես սուզվեցի և սկսեցի շատ կոդեր գրել: 10F206- ն ունի ահռելի 24 բայթ օպերատիվ հիշողություն. Չիպը նաև ունի 512 բայթ ֆլեշ և մեկ ութ -բիթ ժամաչափ: Մինչ ռեսուրսները սակավ են, գինը լավ է `41 ցենտ մեծ քանակությամբ: Աստված իմ, մեկ վայրկյանում մեկ միլիոն ցուցում (1 MIPS) 41 ցենտով: Ես պարզապես սիրում եմ Մուրի օրենքը: Evan մեկանգամյա գներով, Digikey- ի 10F206- ը նշված է 66 ցենտով: Ես մի շատ ժամանակ անցկացրեցի 10F206- ի հետ աշխատելու համար: 10F206- ի հետ աշխատելիս ես հայտնաբերեցի, որ բազմակի առաջադրանքները բացարձակապես պահանջվում են: PWM ելքային ազդանշանները ՊԵՏՔ է թարմացվեն նույնիսկ նոր հաղորդակցման հաղորդագրություններ ստանալիս: PWM ազդանշանների թարմացման ցանկացած ընդհատում կդիտվի որպես LED- ների անսարքություն: Մարդու աչքը իսկապես լավ է տեսնում անսարքություններ: 10F206 չիպի հետ կապված կան մի քանի հիմնարար խնդիրներ: Առնվազն հիմնարար խնդիրներ իմ դիմումի համար: Առաջին խնդիրն այն է, որ ընդհատումներ չկան: Ընտրական օղակի միջոցով նոր հաղորդակցությունների սկիզբը բռնելը ժամանակի սխալներ է թույլ տալիս: Երկրորդ խնդիրն այն է, որ կա միայն մեկ ժամաչափ: Ես պարզապես չկարողացա գտնել հրամաններ ստանալու միջոց ՝ պահպանելով PWM ելքերը: LED- ները կփչանան ամեն անգամ, երբ նոր հրաման էր ստացվում: Commandամաչափի փոխանակումը հրամաններ ստանալու և PWM- ի ելքերը քշելու միջև էր նաև ծրագրային մեծ դժվարություն: Ես չէի կարող վերականգնել ժամաչափը նոր նիշ ստանալիս, քանի որ ժամաչափը նույնպես օգտագործվում էր PWM ազդանշանները վերահսկելու համար: 10F206- ի հետ աշխատելիս ես Circuit Cellar- ում հոդված տեսա Freescale- ի նոր փոքրիկ MC9RS08KA1 միկրո մասին: Ես սիրում եմ Freescale չիպսերը. Ես նրանց BDM կարգաբերման մեծ երկրպագու եմ: Նախկինում ես շատ էի օգտագործում Star12 չիպերը (ես GM12 Cadillac & Lacern ուլտրաձայնային համակարգի բոլոր ծրագրերը գրել եմ Star12- ում. Իմ ուլտրաձայնային ծրագրակազմը այժմ արտադրվում է այս երկու մեքենաների վրա): Այսպիսով, ես իսկապես հույս ունեի, որ իրենց նոր փոքրիկ չիպսերը լավ կլինեին: Գինը նույնպես ճիշտ է, Digikey- ում նշված չիպերը նշված են մեծ քանակությամբ 38 ցենտով: Freecale- ը լավն էր և ինձ ուղարկեց մի քանի անվճար նմուշներ: Այնուամենայնիվ, Freescale 9RS08 չիպը իսկապես հիմար թվաց. Ես չէի կարող շատ առաջ գնալ դրա հետ: Չիպը նույնպես տառապում է ընդհատումների բացակայությամբ և միայն մեկ ժամաչափով: Դե, գոնե ես դա հասկացա ՝ առանց գումար վատնելու մեկ այլ նախատախտակի պտտման վրա: Տես ստորև բերված նկարները: Այժմ ես գիտեմ. Իմ դիմումի համար ես պետք է ունենամ ընդհատումներ և մեկից ավելի ժամանակաչափ: Վերադառնալով Microchip, ես գտա 12F609 չիպը: Այն ունի ընդհատումներ և երկու ժամանակաչափ: Այն ունի նաև 1K ֆլեշ և 64 բայթ RAM: Բացասական է գինը; Digikey- ն այս չիպերը թվարկում է 76 ցենտ մեծ քանակությամբ: Դե, Մուրի օրենքը շուտով կհոգա այդ մասին: Դրական կողմն այն է, որ 12F609- ը կարող է պատվիրվել նաև DIP փաթեթներով: Բացասական կողմերից ես ստիպված էի գնել հաջորդ մակարդակի վերևի կոմպիլյատոր - դա մի տեսակ այրեց իմ @#$% -ը&.Հիմա ապրիլն է, և ես շատ բան եմ սովորել այն մասին, ինչը չի աշխատի: Ես պտտել եմ տախտակ և գումար եմ վատնել այն կոմպիլյատորի վրա, որն ինձ պետք չէ: Այնուամենայնիվ, մինչ այժմ փորձարկումը հուսադրող է: Նոր կոմպիլյատորով և 12F209 չիպսերով DIP փաթեթներում նստարանային մակարդակի թեստավորումն արագ անցավ: Փորձարկումը հաստատեց, որ ես ունեմ ճիշտ չիպ: Timeամանակն է պտտել մեկ այլ նախատախտակ: Այս պահին ես վճռական եմ տրամադրված:

Քայլ 3. 12F609 զարգացման խորհուրդ

12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ
12F609 զարգացման խորհուրդ

Լավ, նոր նստարանային փորձարկում, ես պատրաստ եմ փորձել մեկ այլ տախտակի պտույտ: Այս տախտակի նախագծում ես իսկապես ուզում էի փորձել նույն երկու լարերի միջոցով էներգիա և հաղորդակցություն ուղարկելու գաղափարը: Եթե կոմունալ սխալներն անտեսվեին, կպահանջվեր ընդամենը երկու լար: Դա պարզապես ներքև է Չնայած հոսանքի լարերի միջոցով հաղորդակցություններ ուղարկելը հիանալի է, դա պարտադիր չէ: Theանկության դեպքում բոլոր լամպերը կարող են միացվել միմյանց հետ մեկ հաղորդալարի վրա: Սա կնշանակի, որ յուրաքանչյուր լամպի համար կպահանջվի երեք լար `չորրորդ ընտրովի հետադարձ կապի կարգավիճակի լարով: Տես ստորև բերված դիագրամը: Ուժը և հաղորդակցությունը կարող են համատեղվել `օգտագործելով պարզ H-Bridge: H-Bridge- ը կարող է առանց մեծ խնդրի քշել մեծ հոսանքներ: Շատ, բարձր հոսանքի LED- ները կարող էին միացվել միայն երկու լարերի վրա: Լամպերի վրա DC հոսանքի բևեռականությունը կարող է շատ արագ փոխվել H-Bridge- ի միջոցով: Այսպիսով, յուրաքանչյուր լամպ օգտագործում է լիարժեք ալիք կամուրջ ՝ DC- ն կրկին նորմալ հոսանքի վերածելու համար: Միկրո կապանքներից մեկը միանում է չմշակված մուտքային DC հոսանքին այնպես, որ կոմունալ ազդանշանը կարող է հայտնաբերվել: Ընթացիկ սահմանափակող ռեզիստորը պաշտպանում է միկրո վրա թվային մուտքը: Միկրո մուտքագրման քորոցի ներսում, հումքի միացման անընդհատ լարումը սեղմվում է միկրո ներքին ճամբարի դիոդների միջոցով. Անջատիչ DC- ն սեղմված է (զրոյից մինչև Vcc վոլտ) այս դիոդներով: Ամբողջ ալիքի կամուրջը, որը շտկում է մուտքային հզորությունը, առաջացնում է երկու դիոդային անկում: Կամրջից երկու դիոդային կաթիլները պարզապես հաղթահարվում են `H-Bridge մատակարարման լարումը կարգավորելով: Վեց վոլտ H-Bridge լարումը ապահովում է գեղեցիկ հինգ վոլտ սնուցում միկրոյում: Այնուհետև օգտագործվում են անհատական սահմանափակող ռեզիստորներ `յուրաքանչյուր LED- ի միջոցով հոսանքը կտրելու համար: Այս հզորության / հաղորդման սխեման, կարծես, շատ լավ է աշխատում: Ես նաև ուզում էի փորձել ավելացնել տրանզիստորի ելքերը միկրո և LED- ների միջև: Նստարանի փորձարկման ժամանակ, եթե 12F609- ը ուժգին մղվի (ելքի չափազանց մեծ հոսանք), այն կթարթի բոլոր ելքերը: Ամբողջ չիպի առավելագույն հոսանքը, ըստ տվյալների թերթի, որը 12F609- ը կարող է ապահովել, կազմում է 90 մԱ, ընդհանուր: Դե, դա չի աշխատի: Ես պարզապես կարող եմ շատ ավելի ընթացիկ կարիք ունենալ, քան դա: Տրանզիստորների ավելացումն ինձ տալիս է 100 մԱ հզորություն մեկ լուսադիոդի համար: Դիոդային կամուրջը գնահատվում է 400 մԱ, այնպես որ 100 մԱ մեկ LED հնարավորությամբ պարզապես տեղավորվում է: Կա բացասական կողմ; տրանզիստորներն արժեն 10 ցենտ, յուրաքանչյուրը: Առնվազն իմ ընտրած տրանզիստորները ներկառուցված են ռեզիստորների մեջ. Digikey- ի մասի համարը MMUN2211LT1OSCT -ND է: Տեղադրված տրանզիստորներով LED- ների առկայծում ՉԿԱ: Արտադրական լամպերի համար, կարծում եմ, տրանզիստորները չեն պահանջվի, եթե օգտագործվում են «նորմալ» 20 մԱ LED լուսադիոդներ: Այս քայլում նախագծված զարգացման խորհուրդը պարզապես փորձարկման և զարգացման համար է: Տախտակը կարող էր շատ ավելի փոքր լինել, եթե ավելի փոքր դիմադրիչներ օգտագործվեին: Տրանզիստորների վերացումը կփրկի նաև տախտակի մի հատված: Շրջանակային ծրագրավորման նավահանգիստը կարող է հանվել նաև արտադրական տախտակների համար: Boardարգացման խորհրդի հիմնական նպատակը էներգիայի/կոմունալ ծառայությունների սխեման ապացուցելն է: Փաստորեն, տախտակները ստանալուց հետո ես պարզեցի, որ տախտակի դասավորության խնդիր կա: Ամբողջ ալիքի կամրջի չիպը ունի հիմար քորոց: Ես ստիպված էի երկու հետք կտրել և յուրաքանչյուր տախտակի ներքևում ավելացնել երկու ցատկող լար: Բացի այդ, LED- ների և միակցիչի հետքերը պարզապես չափազանց բարակ են: Դե, ապրեք և սովորեք: Առաջին անգամը չեմ լինի, երբ ես սխալեցի տախտակի նոր դասավորությունը: Ես ունեի ութ տախտակ, որոնք պատրաստված էին BatchPCB- ի միջոցով: Նրանք ունեն լավագույն գները, բայց դրանք շատ ցածր են: Տախտակները հետ վերցնելը տևեց շաբաթներ: Այնուամենայնիվ, եթե ձեր գինը զգայուն է, BatchPCB- ն միակ ճանապարհն է: Այնուամենայնիվ, ես պատրաստվում եմ վերադառնալ AP սխեմաներին. Դրանք գերարագ են: Ես պարզապես կցանկանայի, որ նրանք ունենային ավելի էժան միջոց տախտակները Կանադայից դուրս ուղարկելու համար: AP Circuits- ն ինձ առաքում է 25 դոլար առաքում յուրաքանչյուր պատվերի համար: Դա ցավ է պատճառում, եթե ես գնում եմ միայն 75 դոլար արժողությամբ տախտակ: Ինձանից երկու օր պահանջվեց ութ փոքրիկ տախտակները միացնելու համար: Եվս մեկ օր պահանջվեց պարզելու համար, որ ձգվող դիմադրությունը R6 (տես սխեմատիկ) խառնաշփոթ էր ինձ հետ: Կարծում եմ, որ R6 ռեզիստորը պարզապես անհրաժեշտ չէ: Տվյալների թերթը կարդալուց հետո ես անհանգստացա, և դա ցույց տվեց, որ այս մուտքային քորոցում ներքին միկրո քաշքշուկներ չկան: Իմ ձևավորման մեջ, այնուամենայնիվ, քորոցն ակտիվորեն անընդհատ վարվում է, ուստի, ի վերջո, քաշքշուկի կարիք իսկապես չկա: Տախտակին հրամաններ ուղարկելու համար ես օգտագործեցի 9600 բաուդ պարզ հաղորդագրություններ Python ծրագրից: Համակարգչից դուրս եկող չմշակված RS232- ը վերածվում է TTL- ի ՝ օգտագործելով MAX232 չիպը: RS232 TTL ազդանշանը անցնում է H-Bridge կառավարման մուտքին: RS232 TTL- ն անցնում է նաև inverter դարպասով ՝ 74HC04 չիպով: Շրջված RS232- ն այնուհետև անցնում է մյուս H-Bridge կառավարման մուտքին: Այսպիսով, առանց RS232 երթևեկի, H-Bridge- ը թողարկում է 6 վոլտ: RS232- ի յուրաքանչյուր բիտի համար H -Bridge- ը բևեռականությունը շրջում է -6 վոլտի այնքան ժամանակ, քանի դեռ RS232 բիթը տևում է: Տե՛ս բլոկ -դիագրամների նկարները ստորև: Python ծրագիրը նույնպես կցված է: LED- ների համար ես մի փունջ եմ գնել https://besthongkong.com կայքից: Նրանք ունեին վառ լուսադիոդներ 120 աստիճանի կարմիր/կանաչ/կապույտ/սպիտակ գույներով: Հիշեք, իմ օգտագործած LED- ները միայն փորձարկման համար են: Ես գնել եմ յուրաքանչյուր գույնի 100 հատ: Ահա այն LED- ների համարները, որոնք ես օգտագործել եմ. Օգտագործելով այս չորս LED- ները `լամպը լցնելու համար, դրանք ավելանում են այնքան, որքան միկրո արժեքը` 82 ցենտ: Վայ

Քայլ 4: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում

Theրագրային ապահովումը իսկապես ստիպում է այս նախագծին տիզ: 12F609- ի աղբյուրի կոդը իսկապես բարդ է: Ես օգտագործում եմ երբևէ վերջին հիշողության վայրը: Բոլոր 64 բայթերը սպառվել են իմ ծածկագրով: Ես ունեմ ահռելի 32 բայթ ֆլեշ, որը մնացել է որպես պահեստ: Այսպիսով, ես օգտագործում եմ RAM- ի 100% -ը և ֆլեշի 97% -ը: Այնուամենայնիվ, զարմանալի է, թե որքան ֆունկցիոնալություն եք ստանում այդ ամբողջ բարդության համար: Յուրաքանչյուր լամպի հետ կապն արխիվացվում է ՝ ուղարկելով ութ բայթ տվյալների փաթեթներ: Տվյալների յուրաքանչյուր փաթեթ ավարտվում է ստուգիչ գումարով, ուստի իսկապես կա յոթ բայթ տվյալներ ՝ գումարած վերջնական ստուգման գումարը: 9600 baud- ով, մեկ տվյալների փաթեթին հասնում է 8 միլիվայրկյանից մի փոքր ավելին: Խնդիրը բազմակողմանի կատարելն է, մինչ բայթերի փաթեթը գալիս է: Եթե LED- ներից որևէ մեկն ակտիվ է PWM ազդանշանով, ելքային PWM- ը պետք է թարմացվի նույնիսկ նոր փաթեթային բայթ ստանալիս: Դա հնարքն է: Ինձանից շաբաթներ և շաբաթներ պահանջվեցին այս ամենը լուծելու համար: Ես հսկայական ժամանակ անցկացրեցի իմ Logiport LSA- ի հետ աշխատելով ՝ փորձելով հետևել յուրաքանչյուր բիթին: Սա իմ երբևէ գրած ամենաբարդ կոդերից է: Դա պայմանավորված է նրանով, որ միկրո -ն այնքան սահմանափակ է: Ավելի հզոր միկրոների վրա հեշտ է գրել չամրացված/հեշտ կոդ և արագ միկրո պատռել այն առանց բողոքելու: 12F609- ի դեպքում ցանկացած չամրացված կոդ ձեզ համար շատ կարժենա: Բոլոր միկրո աղբյուրի կոդը գրված է C- ով, բացառությամբ ծառայության ընդհատման ռեժիմի: Ինչու՞ կարող եք ունենալ այդքան մեծ տվյալների փաթեթներ: Դե, որովհետև մենք ցանկանում ենք, որ LED- ները իրենց ցանկությամբ բարձրանան և իջնեն: Երբ թեքահարթակի պրոֆիլը բեռնվում է, LED- ն կարող է անջատվել և սկսել թեքվել նույնիսկ մեկ այլ LED- ի համար նոր հրամաններ ստանալիս: Յուրաքանչյուր լամպ պետք է ստանա և վերծանի տվյալների տուփի ամբողջ տրաֆիկը, նույնիսկ եթե փաթեթը նախատեսված չէ դրա համար: LED պրոֆիլը բաղկացած է սկզբնական մակարդակից, սկսելու ժամանակից, թեքահարթակից, վերին մակարդակից, վերին կանգառի ժամանակից, թեքահարթակից դեպի ներքև, ներքևի մակարդակից. Տե՛ս կցված դիագրամը: Վա,յ, դա շատ է մեկ LED- ի համար: Այժմ բազմապատկեք LED- ների թիվը: Դա չափազանց շատ է դառնում. Ես կարող էի հետևել միայն երեք լուսադիոդային լուսամփոփներին `թեքահարթակի ամբողջական պրոֆիլներով: Չորրորդը (սպիտակ լուսադիոդը dev- ի տախտակի վրա) ունի միայն թեքահարթակ `դեպի/դեպի հնարավորություն: Դա փոխզիջում է: Նայեք թեքահարթակի պրոֆիլի կցված լուսանկարին: PWM ազդանշանը գեներացվում է ժամանակաչափից, որն աշխատում է 64uS մեկ տիզի վրա: Ութ բիթ ժմչփը պտտվում է յուրաքանչյուր 16.38mS- ի վրա: Սա նշանակում է, որ PWM ազդանշանն աշխատում է 61.04 Հց հաճախականությամբ: Սա լավ չէ տեսանյութը հպելու համար: Այսպիսով, ես օգտագործեցի ծրագրային հնարք և մի քանի լրացուցիչ հաշվարկ ավելացրի ժմչփի մեջ ՝ այն մինչև 60 Հց երկարացնելու համար: Սա տեսահոլովակի հպումը շատ ավելի լավ տեսք է տալիս: PWM ժմչփի (16.67mS) յուրաքանչյուր գլորման վրա ես թարմացնում եմ թեքահարթակի պրոֆիլը (ներ) ը: Հետևաբար, յուրաքանչյուր թեքահարթակ/բնակության տիկն է 1/60 վայրկյան, կամ 60 Հց: Ամենաերկար պրոֆիլի հատվածը (օգտագործելով 255 հաշվարկ) կտևի 4.25 վայրկյան, իսկ ամենակարճը (1 -ի հաշվարկով) կտևի 17 մկմ: Սա ներսում աշխատելու լավ տեսականի է տալիս: Դիտեք տրամաբանական անալիզատորի կից նկարը: Նկարում մանրամասներն իսկապես տեսնելու համար բացեք նկարը դրա բարձր լուծման ռեժիմում: Սա պահանջում է մի քանի լրացուցիչ կտտացում ուսանելի վեբ կայքի վրա: Կա նաև ստորև ներկայացված պրոֆիլի նկարը: Հրամանի արձանագրության փաստաթղթավորումն իմ անելիքների ցուցակում է: Ես նախատեսում եմ գրել տվյալների թերթիկի տիպի փաստաթուղթ `ամբողջությամբ նկարագրելու համար արձանագրությունը: Ես սկսել եմ չիպի տվյալների տվյալները - նախնական տարբերակը այժմ իմ կայքում է:

Քայլ 5: Պոտենցիալ ծրագրեր

Պոտենցիալ ծրագրեր
Պոտենցիալ ծրագրեր
Պոտենցիալ ծրագրեր
Պոտենցիալ ծրագրեր

Տոնածառի լույս. Իհարկե, ես կարծում եմ, որ այս երեխաներով լցված ծառը պարզապես հիանալի կլինի: Ես կարող եմ պատկերացնել կանաչ լույսերի գեղեցիկ տաք շող, ծառի միջով թափվող թեթև ձյուն: Միգուցե կանաչից կարմիրը դանդաղ մարում է պատահական տեղացող ձյան հետ: Hasառի վերև -ներքև պարուրաձև նախշ ստեղծող հալածող լույսերը նույնպես կոկիկ կլինեին: Կոպիտ, ես պատրաստվում եմ կայանել այս ծառը բակում և խելագարել հարևան «onesոնսին»: Այնտեղ փորձեք և հաղթահարեք դա: Առոգանության լուսավորություն. Այն, ինչ շեշտադրման լուսավորության կարիք ունի, այս լամպերի թիրախն է: Իմ խնամի եղբայրը ցանկանում է դրանք դնել իր ձկան տանկի հատակին: Ընկերն ուզում է շեշտել իր տաք ձողի շարժիչը. Գազի ոտնակի վրա հարվածելը կհանգեցնի լույսի կարմիր բռնկման: Ես նաև մտածում էի դրանցից մեկը կառուցել իմ լամպերի միջոցով. Յոթ լամպ կարելի է ծալել յոթ հատվածի լուսադիոդային օրինակով: Հսկայական ցուցադրում կարող էր կատարվել. Հիանալի հետհաշվարկ կլիներ նոր տարիների համար: Կամ գուցե, ֆոնդային շուկան ցուցադրող ցուցադրություն ՝ վատ թվերի կարմիր թվանշաններ, իսկ լավը ՝ կանաչ: Միգուցե արտաքին ջերմաստիճանը ցուցադրող մեծ էկրան: YouTube- ում կան մի քանի հիանալի 3D լուսադիոդային օրինակներ: Այնուամենայնիվ, առկա օրինակները, որոնք ես տեսել եմ, փոքր և ցավոտ են թվում: Հնարավոր է, որ Սուրբ Christmasննդյան օրերին բակում հայտնվի նաև մի մեծ 3D ցանց: WinAmp Plug-In. Բոլոր նրանք, ովքեր եղել են իմ լաբորատորիայում և տեսել են լույսերը, հարցնում են, թե արդյոք նրանք պարում են երաժշտության ներքո: Ես մի փոքր փորեցի, կարծես բավականին հեշտ կլիներ plug-in ավելացնել WinAmp- ին: Plug-in- ը հաղորդագրություններ կուղարկեր կցված լամպերի լարին, որպեսզի լույսերը համաժամացվեն այն երաժշտության հետ, որը նվագում էր WinAmp- ը: Ամանորյա երաժշտություն իմ տոնածառի համաժամեցումը պարզապես հիանալի կլիներ:Տեղադրված Baby Orangutan B-328 ռոբոտի վերահսկիչ H-Bridge- ով. Pololu- ի փոքրիկ վերահսկիչը կատարյալ կլիներ: Տես ՝ https://www.pololu.com/catalog/product/1220 Այս տախտակին արդեն տեղադրված է H-Bridge- ը: Լամպի նախշերը կարող են ծրագրավորվել միկրո համակարգչի մեջ, որպեսզի համակարգիչը կարողանա անջատվել: 802.15.4. 802.15.4 ավելացնելով լամպերը կարող են անլար դառնալ: Տան տոնածառի լույսերը տարածվելու համար սա հիանալի կլիներ: Կամ, հնարավոր կլիներ մեծ շենքային համալիրի յուրաքանչյուր պատուհանին լամպեր ավելացնել: Cool. Rotating 'Lighthouse Beacon: Իմ որդին դպրոցական ծրագիր ուներ Փարոս կառուցելու համար: Գաղափարը կայանում էր նրանում, որ մարտկոցով աշխատող լամպ է կառուցվում թղթե սեղմիչ անջատիչով, որպեսզի Փարոսը փաստացի լուսավորվի: Իմ ոչ մի որդի դրանով դպրոց չի գնա, երբ նա կարողանա լիովին փչող պտտվող փարոս ունենալ: Դիտեք կից նկարներն ու տեսանյութը:

Քայլ 6: Ամփոփում

Ինձ իսկապես զարմացնում է, որ յուրաքանչյուր լամպ ունի 2 ձիաուժ ձիաուժ SOIC-8- ում `80 ցենտով: Լամպերի շարանը երկարացնելով ՝ ավելի շատ լամպեր ավելացնելով, լարի վրա MIPS- ի քանակը նույնպես բարձրանում է: Այլ կերպ ասած, սա մասշտաբային ձևավորում է: 16 լամպերի շարանը դղրդում է, ինչպես նաև 32 MIPS մշակման հզորություն: Պարզապես զարմանալի է: Դեռ շատ աշխատանք կա անելու: boardարգացման խորհուրդը պետք է թարմացվի: Կան դասավորության մի քանի սխալներ, որոնք շտկման կարիք ունեն: Կարծես կոմունալ սխալի ելքային լարերը չեն աշխատում տրանզիստորի ելքի հետ: Դեռևս վստահ չեմ, թե ինչու. Ստացող հաղորդակցության կոդը նույնպես մի փոքր ավելի շատ աշխատանքի կարիք ունի: LED- ները դիտելով ՝ ես տեսնում եմ, որ հաճախակի սխալներ են լինում: Հայտնվում է, որ միջինը մեկ պատահական սխալ է 1000 հաղորդագրության դիմաց: Ես պետք է գտնեմ SMD արտադրող, որը պատրաստ կլինի ինձ համար լամպի տախտակներ պատրաստել: Միգուցե Spark Fun- ին կհետաքրքրի՞: Ես ընկեր ունեմ Հոնկոնգում, որը կարող է ինձ արտադրող գտնել: Տախտակի հավաքումը պետք է ավտոմատացված լինի: Պարզապես անհնար է այս տախտակները ձեռքով կառուցել, ինչպես ես: Անհրաժեշտ է մշակել համակարգչի ինտերֆեյսի տախտակ: Սա պետք է իսկապես հեշտ լինի. Դա պարզապես ժամանակ տրամադրելու համար է: ostախսը թագավոր է `նվազագույն լամպի արժեքը (80 ցենտ միկրո + երեք LED- ների համար` 10 ցենտ յուրաքանչյուրում + տախտակ / դիմադրիչներ / 20 ցենտ դիոդային կամուրջ ընդհանուր առմամբ գուցե 1,50 դոլար: Ավելացրեք հավաքում, էլեկտրամոնտաժ և շահույթ, և մենք խոսում ենք $ 2,00 -ից $ 2,50 մեկ լամպի համար: Արդյո՞ք գեյերը 40 դոլար կվճարեն լարի վրա 16 RGB լամպի լարի համար: Որոշ դրական արձագանքներով ես կշարունակեմ շարունակել այս գաղափարը արտադրանքի վերածելը: Ես կարող էի պատկերացնել, որ վաճառվում են չիպսեր, լամպի մշակման տախտակներ և ամբողջական լուսային լարեր: Տվեք ինձ որոշ հետադարձ կապ և տեղեկացրեք ինձ, թե ինչ եք կարծում: Լրացուցիչ տեղեկությունների և զարգացման շարունակական նորությունների համար այցելեք իմ կայքը ՝ https://www.powerhouse-electronics.com: Շնորհակալություն, Jimիմ Քեմփ

Խորհուրդ ենք տալիս: