Բովանդակություն:
- Քայլ 1: Նյութեր և բացատրություններ
- Քայլ 2: Սխեմատիկ
- Քայլ 3: Տախտակի ձևավորում
- Քայլ 4. Գործի ձևավորման և հավաքման խորհուրդներ
- Քայլ 5. Կոդ V1 (ապարատային դեբոնս)
- Քայլ 6: Կոդ V2 (ծրագրակազմը ժխտում է ժամաչափերով)
- Քայլ 7: Կոդ V3 (ծրագրակազմը դուրս է գալիս ուղղահայաց հաշվիչով) (խորհուրդ է տրվում) (առանց լուսադիոդի)
- Քայլ 8: Արդյունքը
Video: Օսու! Ստեղնաշար ՝ 8 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Վերջերս սկսեցի խաղալ ռիթմիկ խաղ, որը կոչվում է osu! և առևտրային մինի ստեղնաշարի տեսահոլովակը տեսնելուց հետո ես մտածեցի, որ դա զվարճալի նախագիծ կլինի ինքս նախագծել: Դրանից շատ չանցած ես որոշեցի, որ լավ գաղափար կլիներ այն դնել հրահանգների վրա որպես իմ առաջին նախագիծ:
Եթե ցանկանում եք այս նախագիծը կրկնել հենց վերջին հրահանգով, ապա եղեք իմ հյուրը, բայց իմ արած որոշ մտքեր հիմնված չեն ամենացածր գնի կամ լավագույն որակի վրա: Որոշ բաղադրիչներ ընտրվում են գրեթե զուտ այն պատճառով, որ ես դրանք ունեի պառկած: Եթե դուք կարողանաք կարգավորել այն, ես կհորդորեի ձեզ հարմարեցնել ձեր նախագիծը:
Նշում 1. SMD- ի բաղադրիչները (փոքր էլեկտրոնիկա) օգտագործվում են այնպես, որ եթե դուք կրկնեք այս նախագիծը, կպչելու համար կպահանջվեն զոդման հմտություններ: միգուցե հեշտ զոդման տարբերակ ավելացվի, բայց այդ լուսարձակները չեն մտնում փոսային տուփի մեջ
Նշում 2. Ես մի քանի անգամ թարմացրել եմ ծածկագիրը և այժմ մինչև 3ish տարբերակն եմ: Ես կթողնեմ ամբողջ ծածկագիրը առցանց, բայց խորհուրդ եմ տալիս օգտագործել վերջին տարբերակը: Այն ներկայումս չունի led ֆունկցիոնալություն, բայց այն պետք է լինի լավագույն կատարումը:
Քայլ 1: Նյութեր և բացատրություններ
Կախված նրանից, թե ինչպես եք պատրաստում ձեր նախագիծը, ձեզ կարող են անհրաժեշտ լինել տարբեր բաղադրիչներ, բայց դրանք այն բաղադրիչներն են, որոնք ես օգտագործել եմ: Եթե ժամանակ ունեք և ցանկանում եք գումար խնայել, պատվիրեք aliexpress ձևից և մի պատվիրեք PCB- ն:
1 Arduino pro միկրո + USB մալուխ
3 Kailh BOX կարմիր անջատիչ
3 10k դիմադրություն (0805 SMD)
3 100nF կոնդենսատոր (0805 SMD)
4 APA102 rgb LED (5050 SMD)
3 բանալիներ
1 Այս նախագծում տրամադրված տպագիր տպատախտակ (PCB)
Այս նախագծում տրամադրված 1 3D տպագիր պատյան
Ինչու՞ եմ ես օգտագործում Arduino pro միկրո:
Արդուինոյի տախտակների մեծ մասը, ինչպիսին է Uno- ն (Atmega328), չունեն USB կապի բնիկ աջակցություն: Այո, դուք կարող եք դրանք շատ հեշտությամբ ծրագրավորել USB- ով, և ես կարծում եմ, որ կան լուծումներ, բայց ես սիրում եմ այն պարզ պահել, երբ խոսքը վերաբերում է USB հաղորդակցությանը, և չգիտեմ, արդյոք լուծումները նույնքան արձագանքող են: Այդ տախտակները օգտագործում են արտաքին չիպ ՝ USB հաղորդակցությունը հնարավոր դարձնելու համար, մինչդեռ Arduino pro micro (Atmega32U4) - ում այն ներկառուցված է:
Անջատիչները
Կան բազմաթիվ մեխանիկական անջատիչներ, որոնք կարող եք օգտագործել: Գծային, շոշափելի կամ սեղմիչ Kailh- ից կամ Cherry MX- ից: Ընտրեք, որը Ձեզ դուր է գալիս: Ես օգտագործեցի Kailh անջատիչները, քանի որ դրանք էժան էին Ailexpress- ում: Եթե որոշեք օգտագործել PCB- ն, ձեզ հարկավոր են Kailh BOX անջատիչներ: Գույնը որոշում է զգացումը:
Էլեկտրոնային բաղադրիչներ
Այս գլխում դրանց մասին շատ բան բացատրելու կարիք չկա, բայց եթե դուք չօգտագործեք PCB- ն, ես խորհուրդ կտամ զոդման հեշտության համար սովորական սովորական անցքերի բաղադրամասեր: Unfortunatelyավոք, օգտագործվող լուսարձակները հասանելի չեն փոսերի փաթեթներում: Ես նաև խորհուրդ չեմ տա լարեր օգտագործել SMD փաթեթների վրա, եթե դուք շատ վստահ չեք ձեր զոդման հմտությունների վրա: Նույնիսկ SMD- ի համար PCB- ի վրա «առաջադեմ» եռակցման հմտությունները հավասարեցված են:
Բնակարանային
Ես իսկապես բնակարան եմ տրամադրում այս նախագծում, բայց այն այս պահին թերի է: Պտուտակներ տեղադրելու համար անհրաժեշտ են փոփոխություններ, լուսարձակների բացերը օպտիմալ չեն, arduino- ն ցուցադրվում է, և USB- ի տեղավորման համար անհրաժեշտ է կտրել մի մասը: Ապագայում նոր բնակարան կարող է ավելացվել: Եթե ունեք 3D տպիչ, շարունակեք և տպեք այն, բայց խնդրում ենք մի՛ հեռացեք ձեր արատավոր պատյանը տպելու համար, եթե դա չեք անում և պարզապես օգտագործում եք ինչ -որ նախագծի տուփ:
Քայլ 2: Սխեմատիկ
Այս նախագծի սխեման բավականին պարզ է, բայց ես ուզում եմ բաղադրիչները բացատրել այն մարդկանց համար, ովքեր հետաքրքրված են և չգիտեն այս իրականացումը:
Անցում միացրեք Arduino- ին
Անջատիչները միացված են Arduino 0, 2 և 3 կապումներին, քանի որ դրանք կարող են օգտագործվել որպես արտաքին ընդհատումներ: Սա լրացուցիչ բացատրվում է ծածկագրերի բաժնում:
Դեբունցային սխեմա
Սխեմատիկայի ձախ կողմում մի շրջան է, որը պատճենվում է 3 անգամ: Այս սխեման օգտագործվում է անջատիչը անջատելու համար: Որպեսզի իմանաք, թե ինչ է դեոնսինգը, դուք պետք է հասկանաք անջատիչ վերադարձը, և դա դժվար չէ հասկանալ:
Առաջին նկարը նկարելու համար առաջին հերթին նայեք այս մոդելավորմանը (արագ սեղմեք անջատիչի վրա և նայեք ներքևի ազդանշանին)
Երբ անջատիչը սեղմում կամ բաց եք թողնում, այն ցատկում է, և ձեր ազդանշանը մի քանի միլիվայրկյան մի քանի անգամ փոխվում է բարձրի և ցածրի միջև: Արդուինոն իսկապես արագ է և կարդում է ամեն բարձր ու ցածր այս կարճ ժամանակում: Programրագիրը կուղարկի առանցքային մամուլ կամ հաղորդագրություն ամեն անգամ, երբ բարձր կամ ցածր կարդալը, ուստի յուրաքանչյուր սեղմման դեպքում ձեր համակարգիչը կստանա մի քանի ստեղն սեղմումներ: Իդեալական չէ ռիթմիկ խաղի համար:
Այս դեբոնսային սխեման կդանդաղեցնի ազդանշանի անկման եզրը: Arduino- ի ազդանշանը չի կարող փոխվել այնքան արագ, որքան առաջանում է ցատկումը, այնպես որ այն կկարդա մեկ սեղմումով: Մի անհանգստացեք, որ հաջորդ իսկական մամուլի համար այն կդանդաղի, քանի որ դա տեղի կունենա:
Ընդլայնված:
Atmaga32U4- ը թվային ցածր է կարդում 0.2Vcc - 0.1V = 0.9 վոլտ: Կոնդենսատորի լարումը ցանկացած պահի իր լիցքաթափման մեջ Vcc * e^(-t/RC) է: Եթե ձեր անջատիչի վրա այլ ելքի ժամանակ եք չափում, կարող եք հաշվարկել ձեր դիմադրության և կոնդենսատորի արժեքները:
բանաձևի ձև
LED- ները
Rgb LED- ները APA102 լուսարձակներ են, որոնք անհատապես հասցեագրելի են ժամացույցի և տվյալների գծի միջոցով: Դրանք աշխատեցնելու համար արտաքին բաղադրիչներ պետք չեն: Շատ LED- ների համար դուք պետք է օգտագործեք 5 վոլտին և գետնին զուգահեռ կոնդենսատոր, բայց ընդամենը 4 LED- ով դա ձեզ պետք չէ:
Քայլ 3: Տախտակի ձևավորում
PCB- ն նախագծված է JLCPCB- ում: Ինձ չեն հովանավորում, բայց էժան նախատիպերի համար նրանք հիանալի PCB են պատրաստում: 2 դոլարով դուք ստանում եք 10 նույն տախտակից, բայց առաքումն ինձ համար մոտ 11 դոլար էր: Եթե դուք անպայման չեք ցանկանում rgb լուսավորություն և պլանավորում եք պատրաստել միայն մեկը, ապա պետք է հաշվի առնեք ձեր ստեղնաշարը առանց PCB- ի պատրաստման մասին:
Տախտակի դիզայնը բավականին ուղիղ էր: Ինձ անհրաժեշտ էր միայն անջատիչների բաղադրիչ ավելացնել, բայց որոշ տեսանյութեր դիտելուց հետո հասկացա: Միակ բանը, որ ես հասկացա, այն է, որ անցքերի տեղադրումը մի փոքր շատ մոտ է անջատիչներին:
PCB պատվիրելու համար այցելեք https://jlcpcb.com/ և ընտրեք 2 շերտով տարբերակը: Այն ձեզանից Gerber ֆայլ կպահանջի: ներբեռնեք «.zip» ֆայլը և քաշեք այն պատուհանի մոտ: Անհրաժեշտ չէ այն բացել: Կարգավորումները պետք է լավ լինեն, և դուք կարող եք առաջ գնալ և կատարել պատվերը:
Քայլ 4. Գործի ձևավորման և հավաքման խորհուրդներ
Դիզայն
Նախկինում պատկերված լինելով, իմ դիզայնը թերի է, բայց եթե ցանկանում եք, այն դեռ կարող եք տպել: դիզայնը կատարվել է Fusion 360 -ում: Դա անվճար 3D մոդելավորման ծրագիր է: Գործի անկյունների շրջանակները պետք է կանխեն տպածածկույթից կեղևը:
Եթե դուք ինքներդ եք գործում, միայն մեկ բան է իսկապես կարևոր: Ձեր անջատիչները պետք է ամուր տեղադրվեն և չկարողանան տեղաշարժվել: Ես տրամադրել եմ քառակուսի հատումների նկարներ չափսերով, որպեսզի կարողանաք օգտագործել այն ձեր սեփական դիզայնի համար ՝ ենթադրելով, որ օգտագործում եք Kailh BOX անջատիչներ:
Ժողով
Այժմ դուք ունեք բոլոր բաղադրիչները, որոնք անհրաժեշտ են հավաքման համար: Այս առաջին տարբերակը հավաքելու հրաման կա, քանի որ անջատիչները միացված են:
1. Sոդեք SMD բաղադրիչները: դրանք ռեզիստորներն են, կոնդենսատորները և LED- ները:
2. Sոդեք Arduino pro micro- ը:
3. Եռակցումից առաջ տեղադրեք 3 անջատիչը 3D տպագիր ծածկույթի մեջ: Անջատիչների եռակցումից հետո ծածկը չի կարող հեռացվել: Անջատիչների ապակոդավորումը խորհուրդ չի տրվում և կարող է դրանք քանդել:
4. Այժմ միացրեք անջատիչները տեղում: Դա արեք հնարավորինս արագ, քանի որ պլաստիկ անջատիչները կարող են հալվել և փչացնել դրանք կամ կտրուկ նվազեցնել կտտոցների թիվը:
5. Տեղադրված ծածկը դրեք 3D տպված պատյանում և ամրացրեք ժապավենով կամ օգտագործեք պտուտակներ, եթե դրանք չեն խանգարում բանալիների գլխարկներին:
6. Տեղադրեք keyCaps- ը անջատիչների վրա և ավարտված եք:
Առաջարկություններ
Ձեր ծածկագիրը վերբեռնելուց հետո ապամոնտաժեք կամ դիմակավորեք arduino- ի LED- ները: Լեդերը հաճելի են ունենալ, եթե ձեր կոդը չի վերբեռնվում, բայց հաճելի չէ դիտվել որպես պատրաստի արտադրանք: Պահանջվում է հմտություն և ուղղահայաց պինցետ:
Նաև ներքևի որոշ բռնակներով ոտքերը հարմար են սայթաքման դեմ և թույլ են տալիս rgb լույսը փայլել:
Քայլ 5. Կոդ V1 (ապարատային դեբոնս)
Այս նախագծի ծածկագիրը սկսնակների համար հարմար չէ, այնպես որ, եթե դուք նոր եք սկսում ծրագրավորել arduino- ով, ապա այս ծածկագիրը, հավանաբար, ձեզ մի փոքր կվախեցնի: Այնուամենայնիվ, ես կփորձեմ հնարավորինս լավ բացատրել, թե ինչ է կատարվում: Որոշ բաներ ավելի ուշ բացատրվում են այս տեքստում, այնպես որ, եթե հարցեր ունեք, նախ կարդացեք ամբողջը:
Կոդի վերբեռնում
Նախ ներբեռնեք բոլոր 3.ino ֆայլերը և դրեք դրանք մեկ թղթապանակում: Եթե դուք չունեք Arduino IDE, պարզապես ներբեռնեք այն անվճար arduino պաշտոնական կայքում:
Միացրեք ձեր Arduino- ն ձեր համակարգչին և բացեք «OSU_Keyboard_code_V1.ino»: Գործիքների տախտակում ընտրեք «Arduino/Genuino Micro»: Նաև Գործիքներում ընտրեք ճիշտ COM նավահանգիստը: Սա երբեմն կարող է փոխվել: Ձեր Arduino- ում կոդը վերբեռնելու համար պարզապես կտտացրեք էկրանի վերևի ձախ մասում գտնվող սլաքին և սպասեք, մինչև այն ձեզ ասի, որ այն ավարտված է ներքևի ձախ մասում:
OSU_Keyboard_code_V1
Ներառյալ և սահմանող
Նախ անհրաժեշտ է ներառել Ստեղնաշարի գրադարանը: Սա հնարավորություն է տալիս օգտագործել Arduino- ն որպես ստեղնաշար:
Հաջորդը ես որոշ արժեքներ եմ սահմանում: Define- ը նման է փոփոխականի, բայց դրանք չեն կարող փոխվել, երբ ծրագիրը աշխատում է: Առաջին 9 -ը նախատեսված են ստեղնաշարի բնույթի, arduino- ի համարի և պորտի բիթերի համար:
Այնուհետեւ LED տվյալների եւ ժամացույցի նավահանգիստի բիթերը:
Նաև սահմանվում է լուսարձակների քանակը և փոփոխական `գունավոր անիվի անկյունի համար:
Կարգավորում
Կոդի այս հատվածը կկատարվի միայն մեկ անգամ, երբ arduino- ն միացված է:
Սկզբում LED- ների ժամացույցի և տվյալների կապի նշանները դրվում են որպես ելքեր, իսկ անջատիչի կապերը `որպես մուտքեր: Սա pinMode- ի () առաջադեմ տարբերակն է: Եթե հետաքրքրված եք, որոնեք «ուղիղ նավահանգստի մանիպուլյացիա»:
Keyboard.begin () պարզապես usb կապը սկսում է որպես ստեղնաշար:
Հաջորդ 3 ընդհատումները միացված են անջատիչի կապերին: Ամեն անգամ, երբ անջատիչի քորոցում փոփոխություն է հայտնաբերվում, մի փոքրիկ ծրագիր կիրականացվի: Այս փոքրիկ ծրագիրը հետագայում կկատարվի:
Օղակ
Այս հատվածը շարունակաբար կկրկնվի, քանի դեռ arduino- ն աշխատում է:
Ես այն օգտագործում եմ միայն LED- ների գույնը փոխելու և թարմացնելու համար:
Ընդհատում է
Այստեղ պատրաստվում են այն փոքրիկ ծրագրերը, որոնք կիրականացվեն միայն այն ժամանակ, երբ անջատիչի կապում փոփոխություն հայտնաբերվի: Նրանք նույնական են, բացառությամբ այն բանի, թե որ քորոցին են արձագանքում:
Սկզբում այն ստուգում է, արդյոք կոճակը սեղմված է կամ բաց թողնված, և ուղարկում է ստեղնաշարի ճիշտ հրամանը:
LED (բացատրվում է այլ հերթականությամբ)
Եթե ձեզ հետաքրքիր է, թե ինչպես են վերահսկվում LED- ները, ապա պետք է նայեք APA102 տվյալների թերթին:
OneBit
Սա կրկին թվային գրելու ուղղակի պորտի մանիպուլյացիոն տարբերակն է:
Նախ ստուգում է, արդյոք այն պետք է ուղարկի 0 կամ 1 և համապատասխանաբար քաշում է տվյալների քորոցը ցածր կամ բարձր: Այնուհետև այն շատ կարճ է գրում ժամացույցի բարձրությունը և նորից գրում ցածր:
OneByte
Սա կրկնում է oneBit- ը 8 անգամ «for» օղակով: Այն կարդում է առաջին բիթը բայթում և իր արժեքը փոխանցում է oneBit գործառույթին և նույնն անում հաջորդ 7 բիթերի համար:
LedData
Սա կրկնում է oneByte- ը 4 անգամ ՝ մեկ led- ի համար անհրաժեշտ տվյալները տրամադրելու համար: Առաջին բայթը սկսվում է 111xxxxx- ով և 5 բիթ պայծառության արժեքով xxxxx- ի տեղում: Պայծառությունը կարող է սահմանվել 0 -ից 31 -ի (2^5 = 32 մակարդակ):
Հաջորդ 3 բայթերը կապույտ, կանաչ և կարմիր արժեքների համար են: Յուրաքանչյուր գույնի համար մեկ բայթ:
ColorWheelThisLed
Այս գործառույթը կոչում է ledData ՝ տալիս է նրան rgb գույները ՝ կախված գունային անիվի անկյունից:
16 բիթանոց արժեքը բաժանում է 60 աստիճանի հավասարաչափ տարածված 6 հատվածներում: Պատկերներին նայելը կարող է օգնել ձեզ ավելի լավ հասկանալ:
(տրամադրվում է նաև 8 բիթանոց տարբերակ, բայց մեկնաբանվում է, քանի որ այն չափազանց թրթռում է)
StartEndFrame
Մեկնարկի շրջանակը պետք է օգտագործվի ամեն անգամ, երբ ցանկանում եք նոր գույներ ուղարկել led- ներին և ցանկանում եք արդիականացնել led- ների իրական գույնը
Ես օգտագործում եմ միայն մեկնարկային շրջանակը, քանի որ վերջնագծի կարիքը չկա: Մեկնարկի շրջանակը 4 բայթ է 0. Վերջի շրջանակը `4 բայթ 255 -ից (11111111):
Քայլ 6: Կոդ V2 (ծրագրակազմը ժխտում է ժամաչափերով)
Որոշ ժամանակ խաղալուց հետո ես նկատեցի ապարատային դեբոնսի կրկնակի հպման խնդիրներ: Սա կարող է շտկվել այլ արժեքային ռեզիստորների կամ կոնդենսատորների միջոցով, բայց քանի որ կոճակները և կափարիչը շարժական չեն, ես մտածեցի, որ ծրագրաշարի ապամոնտաժումը լավ լուծում կլինի: Softwareրագրային ապահովման ապամոնտաժումը պետք է աշխատի, եթե ապարատային ապամոնտաժումն իրականացվի, թե ոչ: Իմ ընթացիկ կարգավորման մեջ ես չկարողացա կափարիչը հանել, այնպես որ ես պարզապես թողեցի դիմադրիչները և կոնդենսատորները տեղում:
Ես չեմ բացատրի ծածկագիրը նույնքան ծավալուն, որքան նախորդ տարբերակը, քանի որ դա մի փոքր ավելի դժվար է բացատրել:
Հիմնականում ծածկագրի մեծ մասը նույնն է աշխատում, և led ծածկագիրը մնում է անփոփոխ: այն, ինչ փոխվեց, արտաքին ընդհատումներն այլևս չեն օգտագործում arduino գործառույթները: Այժմ այն աշխատում է մաքուր C կոդով: Եվ հիմա այն, ինչ ավելացվում է, ծրագրաշարի ընդհատումն է: Դրա համար ես օգտագործեցի AVR ժմչփները `որոշակի ժամանակ սպասելու համար, մինչև որ վերադարձը դադարեցվի: Քանի որ ժամանակաչափերն ընդհատվում են ՝ ելքի ժամանակը չի ազդում հանգույցում կատարվող որևէ բանի վրա:
Միակ բացասական կողմը, որին կարող եմ անդրադառնալ, այն է, որ arduino- ի հետաձգման գործառույթներն այլևս չեն կարող օգտագործվել: Քանի որ հետաձգման գործառույթներն օգտագործում են erամաչափ 0 -ը, և այս ծրագիրը օգտագործում է erամաչափ 0 -ը ՝ դուրս գալու համար:
Պատկերում կարող եք տեսնել, թե ինչպես է կոդն աշխատում կոպիտ կերպով: Մեմ բիթը ցույց է տալիս, թե արդյոք ժամանակաչափն աշխատում է: Այն, ինչ պատկերված չէ, այն է, որ կոճակի վերջում սեղմելիս մուտքը ցածր է: Այս դեպքում միայն կոճակը կուղարկվի, մինչ կոճակն արդեն ազատված է: Դա նշանակում է, որ բանալին կպահվի համակարգչի մասով: Այս հազվագյուտ կատարման համար չեկը կձևակերպվի, երբ ժամաչափի ժամկետը լրանա: Եթե ժմչփի վերջում կոճակը սեղմված չէ, կուղարկվի հիմնական թողարկման հրաման:
Քայլ 7: Կոդ V3 (ծրագրակազմը դուրս է գալիս ուղղահայաց հաշվիչով) (խորհուրդ է տրվում) (առանց լուսադիոդի)
Այս ծածկագիրը նույնպես ունի տարբերակ, որտեղ ձեզ հարկավոր չեն ներքև քաշվող դիմադրիչներ: Համոզվեք, որ յուրաքանչյուր կոճակ միացնում եք մուտքին և GROUND- ին: Օգտագործվում է ներկառուցված քաշքշուկը:
Ես նաև որոշ չգրանցված մամլիչներ եմ զգացել V2 ծածկագրում: Կարծում եմ, որ ծածկագիրը պարզապես չափազանց բարդ դարձավ իր ժամանակաչափով և արտաքին ընդհատումներով, և գուցե ես որոշ բացառություններ բաց թողեցի: Այդ պատճառով ես զրոյից սկսեցի փնտրել ինտերնետում ծրագրային ապահովման հեռացման մեթոդներ:
(անկեղծ ասած, այս նախագծի առնվազն կեսը այս պահին դարձել է կոճակի հեռացում)
Որոշ որոնումներից հետո հանդիպեցի այս գրառմանը.
www.compuphase.com/electronics/debouncing….
Honestիշտն ասած, ինձ բավականին ժամանակ պահանջվեց, որպեսզի լիովին հասկանամ, թե ինչպես է այն աշխատում: Այն ներառում է բավականին բարդ մի քանի մանիպուլյացիաներ, բայց ես կփորձեմ դա հնարավորինս հեշտացնել: Այնուամենայնիվ, իմ բացատրությունները կլինեն միայն գրառման լրացում, այնպես որ դուք պետք է գոնե կարդաք «ուղղահայաց հաշվիչները», «ծանոթագրված իրականացումը» և «նվազեցման ուշացումը»:
Իմ բացատրությունը
Իմ ավելացրած ժամանակացույցի դիագրամը (պատրաստված WaveDrom- ում) պետք է գոնե մի փոքր ավելի հասկանալի դարձնի այս դժվարամիտ բիթ մաթեմատիկան: Նկատի ունեցեք, որ պատկերն ունի 2 հաշվիչ, բայց իմ կոդը `3. Սա նշանակում է ավելի երկար դուրսբերման ժամանակ:
Մեկ բիթ մեկ արժեքի համար
Ուղղահայաց հաշվիչի իրագործմամբ հնարավոր է միաժամանակ մի քանի կոճակներ դուրս բերել զուգահեռաբար: Բոլոր արժեքները Byte տիպի են (uint8_t) և բաղկացած են 8 բիթից: մեզ չի հետաքրքրում, թե ինչ արժեք է պարունակում այս բայթերից որևէ մեկը, այլ մեզ հետաքրքրում են բիթերն ինքնուրույն: Մերժման ենթակա յուրաքանչյուր բուտոն օգտագործում է յուրաքանչյուր բայթից միայն մեկ բիթ: Առաջին կոճակը օգտագործում է յուրաքանչյուր բայտի միայն առաջին բիթը, երկրորդ կոճակը օգտագործում է երկրորդ բիթը և այլն:
Բոլորը միևնույն ժամանակ
Օգտագործելով բիթ մաթեմատիկա, հնարավոր է զուգահեռաբար կատարել այս քորոցների հեռացումը: Եվ, չնայած բիթ մաթեմատիկան բավականին բարդ է, այն շատ արդյունավետ է պրոցեսորի համար:
8 բիթանոց տիպի դեպքում հնարավոր է դա անել 8 կոճակի դեպքում: Ավելի մեծ տվյալների տիպերի օգտագործումը թույլ է տալիս միանգամից ավելի շատ ցնցումներ կատարել:
Դեբունսը
Հեռացման ռեժիմը կատարվում է յուրաքանչյուր 1 միլիվայրկյանում `ժամաչափի ընդհատմամբ:
երբ կոճակը սեղմվում է կոճակը Պետությունը, որը դեբունացված վիճակն է, աննկատ իջնելու է ՝ նշելով կոճակը սեղմելը: Թողարկում հայտնաբերելու համար կոճակը պետք է բավականաչափ բարձր լինի, ինչը նշանակում է, որ այն որոշակի ժամանակ չի ցատկել: Toggle- ն օգտագործվում է կոճակի փոփոխությունը նշելու համար: Հաշվիչի բիթերը օգտագործվում են…. հաշվելով, թե որքան ժամանակ է, ինչ վերադարձ չի եղել:
Դելտան ցույց է տալիս տարբերություն մուտքի և դեոնսացված վիճակի միջև: Միայն տարբերության դեպքում հաշվիչը կհաշվի: հաշվիչը կվերակայվի, երբ ցատկում հայտնաբերվի (դելտան 0 է):
Քայլ 8: Արդյունքը
Եթե ամեն ինչ լավ ընթանա, ապա այժմ պետք է աշխատող ստեղնաշար ունենաս ՝ Օսուին նվագելու համար: վրա. Ես անձամբ ընդհանրապես որևէ ուշացում չեմ նկատել: Եթե այո, խնդրում եմ ինձ տեղյակ պահեք: Բացի այդ, եթե որևէ հարց կա, ազատ զգացեք որևէ բան տալու:
V2- ի մասին նախորդ հիշատակումները չեն նշանակում որպես խոստում, այնպես որ մի հետաձգեք այս նախագիծը, քանի որ ցանկանում եք սպասել V2- ին:
Հուսով եմ, որ ձեզ դուր կգա ձեր ստեղնաշարը:
Օսու! անունը ՝ Thomazzz3
Անսարքությունների վերացում
Եթե կարծում եք, որ ստեղնաշարի հետ խնդիրներ ունեք, նախ բացեք տեքստային խմբագիր և սեղմեք յուրաքանչյուր ստեղնը մեկ անգամ կարճ ժամանակով:
Արդյո՞ք մեկ կամ մի քանի ստեղներ չեն աշխատում:
Հնարավոր է, որ դուք զոդման ժամանակ ներքին անջատիչ եք ոչնչացրել: Եթե ունեք մուլտիմետր, միացրեք այն անընդհատության/ազդանշանային ազդանշանի վրա, տեղադրեք այն անջատիչին զուգահեռ, մինչդեռ Arduino- ն միացված չէ և սեղմեք ստեղնը: Այն պետք է ազդանշան տա:
Արդյո՞ք ձեր մուտքագրած կերպարները համընկնում են Osu- ում կազմաձևված ստեղների հետ: ?
Փոփոխեք arduino կոդի նիշերը առաջին 3 #Սահմանումներում ('' անհրաժեշտ է):
Կամ փոխեք ձեր Օսուն: կարգավորումներ ՝ կազմաձևված ստեղները օգտագործելու համար:
Արդյո՞ք մեկ կամ մի քանի ստեղներ կրկնվում են մի քանի անգամ:
Հնարավոր է, որ անջատման սխեման չաշխատի ձեր անջատիչների համար կամ ճիշտ միացված չէ: Ստուգեք ձեր զոդման կապերը: Եթե այն դեռ հայտնվի, փորձեք 1uF կոնդենսատորի արժեքը: Դա շատ դժվար կլինի PCB օգտագործողների համար:
Եթե խնդիրներ ունեք LED- ների հետ
Արդյո՞ք LED- ները թարթում են:
Erոդման միացումը կարող է թուլացած լինել: Եթե դուք օգտագործում եք PCB- ն, հաստատեք, որ զոդման անագը իրոք հոսել է տպագրության պահոցի վրա:
Արդյո՞ք լուսադիոդներից ոչ մեկը չի աշխատում կամ որոշակի թվով LED- ներ չեն դադարում աշխատել:
Ստուգեք շորտերի առկայությունը առաջին լուսադիոդի կոնտակտների միջև (հետևեք հետքերին) և Arduino- ի ելքերի վրա ստուգեք լավ կապի առկայությունը և կրկին առաջին LED- ը: Եթե հաստատված է, որ ճիշտ է և դեռևս թերություն, գուցե անհրաժեշտ լինի փոխարինել առաջին LED- ը:
Եթե դա շտկվի, անհրաժեշտության դեպքում կրկնել հաջորդ LED- ների համար:
Խորհուրդ ենք տալիս:
HotKeys ստեղնաշար ՝ հատուկ պրոֆիլներով ՝ 14 քայլ (նկարներով)
HotKeys ստեղնաշար ՝ անհատականացված պրոֆիլներով. Հուսով եմ, որ դուք լավ եք անում այս համաճարակի պայմաններում: Ապահով եղիր. Ուժեղ եղիր. #COVID19 Լինելով արդյունաբերական դիզայներ ՝ ես պետք է մուտք գործեմ ավելի քան 7-8 ծրագրակազմ, որն ամեն օր ներառում է Solidworks, Photoshop, Illustrator, Keyshot, Indesign և այլն, և այո, մի քանի գ
Arduino մեխանիկական ստեղնաշար. 5 քայլ (նկարներով)
Arduino մեխանիկական ստեղնաշար. Մեկ այլ նախագծի համար ինձ քորոց էր պետք, ուստի որոշեցի ստեղնաշար պատրաստել տանը պահած մասերով
Arduino հաշվիչ ՝ օգտագործելով 4X4 ստեղնաշար. 4 քայլ (նկարներով)
Arduino հաշվիչ 4X4 ստեղնաշարի միջոցով. Այս ձեռնարկում մենք կկառուցենք մեր սեփական հաշվիչը Arduino- ի հետ: Արժեքները կարող են ուղարկվել ստեղնաշարի միջոցով (4 × 4 ստեղնաշար), իսկ արդյունքը կարելի է դիտել LCD էկրանով: Այս հաշվիչը կարող է կատարել պարզ գործողություններ, ինչպիսիք են ՝ Լրացում, հանում, բազմապատկում
Rmարթուցիչի ստեղնաշար MQTT ESP8266: 4 քայլ (նկարներով)
Rmարթուցիչի ստեղնաշար MQTT ESP8266. Այս հրահանգում ես ձեզ ցույց եմ տալիս, թե ինչպես եմ պատրաստել մարտկոցով աշխատող ստեղնաշար `իմ տան ահազանգը միացնելու և անջատելու համար: Ապագայում ես պլանավորում եմ կատարելագործել մեկը, որի մեջ ներառված է RFID ընթերցող և որը մարտկոցից չի սնվում: Նաև ես պլանավորում եմ կարդալ ստեղնաշար ՝
Արագ և կեղտոտ Das ստեղնաշար (դատարկ ստեղնաշար) ՝ 3 քայլ
Արագ և կեղտոտ Das ստեղնաշար (դատարկ ստեղնաշար). A Das ստեղնաշարն ամենահայտնի ստեղնաշարի անունն է, որի վրա գրություններ չկան ստեղների վրա (դատարկ ստեղնաշար): Das ստեղնաշարը վաճառվում է 89,95 դոլարով: Այս հրահանգը ձեզ կառաջնորդի, չնայած որ ինքներդ պատրաստեք այն ցանկացած հին ստեղնաշարով, որի շուրջը պառկած եք