Բովանդակություն:
- Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի
- Քայլ 2: Լուծում
- Քայլ 3: Կուլիսների հետևում…
- Քայլ 4. Հնարավորությունների հետագա ընթերցում/ կատարելագործում
Video: Վերականգնել սխալ կազմաձևված HC-06 Bluetooth մոդուլը ՝ 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Pureուտ մաքսիմալիզմից ելնելով ՝ ես կարգաբերեցի իմ HC-06 Bluetooth (ստրուկ) մոդուլը baud փոխարժեքով 1, 382, 400 baud արագությամբ ՝ AT+BAUDC հրամանով: Այն ժամանակից ի վեր, ինչ Arduino- ն միացված էր դրան, չէր կարող օգտագործել մոդուլը SoftwareSerial գրադարանով: Ես փորձեցի վերականգնել բաուդ արագությունը Arduino- ի ապարատային սերիալով (կապում 0 և 1), առանց բախտի:
Ես նաև փորձեցի Google- ում թեման գտնել ՝ առանց գտնելու ընդունելի լուծում: Միգուցե համակարգչի ներկառուցված սերիական նավահանգստի օգտագործումը կարող էր լուծում լինել (տրամաբանական մակարդակի 12V- ից 3V3 տեղաշարժի դեպքում), բայց իմ համակարգիչը չունի այս հնացած նավահանգիստը, ուստի ես ստիպված եղա մեկ այլ լուծում տալ:
Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի
- Arudino/Genuino տախտակ ՝ լռելյայն Atmel ATMEGA328P-PU MCU- ով (@16MHz):
- HC-06 Bluetooth մոդուլ, որը լսում է 1, 382, 400 բաուդ ձայնով
- Հիմնական arduino IDE ՝ https://www.arduino.cc կայքից
Քայլ 2: Լուծում
Խնդրում ենք նկատի ունենալ, որ այս հրահանգը և լուծումը պատրաստված են 1, 382, 400 baud (AT+BAUDC) սցենարի համար: Լուծումը չի աշխատի այլ բաուդ դրույքաչափերի դեպքում: Այլ դեպքերի լուծման համար դիմեք քայլ 3 -ից սկսած քայլերին:
Լուծումն իսկապես պարզ է:
- Միացրեք HC-06- ի VCC կապը Arduino- ի 5V կապին:
- Միացրեք HC-06- ի GND կապը Arduino- ի GND կապին:
- Միացրեք HC-06- ի RXD կապը Arduino- ի 2-րդ կապին:
- HC-06- ի TXD քորոցը միացված թողեք (կամ միացեք 8-րդ կապին):
- Վերբեռնեք hc06reset.ino ուրվագիծը:
- Hրագիրը HC-06- ը կդնի 115, 200 baud ռեժիմի (AT+BAUD8):
- Օգտագործեք ձեր վերականգնված HC-06 մոդուլը, ինչպես նախկինում:
Քայլ 3: Կուլիսների հետևում…
Arduino IDE- ի հետ տրամադրվող SoftwareSerial գրադարանը ունակ է փոխանցել առավելագույնը 115, 200 բիթ/վայրկյան, այնպես որ բավականաչափ արագ չէ հաղորդակցվելու ցանկալի 1, 382, 400 բաուդ արագությամբ: Հաշվի առնելով, որ լռելյայն Arduino տախտակն աշխատում է 16 ՄՀց հաճախականությամբ, տեսականորեն չսեղմված առավելագույն բիթ -բիթը 16 000 000 000 բիթ/վրկ է: Մինչ այժմ մենք լավ ենք:
Հիմնվելով SoftwareSerial.cpp- ի իմ ընկալման վրա ՝ սերիալ հաղորդակցությունն իրականացվում է փոփոխությունների միջև ընկած ուշացման (որը գալիս է բաուդ արագությունից) ելքային բարձր (= 1) կամ ցածր (= 0) սահմանման միջոցով:
- Ելքային քորոցը լռելյայն բարձր է (նշանակում է ՝ տվյալներ չկան), ապա
- a Start bit- ը փոխանցվում է (որը ցածր է քաշում քորոցը), այնուհետև
- LSB- ից MSB- ին փոխանցվող տվյալների 8 բիթ, (+5V, երբ բիթ 1 -ը և 0 -ն այլ կերպ) այն ժամանակ
- փոխանցվում է Stop բիթ (որը բարձր է քաշում քորոցը)
Այս կերպ 1 բայթ է փոխանցվում ՝ օգտագործելով 10 բիթ:
Հաղորդագրությունը, որը մենք պետք է ուղարկենք, AT+BAUD8 է (առանց / n, / r վերջում): Այս հրամանը HC-06- ը վերադարձնում է 115, 200 baud փոխարժեքի, որը կարող է մշակվել սովորական գրադարանների կողմից:
Որպեսզի բիթեր ուղարկենք 1, 382, 400 բիթ/վրկ արագությամբ, յուրաքանչյուր բիտի համար մենք ունենք 1/1, 382, 400 վայրկյան ժամանակ (դա մոտավորապես 723.38 նս է) յուրաքանչյուր բիտի համար: Arduino- ն աշխատում է 16, 000, 000 ՄՀց արագությամբ, այնպես որ յուրաքանչյուր ցիկլ տևում է 1/16, 000, 000 վայրկյան, այսինքն 62,5 նս մեկ ցիկլի համար:
Օգտագործելով AVR հավաքման ծածկագիրը `մենք կարող ենք օգտագործել OUT հրամանը` ելքային քորոցը բարձր կամ ցածր սահմանելու համար, իսկ NOP- ը `սպասելու հենց մեկ պրոցեսորի ցիկլ: Երկու հրամաններն էլ ուտում են ճիշտ 1 պրոցեսորի ցիկլ: Այս կերպ 723.38 ns բիթ ժամանակը կարող է ծածկվել 11 -ից 12 arduino հրահանգներով ՝ յուրաքանչյուր փոխանցված բիտի համար: Մի բան պետք է հաշվի առնել. OUT հրամանը միանգամից սահմանում է մի ամբողջ բայթ, ուստի մենք պետք է ընտրենք PORTx, որտեղ դա խնդիր չէ: Օգտագործելով ATMEGA328P-PU, օրինակ ՝ PORTD (arduino կապում 0-7) կատարյալ է այս վիճակի համար: Բիթը դնելուց հետո պետք է լրանա միայն համապատասխան ժամանակը, որը կատարվում է 10 -ից 11 NOP- ով և վերջ:
Հաշվարկման մանրամասները կարող եք գտնել ստորև բերված Excel ֆայլում: Այս ֆայլը ստեղծեց ծրագրի համար անհրաժեշտ հավաքական հրահանգներ: Ստեղծված ծածկագիրը կպցնելուց հետո միայն մի քանի փոխարինում պետք է կատարվեր:
Քայլ 4. Հնարավորությունների հետագա ընթերցում/ կատարելագործում
- Գուցե ավելի արագ SoftwareSerial գրադարան կարող է ստեղծվել ՝ օգտագործելով նախորդ Քայլում նկարագրված տեխնիկան:
- FedericoK2- ը հիանալի գործիք է պատրաստել, որը ստեղծում է HC-06 վերականգնման ծածկագիրը ՝ հնարավոր յուրաքանչյուր բիթային արագության համար: Մուտք գործեք կայք այստեղ ՝ https://tools.krum.com.ar/save_your_hc-06/ Շնորհակալություն FedericoK2
Խորհուրդ ենք տալիս:
Թրթռումային սխալ ՝ 5 քայլ
Թրթռումային սխալ. Այս հոդվածը ցույց է տալիս թրթռումային սխալ: Թրթռման բարձրախոսն ակտիվանում է, երբ սխալը տեղադրվում է ջրի մեջ: Ես սովորեցի այդ հոդվածներից. /https://www.in
SSS- ի կազմաձևված կիթառի հավաքարարի զոդում `3 քայլ
SSS- ի կազմաձևված կիթառի հավաքարարի վաճառք. Խրատականում ես կանցնեմ ձեր սեփական SSS կիթառի պիկվարդի միացման գործընթացը: Նախևառաջ, եթե դուք կատարում եք այս նախագիծը, պետք է փորձեք արժանապատիվ պատկերացում կազմել գործընթացի մեջ մտնող մասերի մասին: SSS ձևաչափը հիմնականում երեքն է
Ring Solar Sign Teardown: Ես սխալ եմ արել, այնպես որ դուք ստիպված չեք: 11 քայլ
Ring Solar Sign Teardown: Ես դա սխալ արեցի, այնպես որ դուք չունեք. Ես ստացել եմ Ring Doorbell, որը բավականին հիանալի է: Yay for Ring: Այնուհետև ես ձեռք բերեցի Ring Stick-up տեսախցիկ, երբ շարունակվում էր մոտավորապես Գոհաբանության օրվա առցանց վաճառքը: 50 դոլար զեղչ, և նրանք ինձ ուղարկեցին այս հիանալի օղակաձև արևային նշանը ԱՆՎԱՐ (ընդամենը 49 դոլար արժեքով): Վստահ եմ, որ
Ultrasmall Ultrastable DIY UHF լրտեսական սխալ ՝ 6 քայլ
Ultrasmall Ultrastable DIY UHF լրտեսական սխալ
3D սկանավորման գործընթաց և սխալ. 3 քայլ
Եռաչափ սկանավորման գործընթացը և սխալը Մի բան, որ ես հասկացա, այն է, որ ես չունեի պատշաճ լուսավորություն, անկյունը պետք է ամբողջովին ուղիղ լինի, ինչպես նաև այն փաստը, որ անվճար կախված առարկաները (ենթ