Բովանդակություն:
Video: Պարզ պտտվող ապակոդավորիչ `4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս հրահանգը նկարագրում է Arduino Uno R3- ի միջոցով հաջորդական պտտվող կոդավորիչի վերծանման պարզ մեթոդ:
Կոմպակտ ծրագրերը օգտագործվում են անցումների քանակը հաշվելու, կոնտակտային ցատկումը վերացնելու և պտույտի ուղղությունը որոշելու համար: Լրացուցիչ բաղադրիչներ և որոնման աղյուսակներ չեն պահանջվում:
Տրամադրվում են ծածկագրի ընդհատվող և չընդհատվող տարբերակները:
Կոդի ընդհատվող տարբերակը պահանջում է միայն մեկ ընդհատման քորոց:
Պատկերներ:
- Բացման լուսանկարը ցույց է տալիս հավաքված կոդավորիչը:
- Էկրանի կադրը ցույց է տալիս ընդհատված տարբերակի ծածկագիրը և հաշվարկը, երբ կոդավորիչի լիսեռը պտտվում է ժամացույցի սլաքի ուղղությամբ և հակառակ ուղղությամբ:
- Տեսահոլովակը ցույց է տալիս հաշվարկը արագ պտույտի ժամանակ:
Քայլ 1: Շղթայի դիագրամ
Կոդավորիչի միացման դիագրամը ներկայացված է նկ. 1 -ում:
Թռիչքային լարերը ուղղակիորեն կպցվում են կոդավորողի կապում:
Փոխեք երկու կապույտ լարերը, եթե հաշվման ուղղությունը հակադարձվի:
Քայլ 2: Մասերի ցուցակ
Հետևյալ մասերը ստացվել են https://www.aliexpress.com/ կայքից
- 1 միայն Arduino UNO R3 USB մալուխով:
- Միայն 1 հաջորդական պտտվող կոդավորիչ (EC11 կամ համարժեք) անջատիչով:
- Լիսեռին համապատասխան 1 բռնակ:
- 3 միայն Arduino տղամարդ-արու ցատկող լարեր:
Քայլ 3: Տեսություն
Հաջորդական պտտվող կոդավորիչները առաջացնում են երկու քառակուսի ալիք, որոնցից յուրաքանչյուրը տեղաշարժվում է 90 աստիճանով, ինչպես ցույց է տրված Նկար 1-ում:
Կոնտակտ A- ի և B- ի տրամաբանական օրինաչափությունները տարբեր են, երբ լիսեռը պտտվում է ժամացույցի սլաքի ուղղությամբ (CW) և հակառակ ուղղությամբ (CCW) 1 -ից 6 -րդ դիրքերի միջոցով:
Պտտման ուղղությունը որոշելու ընդհանուր մեթոդները ներառում են.
- ապարատային սարքավորում
- երկվորյակ ընդհատումներ
- օրինակի որոնման սեղաններ
Այս նախագիծը օգտագործում է ծրագրային մեթոդ, որը չի պահանջում որոնման աղյուսակներ: [1]
Ուղղություն
Կոնտակտ A- ից և Կոնտակտ B- ից ելքային օրինաչափություններին նայելու փոխարեն կենտրոնանանք A- ի վրա:
Եթե յուրաքանչյուր Կոնտակտ A- ից հետո մենք վերցնում ենք Կոնտակտ B- ն, մենք նշում ենք, որ.
- Կոնտակտ A- ն և B- ն ունեն հակառակ տրամաբանական վիճակներ, երբ կոդավորիչը պտտվում է CW
- Կոնտակտ A- ն և B- ն ունեն նույն տրամաբանական վիճակը, երբ ծածկագրիչը պտտվում է CCW
Փաստացի կոդ:
// ----- Հաշվեք անցումները
CurrentStateA = stateContactA (); եթե (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); եթե (CurrentStateA == CurrentStateB) Հաշվել ++; եթե (CurrentStateA! = CurrentStateB) Հաշվել--; LastStateA = CurrentStateA; }
Այս մեթոդը առաջարկում է հետևյալ առավելությունները.
- որոնման սեղաններ չեն պահանջվում
- պահանջվում է միայն մեկ ընդհատման գիծ
Դեբոնս
Բոլոր մեխանիկական կոդավորողները տառապում են «շփման ցատկումից»:
Եթե անջատիչի կոնտակտը մաքուր չի/կոտրվում է, նրա տրամաբանական վիճակը արագ տատանվելու է HIGH- ից LOW- ի վրա, մինչև անջատիչի կոնտակտը կարգավորվի: Սա հանգեցնում է կեղծ հաշվարկների:
Կոնտակտային ցատկումը ճնշելու մեկ եղանակ է `յուրաքանչյուր անջատիչ կոնտակտի վրա ավելացնել մի փոքր կոնդենսատոր: Կոնդենսատորը և դրա հետ կապված ձգվող դիմադրությունը կազմում են ինտեգրատոր, որն արդյունավետորեն կարճացնում է բարձր հաճախականությունները և թույլ է տալիս անջատիչի լարումը բարձրանալ/ընկնել նրբագեղ կերպով:
Այս մոտեցման բացասական կողմն այն է, որ անցումները կարող են բաց թողնվել, եթե կոդավորիչի առանցքը արագ պտտվի:
Softwareրագրային ապահովման ապամոնտաժում
Այս մեթոդը օգտագործում է երկու հաշվիչ (բաց, փակ), որոնք զրոյի են դրված: [2]
Երբ անցում է հայտնաբերվում Կոնտակտ A- ում.
- Շարունակաբար հարցում ՝ Կապ Ա.
- Բարձրացրեք բաց հաշվիչը և կարգավորեք Փակ հաշվիչը, երբ Կոնտակտ A- ն բարձր է:
- Բարձրացրեք Փակ հաշվիչը և վերագործարկեք Բաց հաշվիչը, երբ Կոնտակտ A- ն OWԱՐ Է:
- Դուրս եկեք օղակից, երբ հաշվիչներից մեկը հասնում է կանխորոշված հաշվարկի: Մենք արդյունավետորեն փնտրում ենք կայուն վիճակի ժամանակահատված `ցանկացած շփման ցատկումից հետո:
Իրական կոդ:
// ----- Հրաժարվել Կոնտակտից Ա
while (1) {if (digitalRead (ContactA)) {// ----- ContactA- ն բաց է փակ է = 0; // Դատարկ հակառակ ինտեգրատոր Բաց ++; // Ինտեգրվել, եթե (Բացել> MaxCount) վերադարձնել HIGH; } else {// ----- ContactA փակ է Բաց = 0; // Դատարկ հակառակ ինտեգրատոր Փակ ++; // Ինտեգրվել եթե (Փակ> MaxCount) վերադարձնել LOW; }}
Կապ B- ից դուրս գալու կարիք չկա, քանի որ A և B կոնտակտների անցումները չեն համընկնում:
Հաշվելը
Մեխանիկական «արգելափակումը» արդյունավետորեն կրկնապատկում է ձեր հաշվարկը, քանի որ երկու հաշվարկ գրանցվում է կտտոցների միջև (տես նկ. 1):
«Կալանավորների» թիվը կարող է որոշվել մոդուլ 2 թվաբանության միջոցով, ինչպես ցույց է տրված ստորև:
Փաստացի կոդ:
// ----- Հաշվեք «ձերբակալվածներին»
if (Count % 2 == 0) {Serial.print ("Count:"); Serial.println (Count / 2); }
Հղումներ
Լրացուցիչ տեղեկություններ կարող եք գտնել ՝
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ButtonorSwitchDebounceinSof…
Քայլ 4: Softwareրագրակազմ
Այս նախագիծը պահանջում է Ardino Uno R3 IDE- ի (ինտեգրված զարգացման միջավայր) վերջին տարբերակը, որը հասանելի է
Ներբեռնեք Arduino- ի հետևյալ երկու ուրվագծերից յուրաքանչյուրը (կցվում է)
- rotary_encoder_1.ino (հարցման տարբերակ)
- rotary_encoder_2.no (ընդհատվող տարբերակ)
Կրկնակի սեղմեք ձեր նախընտրած տարբերակի վրա և հետևեք էկրանի հրահանգներին:
Վայելեք…
Կտտացրեք այստեղ ՝ իմ մյուս հրահանգները դիտելու համար:
Խորհուրդ ենք տալիս:
Երկուական ծառի Մորզ ապակոդավորիչ. 7 քայլ (նկարներով)
Երկուական ծառի Մորս ապակոդավորիչ ՝ a.articles {font-size: 110.0%; տառաչափը ՝ համարձակ; տառատեսակ ՝ շեղագիր; տեքստի ձևավորում. ոչ մեկը; ֆոնային-գույնը ՝ կարմիր;} ա. հոդվածներ ՝ սավառնել {ֆոնային-գույնը ՝ սև;} Այս հրահանգը բացատրում է, թե ինչպես վերծանել Մորզեի կոդը ՝ օգտագործելով Arduino Uno R3.T
Ինչպես կատարել պարզ DTMF (հնչերանգ) հեռախոսագծի ապակոդավորիչ `3 քայլ
Ինչպես կատարել պարզ DTMF (հնչերանգ) հեռախոսագծի ապակոդավորիչ. Սա պարզ նախագիծ է, որը թույլ է տալիս վերծանել DTMF ազդանշանները հիմնականում ցանկացած հեռախոսագծի վրա: Այս ձեռնարկում մենք օգտագործում ենք MT8870D ապակոդավորիչը: Մենք օգտագործում ենք նախապես կառուցված հնչերանգի ապակոդավորիչ, քանի որ, հավատացեք ինձ, թիկունքում ցավ է փորձել և դա անել
RC5 Հեռակառավարման արձանագրության ապակոդավորիչ ՝ առանց գրադարանի ՝ 4 քայլ
RC5 Հեռակառավարման արձանագրության ապակոդավորիչ առանց գրադարանի. Rc5- ի վերծանումից առաջ մենք նախ քննարկում ենք, թե որն է rc5 հրամանը և որն է դրա կառուցվածքը: Այսպիսով, հիմնականում rc5 հրահանգը օգտագործվում է հեռակառավարման վահանակներում, որոնք օգտագործվում են հեռուստատեսություններում, cd նվագարկիչներում, d2h- ում, տնային կինոթատրոնի համակարգերում և այլն: այն ունի 13 կամ 14 բիթ ՝ դասավորված
IR հեռակառավարիչ ապակոդավորիչ ՝ ARDUINO- ի օգտագործմամբ. 4 քայլ (նկարներով)
IR հեռակա ապակոդավորումը, որն օգտագործում է ARDUINO- ն. Սա ևս մեկ օգտվողի համար հարմար ձեռնարկ է `Arduino- ի և IR ընդունիչի միջոցով շատ պարզ IR Remote ապակոդավորիչ պատրաստելու համար: Այս ձեռնարկը կներառի ամեն ինչ `ծրագրաշարի տեղադրումից մինչև IR ընդունիչ օգտագործելը և ազդանշանների վերծանումը: Սրանք
IR հեռակառավարման ապակոդավորիչ Arduino- ի միջոցով. 7 քայլ
IR Remote Control Decoder Using Arduino: Hello Makers, This is a full tutorial how how decode any IR Remote control. Հետևեք ստորև բերված քայլերին