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

UChip - Serial Over IR !: 4 քայլ
UChip - Serial Over IR !: 4 քայլ

Video: UChip - Serial Over IR !: 4 քայլ

Video: UChip - Serial Over IR !: 4 քայլ
Video: (COLA-POTATO CHIPS)Who'stheBest?1,2,3 or 4?#shorts #tiktok #viral 2024, Նոյեմբեր
Anonim
UChip - Սերիա IR- ով
UChip - Սերիա IR- ով
UChip - Սերիա IR- ով
UChip - Սերիա IR- ով

Անլար կապը դարձել է մեր նախագծերի հիմնական առանձնահատկությունը մեր օրերում և խոսել անլար կապի մասին, առաջին բանը, որ գալիս է իմ մտքում, Wi-Fi կամ BT է, բայց Wi-Fi կամ BT հաղորդակցության արձանագրությունների հետ աշխատելը հեշտ գործ չէ և շատ է սպառում: MCU ռեսուրսներից ՝ փոքր տարածք թողնելով իմ դիմումը կոդավորելու համար: Հետևաբար, ես սովորաբար ընտրում եմ արտաքին Wi-Fi/BT մոդուլը, որը սերիականորեն միացված է միկրոկոնտրոլերին `դերերը բաժանելու և ավելի բարձր ազատություն ձեռք բերելու համար:

Այնուամենայնիվ, երբեմն Wi-Fi- ն ու BT- ն «գերբեռնված» են որոշ ծրագրերի համար, որոնք պահանջում են ցածր բիթ արագություն և կապի կարճ հեռավորություն: Ավելին, Wi-Fi- ի կամ BT- ի օգտագործումը ենթադրում է ձեր սմարթֆոնը կամ սարքը համապատասխան վավերացման հետ միացնելու անհրաժեշտություն:

Պատկերացրեք, որ պարզապես անհրաժեշտ է միացնել/անջատել արտաքին լույսը կամ փոխել լամպի ուժգնությունը կամ բացել էլեկտրական դարպաս: Արժե՞ արդյոք օգտագործել Wi-Fi կամ BT:

Կախված միջավայրից և ծրագրերից, IR (ինֆրակարմիր) ալիքի երկարությամբ անլար հաղորդակցությունը կարող է օգտակար լինել: Serial over IR- ն, որն իրականացվում է մի քանի արտաքին բաղադրիչներով (3 առանձին բաղադրիչներով) և uChip- ը (Arduino- ի հետ համատեղելի շատ փոքր տախտակ) կարող են լինել այն լուծումը, որը դուք փնտրում էիք:

Նյութերի հաշիվ (մեկ Tx-Rx սարքի համար).

1 x uChip

1 x IR LED. Արտանետումների գագաթնակետը 950 նմ է

1 x TSOP-38238 (համարժեք)

1 x 1KOhm դիմադրություն

Սարքավորումներ

1 x տախտակ/նախատախտակ

1 x Սև պլաստմասե խողովակ. Ներքին տրամագիծը նույն չափի է, ինչ IR LED- ը, խողովակն անհրաժեշտ է TSOP ստացողի հետ խաչասերվելը կանխելու համար:

1 x ալյումինե փայլաթիթեղ (3 սմ x 3 սմ)

1 x Կասետային

ԽՈՐՀՈՐԴ. Դուք կարող եք կատարել միայն TX կամ only-RX սարք, եթե ձեզ անհրաժեշտ է մեկ ուղղությամբ հաղորդակցություն ՝ հեռացնելով ավելորդ RX/TX սարքավորումները շրջանից կամ միացնել/անջատել էսքիզում համապատասխան ծածկագիրը:

Քայլ 1: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Համակցեք բաղադրիչները ըստ սխեմայի:

Մի քանի նշում պարզ սխեմատիկայի վերաբերյալ: Քանի որ TSOP-38238- ը թույլ է տալիս սնուցել 2.5 Վ-ից մինչև 5 Վ, իսկ ներծծում է առավելագույնը 0.45 մԱ (տվյալների թերթիկը գտեք ԱՅՍՏԵ), ես ընդունիչին կաշխատեցնեմ երկու կապի միջոցով, որոնք համապատասխանաբար կապահովեն հող և սնուցում: Սա թույլ է տալիս միացնել/անջատել ընդունիչը ըստ պահանջի և շատ պարզ սարքավորումների էլեկտրագծերի տեղադրում: Ավելին, մեկ ուղղությամբ հաղորդակցության կարիք ունենալու դեպքում կարող եք ընտրել ՝ սարքե՞լ (Tx/Rx) միայն սարք ՝ պարզապես անջատելով/միացնելով TSOP-38238- ը:

Ինչպես է աշխատում սխեման:

Դա բավականին պարզ է: TSOP ելքային քորոցը ցածր է քաշվում, երբ սենսորը 38 ԿՀց հաճախականությամբ հայտնաբերում է 6 կամ ավելի իմպուլսներով գնացք, մյուս կողմից այն բարձր է քաշվում, երբ նման ազդանշան չկա: Հետևաբար, սերիական տվյալները IR- ով փոխանցելու համար, այն, ինչ անում է, LED լուսադիոդային անոդին սնուցելն է 38KHz PWM մոդուլյացված TX սերիական ազդանշանով, որն իջեցնում է LED կաթոդը:

Հետևաբար, սերիական TX0- ի բարձր մակարդակի վրա LED- ը կողմնակալ կամ կողմնակալ չէ հակառակ ուղղությամբ (իմպուլսներ չկան), և TSOP ելքային քորոցը բարձր է քաշվում: Սերիայի վրա ցածր մակարդակ հաղորդելով ՝ LED- ն սնուցվում է և համապատասխանաբար PWM ազդանշանին համապատասխան IR- ի իմպուլսներ է ստեղծում. հետևաբար, TSOP- ի արտադրանքը ցածր է քաշվում:

Քանի որ փոխանցումն ուղիղ է (0-> 0 և 1-> 1), ստացողի կողմից ինվերտորների կամ այլ տրամաբանության կարիք չկա:

Ես կարգավորում եմ LED օպտիկական ելքային հզորությունը `ընտրելով PWM աշխատանքային ցիկլը` ըստ դիմումի: Որքան բարձր է աշխատանքային ցիկլը, այնքան բարձր է օպտիկական ելքային հզորությունը, և, հետևաբար, ավելի հեռու կփոխանցեք ձեր հաղորդագրությունը:

Հիշեք, որ մենք դեռ պետք է զարկերակներ ստեղծենք: Այսպիսով, դուք չպետք է գերազանցեք աշխատանքային ցիկլի 90% -ը, հակառակ դեպքում TSOP- ը ազդանշանը չի ճանաչի որպես իմպուլսներ:

Ձեզ ավելի շատ ուժ է պետք:

Ընթացիկ ուժը բարձրացնելու համար կարող ենք պարզապես նվազեցնել 1 կՕմ դիմադրության արժեքը:

Միգուցե, պարզապես չափազանց պահանջկոտ մի՛ եղեք: MCU- ի քորոցից ստացված առավելագույն հոսանքը սահմանափակվում է 7 մԱ -ով, երբ սովորականից ուժեղ պորտի քորոցը վարելիս (PINCFG. DRVSTR = 1 և VDD> 3V), ինչպես նշված է SAMD21 տվյալների թերթում:

Այնուամենայնիվ, ստանդարտ կազմաձևը (որն ընդունված է Arduino IDE գրադարանների կողմից որպես կանխադրված) սահմանափակում է հոսանքը մինչև 2 մԱ: Հետևաբար, 1kOhm- ի օգտագործումը արդեն տալիս է ընթացիկ սահմանը կանխադրված պարամետրերով:

Ընթացքի բարձրացումը ոչ միայն էլեկտրական բաղադրիչների խնդիր է: Հակիրճ ՝

  • Փոխեք դիմադրությունը (որի նվազագույն արժեքը սահմանափակված է մոտավորապես 470 Օմ -> VDD/470 ~ 7 մԱ);
  • Համապատասխանաբար PORT-> PINCFG-> DRVSTR սահմանեք 1;

Այս գործառույթը ներառող կոդը ես կտրամադրեմ ապագա թարմացման մեջ:

Բայց հիշեք, MCU- ի կապումներից հոսանքն իր սահմաններին մոտ խեղդելը և քամելը այնքան էլ լավ մոտեցում չէ: Իրոք, դա նվազեցնում է MCU- ի կյանքը և հուսալիությունը: Հետևաբար, ես առաջարկում եմ պահպանել շարժիչի նորմալ ուժը երկարաժամկետ օգտագործման համար:

Քայլ 2: mingրագրավորում

Տեղադրեք «IRSerial.ino» էսքիզը uChip- ում (կամ ձեր օգտագործած Arduino- ի համատեղելի տախտակին):

Այն դեպքում, երբ անհրաժեշտ է փոխել PWM- ն առաջացնող քորոցը, համոզվեք, որ օգտագործում եք TCC ժամանակաչափին միացված քորոց, քանի որ ծածկագրի այս տարբերակը աշխատում է միայն TCC ժամաչափերով (այս տեղեկատվության համար ստուգեք ձեր տախտակի «variant.c» - ն:): Ես կավելացնեմ կոդը, որպեսզի ապագա թարմացումներում օգտագործեմ նաև TC ժամաչափեր:

Կոդը բավականին պարզ է: PIN_5- ը ցածր (ապահովում է TSOP GND) և PIN_6 բարձր (TSOP- ի սնուցումը) դնելուց հետո MCU- ն սկսում է PWM- ը PIN_1- ով, սահմանելով ժամաչափի ժամանակահատվածը և գրավումը համապատասխանաբար անհրաժեշտ հաճախականության մոդուլյացիայի հետ (իմ դեպքում դա 38KHz է) և պարտականությունը ցիկլ (որպես կանխադրված ՝ 12.5%): Դա արվում է PWM կապերի վրա ստանդարտ analogWrite () գործառույթը շահագործելով և փոխելով միայն PER_REG (ժամանակաշրջանի գրանցամատյան) և CC (գրավում համեմատել) գրանցամատյանը (գրված կոդը պարզապես կտրում-կպցնում է wiring_analog գրադարանից): Համապատասխանաբար կարող եք սահմանել անհրաժեշտ հաճախականությունը TSOP սենսորին, որը փոխում է PER_REG- ը (որը ժամաչափի հաշվիչի վերակայման վերին սահմանն է), մինչդեռ CC- ն սահմանում է ժամանակաշրջանի արժեքին համամասնորեն `աշխատանքային ցիկլի ցանկալի տոկոսին:

Հաջորդը, կոդը սահմանում է Սերիայի նավահանգիստը ՝ օգտագործելով baud- ի ճիշտ արագությունը, որը 2400 բիթ / վ է: Ինչու՞ է այդքան ցածր բաուդ տոկոսադրույքը: Պատասխանը TSOP տվյալների թերթիկում է, որը կարող եք գտնել ԱՅՍՏԵ: Քանի որ TSOP- ն ունի բարձր աղմուկի մերժման ֆիլտրեր `անցանկալի անցումը կանխելու համար, անհրաժեշտ է բազմաթիվ զարկերակների գնացք ուղարկել` TSOP ելքային քորոցը ներքև քաշելու համար (իմպուլսների թիվը կախված է TSOP տարբերակից, 6 -ը `բնորոշ արժեք): Նմանապես, TSOP- ի արտադրանքը բարձր է քաշվում 10 զարկերակին կամ ավելի համարժեք նվազագույն ժամանակից հետո: Հետևաբար, TSOP ելքը որպես մոդուլացնող TX0 ազդանշան սահմանելու համար անհրաժեշտ է սահմանել բաուդ արագություն ՝ հաշվի առնելով հետևյալ հավասարումը.

Սերիական Baud <PWM_frequency/10

38KHz- ի օգտագործմամբ սա հանգեցնում է 3800 բիթ / վ -ից ցածր բաուդրատի, ինչը նշանակում է, որ ավելի բարձր «ստանդարտ» թույլատրելի արագությունը 2400 պբ է, ինչպես նախկինում կանխատեսվում էր:

Doանկանու՞մ եք բարձրացնել բաուդ փոխարժեքը: Երկու տարբերակ կա:

Ամենահեշտ տարբերակը TSOP- ն ավելի բարձր հաճախականության տարբերակի փոխելը (ինչպես TSOP38256), ինչը թույլ կտա կրկնապատկել բաուդ արագությունը (4800 բիթ / վրկ)

Բավարար չէ ?! Ապա դուք պետք է կազմեք ձեր սեփական օպտիկական կապը `օգտագործելով պարզ IR LED+ֆոտոդիոդ և ուժեղացման միացում: Այնուամենայնիվ, այս լուծումը պահանջում է ծածկագրման և էլեկտրոնիկայի մեծ փորձ, որպեսզի աղմուկը չազդի փոխանցվող տվյալների վրա, և, հետևաբար, դրա իրականացումը ամենևին էլ հեշտ չէ: Այնուամենայնիվ, եթե ձեզ բավականաչափ վստահ եք զգում, ապա ավելի քան ողջունելի է փորձել ստեղծել ձեր սեփական TSOP համակարգը::)

Վերջապես, ես սահմանեցի SerialUSB պորտը (2400bps), որն օգտագործում եմ սերիական մոնիտորի վրա տվյալներ ուղարկելու և ստանալու համար:

The loop () գործառույթը ներառում է երկու սերիաների տվյալների անցնելու համար անհրաժեշտ ծածկագիրը և պատճենվում է ուղղակիորեն SerialPasstch ուրվագծի օրինակից ՝ փոխելով միայն սերիաների անունները:

Քայլ 3: IR LED- ի պաշտպանություն

Պաշտպանող IR LED
Պաշտպանող IR LED
Պաշտպանող IR LED
Պաշտպանող IR LED

Եթե դուք միացնում եք վերը նշված սխեմաները «IRSerial.ino» կոդը բեռնելուց հետո, ստուգեք Arduino IDE- ի Serial Monitor- ը և փորձեք ուղարկել տող: Դուք հավանաբար կտեսնեք, որ uChip- ը ստանում է այն, ինչ փոխանցում է: Շրջանակում խաչաձև խոսակցություն կա ՝ IR LED- ի և նույն սարքի TSOP- ի օպտիկական հաղորդակցության պատճառով:

Ահա գալիս է այս նախագծի դժվար մասը ՝ խոչընդոտելով խաչաձեւ խոսակցություններին: Օղակը պետք է կոտրված լինի ՝ IR- ով երկկողմանի սերիական հաղորդակցություն իրականացնելու համար:

Ինչպե՞ս ենք կոտրում օղակը:

Առաջին տարբերակը ՝ դուք իջեցնում եք PWM աշխատանքային ցիկլը ՝ դրանով իսկ նվազեցնելով LED- ի օպտիկական հզորությունը: Այնուամենայնիվ, այս մոտեցումը նվազեցնում է նաև այն հեռավորությունը, որի միջով դուք ստանում եք հուսալի սերիական IR ալիք: Երկրորդ տարբերակը IR LED- ի պաշտպանությունն է, դրանով իսկ ուղղահայաց IR «ճառագայթ» ստեղծելը: Դա փորձի և սխալի հարց է. վերջապես, օգտագործելով մի կտոր սև օդաճնշական օդային գուլպան, որը փաթաթված էր ալյումինե փայլաթիթեղի և ժապավենի մեջ (ապահովելով էլեկտրական մեկուսացում), ինձ հաջողվեց կոտրել խաչմերուկը: Հաղորդիչ IR LED- ի տեղադրումը խողովակի ներսում կանխում է նույն սարքի TX- ի և RX- ի միջև հաղորդակցությունը:

Նայեք նկարին ՝ իմ լուծումը տեսնելու համար, բայց ազատ զգացեք փորձել այլ մեթոդներ և/կամ առաջարկել ձեր տարբերակը: Այս հարցի բացարձակ լուծում չկա (եթե ձեզ անհրաժեշտ չէ մեկ ուղղության պարզ ալիք), և, հավանաբար, պետք է համապատասխանեցնեք սխեմաների դասավորությունը, PWM աշխատանքային ցիկլը և IR վահանը `ըստ ձեր կարիքների:

Երբ խաչը խզեք, կարող եք հաստատել, որ ձեր սարքը դեռ աշխատում է ՝ ստեղծելով հանգույց Tx-Rx սարքի վրա, որն օգտագործում է IR ալիքի երկարության արտացոլումը IR արտացոլող մակերևույթների վրա:

Քայլ 4: Շփվեք:

Շփվեք!
Շփվեք!
Շփվեք!
Շփվեք!

Դա է ամենը

Ձեր IR սերիայի սերիան պատրաստ է հաղորդակցվելու, օգտագործեք դրանք ՝ IR- ով տվյալներ ուղարկելու, միացնելու/անջատելու համար, ինչ ձեզ դուր է գալիս կամ ստուգեք այն սենսորի կարգավիճակը, որը գաղտնի թաքցնում եք:

Հեռավորությունը, որի վրա հաղորդակցությունը հուսալի է, այնքան չէ, որքան WiFi կամ BT սարքի համար: Այնուամենայնիվ, այն ուղղորդված է (կախված LED լուսանցքից և ներդրված IR պաշտպանական համակարգից), ինչը կարող է շատ օգտակար լինել որոշ ծրագրերում:

Շուտով ես կբեռնեմ մի տեսանյութ, որտեղ դուք կարող եք տեսնել իմ կատարած ծրագրերի մի քանի օրինակ: Վայելեք:

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