![Անձրևաջրերի ուլտրաձայնային տանկի հզորության հաշվիչ `10 քայլ (նկարներով) Անձրևաջրերի ուլտրաձայնային տանկի հզորության հաշվիչ `10 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-4738-83-j.webp)
Բովանդակություն:
- Քայլ 1: Մաթեմատիկա…
- Քայլ 2: Գործնականություն
- Քայլ 3: Բաղադրությունը
- Քայլ 4. Նախատիպի (և ծածկագրի) փորձարկում
- Քայլ 5. Անձրևաջրերի չափիչ Ino ուրվագիծ
- Քայլ 6: Կոդի բեռնում Arduino Pro Mini (առանց USB)
- Քայլ 7: Հավաքում
- Քայլ 8: Ավարտված հոդված
- Քայլ 9. Հետգրություն - հարյուր (և հինգ) տոկոս:
- Քայլ 10: Հետագա մտքեր
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48
![Անձրևաջրերի տանկի ուլտրաձայնային հզորության հաշվիչ Անձրևաջրերի տանկի ուլտրաձայնային հզորության հաշվիչ](https://i.howwhatproduce.com/images/002/image-4738-84-j.webp)
Եթե դուք ինձ նման եք և մի փոքր բնապահպանական խիղճ ունեք (կամ պարզապես մաշկի թիթեղները ձգտում են խնայել մի քանի դոլար, ինչը նաև ես եմ …), ապա կարող եք անձրևաջուր ունենալ: Ես ունեմ տանկ ՝ հավաքելու Ավստրալիայում հանդիպող բավականին հազվադեպ անձրևը, բայց տղա՛, տղա՛ս, երբ անձրև է գալիս այստեղ, ԻՐԱԿԱՆ անձրև է գալիս: Իմ բաքը կանգնած է մոտ 1,5 մ բարձրության վրա և գտնվում է ցատկի վրա, այսինքն ՝ ջրի մակարդակը ստուգելու համար ես պետք է դուրս գամ քայլերից (կամ - քանի որ ես շատ ծույլ եմ, հավասարակշռում եմ անորոշ կերպով խորովածի խորովածի հին գազի շշի վրա): մշտական բնակություն հաստատել որպես «քայլ» տանկի կողքին):
Ես ուզում էի ինչ -որ կերպ կարողանալ ստուգել տանկի ջրի մակարդակը, առանց ամբողջ ձեռքով բարձրանալու և կախված խողովակի վրա (մինչդեռ մտահոգված էի, թե ինչ սարդեր կարող են լինել դրա հետևում. Լսել ես ավստրալական սարդերի մասին, այնպես չէ՞): … Այսպիսով, էլեկտրոնիկայի նկատմամբ հետաքրքրության նոր տևողությամբ և չինական Arduino- ի էժան կլոններով ebay- ում, ես որոշեցի զբաղվել «վիջեթ» ստեղծելով `աշխատանքն ինձ համար կատարելու համար:
Այժմ, իմ «երազանքի» վիջեթը պետք է մշտապես տեղադրվեր տանկի մեջ, օգտագործեի արևի լիցքավորված էներգիայի աղբյուր, իմ ավտոտնակում հեռակա ընթերցմամբ, կամ գուցե Bluetooth- ով անլար հաղորդիչ, որը ես կարող էի ստուգել իմ հեռախոսից, կամ գուցե նույնիսկ ESP տիպի սարք, որը հյուրընկալում է ինքնաբերաբար թարմացվող վեբ էջ, որպեսզի կարողանամ ինտերնետից աշխարհի ցանկացած կետից ստուգել իմ տանկի ջրի մակարդակը … բայց իսկապես. Այսպիսով, ես մի փոքր հետ հավաքեցի իմ գերագույն իդեալները և հեռացա լուծման անլարությունից, մշտապես տեղադրվածությունից, արևային լիցքավորումից և տանկի մակարդակը դրսից (միշտ Ենթադրելով, որ դրա հետևի ծայրը հասանելի է WiFi- ին, այսինքն …)
Ստացված նախագիծը իջեցվեց վերևում տեսվող ձեռքի միավորի, որը կարելի է պարզապես պահել տանկի բացման վրա և ակտիվացնել սեղմիչով, թվային ընթերցմամբ, որը կարելի է կարդալ գետնի մակարդակից `շատ ավելի գործնական:
Քայլ 1: Մաթեմատիկա…
Levelրի մակարդակը որոշելու վերաբերյալ մի քանի գաղափարների հետ խաղալուց հետո ես որոշեցի ուլտրաձայնային հաղորդիչ/ընդունիչ որպես իմ վիջեթի հիմք և օգտագործելով Arduino- ն ՝ ընթերցումները վերցնելու և բոլոր մաթեմատիկան կատարելու համար: Սենսորից վերադարձված ընթերցումները (անուղղակիորեն) հեռավորության տեսքով են `ուլտրաձայնային սենսորից մինչև մակերևույթը, որը դուրս է եկել (ջրի մակերեսը կամ տանկի ներքևը, եթե դատարկ է) և նորից հետ, ուստի մեզ անհրաժեշտ է մի քանի բան անել դրանով, որպեսզի տանկում մնացած տոկոսին հասնեն:
Նշում - իրականում, սենսորից վերադարձված արժեքը իրականում ընդամենը այն ժամանակն է, որը պահանջվում է ազդանշանը թողնել թողնող կողմը և վերադառնալ ստացողին: Սա միկրովայրկյանների մեջ է, բայց ձայնի արագությունը իմանալը 29 մկրկ / սմ է:
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-85-j.webp)
Նախ - իհարկե, մենք պետք է տարածությունը բաժանենք 2 -ի, որպեսզի սենսորը հասնի մակերևույթի հեռավորությանը: Այնուհետև հանեք տվիչից մշտական հեռավորությունը մինչև ջրի «առավելագույն» խորությունը: Մնացած արժեքը ջրի խորությունն է, որն օգտագործվել է: Հաջորդը, հանեք այդ արժեքը ջրի առավելագույն խորությունից `գտնելու տանկում մնացած ջրի խորությունը:
Հետևաբար, այս արժեքը հիմք է հանդիսանում ցանկացած այլ հաշվարկների համար, օրինակ ՝ ջրի այս խորությունը մշակել առավելագույն խորության տոկոսով կամ խորությունը բազմապատկել մշտական «մակերեսի մակերեսով» ՝ ջրի ծավալը ստանալու համար, որը կարող է ցուցադրվել լիտրերով (կամ գալոններով, կամ որևէ այլ միավորով), քանի դեռ դուք գիտեք դա անելու մաթեմատիկան, պարզության համար մնում եմ տոկոսին):
Քայլ 2: Գործնականություն
Միավորը կարելի է ձեռքով պահել, բայց սա փոքր անճշտությունների փոքր հնարավորություն է տալիս, եթե միավորը ամեն անգամ նույն տեղում և նույն անկյան տակ չի պահվում: Թեև դա կլիներ միայն շատ չնչին սխալ, և, հավանաբար, նույնիսկ ոչ մեկը, որը կգրանցեր, բայց դա այն տեսակ բանն էր, որը ջղայնացրեց ինձ:
Այնուամենայնիվ, ձեռքով պահելը շատ ավելի մեծ հնարավորություն է տալիս, որ անիծվածը ընկնի տանկի մեջ և այլևս երբեք չերևա: Այս հնարավորություններից երկուսը մեղմելու համար այն ամրացվելու է փայտի երկարության վրա, որն այնուհետև տեղադրվում է բաքի բացվածքի վրա, որպեսզի չափումը կատարվի ամեն անգամ նույն բարձրությունից և անկյան տակ (և եթե այն ընկնում է տանկ, գոնե փայտը լողա):
Սեղմման կոճակն ակտիվացնում է միավորը (դրանով իսկ վերացնելով միացման/անջատման անհրաժեշտությունը և մարտկոցի պատահական փափկեցման հնարավորությունը) և կրակում է Arduino- ի էսքիզը: Սա վերցնում է մի շարք ընթերցումներ HC-SR04- ից և վերցնում դրանց միջինը (ցանկացած անկանոն ընթերցումներ մեղմելու համար):
Ես նաև մի փոքր կոդ ներառեցի ՝ Arduino թվային մուտքի/ելքի պիներից մեկի վրա բարձր կամ ցածր լինելը ստուգելու համար, և այն օգտագործելով ՝ միավորը դնելու այն, ինչ ես անվանում էի «Կալիբրացիա» ռեժիմ: Այս ռեժիմում էկրանը պարզապես ցույց է տալիս սենսորի վերադարձած իրական հեռավորությունը (բաժանված է 2 -ի), այնպես որ ես կարող եմ ստուգել դրա ճշգրտությունը ժապավենի չափման համեմատ:
Քայլ 3: Բաղադրությունը
Միավորը բաղկացած է երեք հիմնական բաղադրիչներից…
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-86-j.webp)
- HC-SR04 ուլտրաձայնային հաղորդիչ/ընդունիչ մոդուլ
- Arduino Pro Mini միկրոկոնտրոլեր
- 4 թվանշանի 7 հատվածի LED էկրան կամ ցուցադրման «մոդուլ», ինչպիսին է TM1637- ը
Վերը նշված բոլորը կարելի է հեշտությամբ գտնել ebay- ում ՝ պարզապես համարձակ տպագրությամբ ցուցադրվող պայմանների որոնմամբ:
Այս հավելվածում էկրանը պարզապես օգտագործում է 3 թվանշան ՝ 0-100 % -ի արժեքը ցուցադրելու համար կամ 4 թվանշան ՝ լիտրերի քանակը ցույց տալու համար (իմ դեպքում ՝ առավելագույնը 2000), այնպես որ ցանկացած 4 թվանշանի ցուցադրում կանի. անհանգստացեք, արդյո՞ք մոդուլն ունի տասնորդական միավոր կամ փոքր կետեր: Displayուցադրման «մոդուլը» (լուսադիոդը տեղադրված է ճեղքման տախտակի վրա, ինտերֆեյսի չիպով) ավելի հեշտ է, քանի որ այն օգտագործում է ավելի քիչ կապող կապեր, սակայն 12 պիններով LED հում էկրանը Arduino- ի կողմից կարող է տեղավորվել ծածկագրին մի փոքր փոփոխություններով (իրականում իմ սկզբնական դիզայնը հիմնված էր այս կարգավորման վրա): Այնուամենայնիվ, նշեք, որ չմշակված LED էկրան օգտագործելու համար անհրաժեշտ է նաև 7 դիմադրություն `յուրաքանչյուր հատվածի հոսանքը սահմանափակելու համար: Ես պատահաբար ունեի TM1637 ժամացույցի ցուցադրման մոդուլ, ուստի որոշեցի օգտագործել այն:
Լրացուցիչ բիթերը ներառում են 9 վ մարտկոցի սեղմիչ (և մարտկոցը, ակնհայտորեն), «սեղմել-պատրաստելու» ակնթարթային կոճակի անջատիչ, նախագծի տուփ, վերնագրի կապում, միացնող լարեր և 2 "x4" փայտանյութ, որը գերազանցում է տանկի բացման տրամագիծը:
Լրացուցիչ կտորները (բացի փայտի կտորից) գնվել են իմ տեղական հոբբիի էլեկտրոնիկայի ցանցի ցանցից, որը ayեյքարն է Ավստրալիայում: Ես պատկերացնում եմ, որ Մեծ Բրիտանիայի Maplin- ը կլինի կենսունակ այլընտրանք, և կարծում եմ, որ ԱՄՆ -ում կան մի քանիսը, ինչպիսիք են Digikey- ն և Mouser- ը: Այլ երկրների համար, ես վախենում եմ, որ չգիտեմ, բայց վստահ եմ, որ եթե ձեր երկրում բացակայում է համապատասխան բարձր վարդակից կամ առցանց մատակարարը, ապա չինական ebay վաճառողները կգան ձեզ մոտ, եթե ոչ: Առաքման համար մի քանի շաբաթ սպասելը (հեգնանքով, չնայած մեր ամենամոտ հարևաններից լինելուն, 6 շաբաթը կամ ավելին արտասովոր չէ Չինաստանից Ավստրալիա առաքելու համար):
Համոզվեք, որ ձեռք եք բերում նախագծի տուփ, որը բավականաչափ մեծ է. Ես ենթադրեցի, որ իմ բաղադրիչներն առկա բաղադրիչներն ունենալուց առաջ, և դա իսկապես շատ սեղմված է: Հնարավոր է, որ ինձ անհրաժեշտ լինի ձեռք բերել մեկ այլ կոճակ, որն ավելի քիչ տարածք է օգտագործում:
Օ,, և, ի դեպ, փայտանյութի երկարությունը նոր էր գալիս որոշ ջարդոններից, որոնք ես պահում եմ իմ ավտոտնակի անկյունում (որպես տուն ավելի շատ սքանչելի սարդերի համար):
Սխեմատիկականը և ֆունկցիոնալությունը հասկանալուց հետո կարող եք որոշել հարմարեցնել ձեր տարբերակը և ներառել անջատիչ/անջատիչ, կամ օգտագործել 18650 Li-Ion էներգիայի աղբյուր, արևային մարտկոցով և լիցքավորման վերահսկիչով `այն մշտապես լիցքավորելու և պատրաստ լինելու համար:, կամ փոխեք պարզ LED էկրանը բազմաշերտ LCD- ի կամ գրաֆիկական OLED- ի համար `ավելի շատ տեղեկատվական ցուցադրման ընտրանքներով, օրինակ` ցույց տալով միևնույն ժամանակ մնացած տոկոսային և լիտրերը: Կամ դուք կարող եք գնալ բոլոր երգող, բոլոր պարային անլար IoT սարքերի մշտական տեղադրման համար տանկի մեջ ՝ արևային լիցքավորմամբ: Ես կցանկանայի լսել ձեր տատանումների և փոփոխությունների մասին:
Քայլ 4. Նախատիպի (և ծածկագրի) փորձարկում
HB-SR04- ը ebay- ից էժան չինական աղբյուրից ձեռք բերելով, ես իսկապես չէի սպասում, որ կստանամ չափազանց ճշգրիտ միավոր, ուստի ես ուզում էի այն նախ փորձարկել հացահատիկի վրա, եթե անհրաժեշտ լիներ հեռավորության ուղղման կոդ ավելացնել: իմ ուրվագիծը:
Այս պահին ես տեղեկություններ էի հավաքում, թե ինչպես միացնել և օգտագործել HC-SR04- ը, և պետք է ճանաչեմ jsvester- ի ուսանելի «Պարզ Arduino և HC-SR04 օրինակները»: Նրա օրինակն ու փորձը հիանալի ելակետ էին ինձ համար, որտեղից սկսեցի կոդավորումը:
Ես գտա HC-SR04- ի գործառույթների NewPing գրադարանը, որը ներառում է ներկառուցված ֆունկցիոնալություն `բազմակի ընթերցումների միջինը վերցնելու համար, դրանով իսկ իմ կոդը շատ ավելի պարզեցնելով:
Ես գտա գրադարան TM1637 ժամացույցի ցուցադրման մոդուլի համար, ինչը թվերը ցուցադրելը շատ ավելի պարզ դարձրեց: Իմ սկզբնական ծածկագրում (4-նիշանի 7 հատվածի ցուցադրման համար) ես պետք է համարը բաժանեի առանձին թվանշանների, այնուհետև էկրանին կառուցեի յուրաքանչյուր առանձին թվանշան ՝ իմանալով, թե որ հատվածները լուսավորվեն, և այնուհետև շրջելով թվի յուրաքանչյուր թվանշանի միջով:, և այդ թիվը կառուցելով համապատասխան ցուցադրման թվանշանի վրա: Այս մեթոդը կոչվում է մուլտիպլեքսավորում և արդյունավետորեն ցուցադրում է միանգամից մի նիշ, բայց դրանք այնքան արագ է անցնում մեկ թվանշանից մյուսը, որ մարդու աչքը չի նկատում, և հիմարացնում է ձեզ հավատալու, որ բոլոր թվանշանները միացված են միեւնույն ժամանակ. Ինչ վերաբերում է HC-SR04 գրադարանին, որն ավելի դյուրին է դարձնում չափման աշխատանքները, այս ցուցադրման գրադարանը հոգ է տանում բոլոր բազմապատկման և թվանշանների մշակման մասին: Վերը նշված Arduino Reference էջերը տալիս են որոշ օրինակներ, և, իհարկե, յուրաքանչյուր գրադարան գալիս է նմուշի կոդով, որը կարող է մեծ օգնություն լինել:
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-87-j.webp)
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-88-j.webp)
n
Այսպիսով, վերևի նկարները ցույց են տալիս իմ փորձարկման սարքավորումը. Ես այն փորձարկում եմ իմ Arduino Uno- ի վրա պարզության համար, քանի որ այն արդեն տեղադրված է նախատիպավորման ժամանակավոր վերաօգտագործելի միացումների համար: Սարքն այստեղ գործում է «Կալիբրացիայի» ռեժիմով (նկատեք, որ թվային կապիչ 10 -ը ՝ սպիտակ մետաղալարը միացված է գետնին) և ճշգրիտ կարդում է 39 սմ այն տուփի վրա, որը պատահաբար տեղադրել էի դրա դիմաց, ինչպես ցույց է տրված ժապավենի չափման միջոցով: Այս ռեժիմում ես ցուցադրում եմ փոքր «c» - ն չափումից առաջ, պարզապես նշելու համար, որ դա նորմալ չափում չէ:
Ինչպես նաև Vcc (5v) և Ground, HC -SR04- ին անհրաժեշտ է ևս 2 միացում `ձգան (դեղինից մինչև կապում 6) և էխո (կանաչից մինչև կապում 7): Էկրանի համար անհրաժեշտ են նաև Vcc (5v) և Ground և ևս 2 միացում `ժամացույց (կապույտից մինչև կապը 8) և DIO (մանուշակագույնից մինչև կապում 9): Ինչպես արդեն նշվեց, գործառնական ռեժիմը վերահսկվում է բարձր կամ ցածր միակցիչի 10 -ի վրա (սպիտակ): Կապերը կօգտագործեն նույն կապումներն Arduino Pro Mini- ում, սակայն մշտապես կպչվեն: Գործառնական ռեժիմը կարող է ընտրվել jumper- ի միջոցով ՝ վերնագրի երեքից երկու կապում, որոնք համապատասխանաբար կապված են Vcc- ի, 10 -րդ և գետնի հետ:
HC -SR04- ի պաշտոնական բնութագրերը պնդում են, որ ընդամենը 3 միլիմետր սխալից մինչև առավելագույն նախագծված աշխատանքային 4 մետր հեռավորությունը, այնպես որ պատկերացրեք իմ անակնկալը, երբ իմացա, որ իմ միավորը, անշուշտ, ճշգրիտ է այդ աստիճանի մինչև 2 մետր, ինչը այն գերազանցում է այն, ինչ ինձ պետք է: Արագ և կեղտոտ փորձարկման տեղադրման համար սահմանափակ տարածության պատճառով, այդ հեռավորությունից այն կողմ իմ փորձարկման արդյունքները կոռումպացված էին իմ փորձարկման թիրախից տարբերվող մակերևույթների արտացոլումների պատճառով, քանի որ հաղորդիչի ճառագայթը տարածվում և տարածվում էր ավելի լայն տարածքում: Բայց քանի դեռ լավ է 1,5 մետր - դա ինձ լավ կանի, շատ շնորհակալ եմ:-)
Քայլ 5. Անձրևաջրերի չափիչ Ino ուրվագիծ
Ամբողջական ծածկագիրը կցված է, բայց որոշ քայլեր բացատրելու համար ստորև կներառեմ մի քանի քաղվածք:
Առաջին հերթին, կարգավորումը…
#ներառում
#ներառել #ներառել // կապում HC-SR04- ի համար #սահմանել pinTrig 6 #սահմանել pinEcho 7 NewPing սոնար (pinTrig, pinEcho, 155); // 400 սմ առավելագույնը HC-SR04- ի համար, 155 սմ առավելագույնը տանկի համար // LED մոդուլի միացման կապում (թվային կապում) #սահմանել CLK 8 #սահմանել DIO 9 TM1637 ispուցադրել էկրան (CLK, DIO); // Այլ կապում #սահմանել opMode 10
Ինչպես նաև TM1637 և NewPing գրադարանները, ես ներառել եմ նաև մաթեմատիկական գրադարան, որն ինձ հնարավորություն է տալիս օգտվել «կլորացման» գործառույթից: Ես դա օգտագործում եմ որոշ մաթեմատիկայում, որպեսզի թույլ տամ, օրինակ, տոկոսը մոտեցնել 5% -ին:
Հաջորդը երկու սարքերի համար կապումներն են սահմանվում, և սարքերը գործարկվում են:
Վերջապես, ես սահմանում եմ 10 -րդ կապը գործառնական ռեժիմի համար:
// անջատել բոլոր հատվածները բոլոր թվանշանների համար
uint8_t բայթ = {0x00, 0x00, 0x00, 0x00}; display.setSegment (բայթ);
Կոդի այս հատվածը ցուցադրում է ցուցադրման մոդուլը վերահսկելու մեկ եղանակ ՝ թույլ տալով յուրաքանչյուր նիշի յուրաքանչյուր հատվածի անհատական վերահսկողություն: Ես սահմանել եմ բայթ կոչվող զանգվածի 4 տարրերը, բոլորը զրոյական: Դա նշանակում է, որ յուրաքանչյուր բայթ յուրաքանչյուր բիթ զրո է: 8 բիթերն օգտագործվում են 7 հատվածներից յուրաքանչյուրը և տասնորդական կետը (կամ հաստ կետը ժամացույցի տիպի ցուցադրման մեջ) վերահսկելու համար: Այսպիսով, եթե բոլոր բիթերը զրո են, ապա հատվածներից ոչ մեկը չի լուսավորվի: SetSegments գործողությունը զանգվածի բովանդակությունը ուղարկում է ցուցադրում և ցույց չի տալիս (այս դեպքում) ոչինչ: Բոլոր հատվածներն անջատված են:
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-89-j.webp)
Բայթում ամենակարևոր բիթը վերահսկում է DP- ն, այնուհետև մնացած 7 բիթերը հակառակ կարգով վերահսկում են G- ից A- ի 7 հատվածները: Այսպիսով, 1 թիվը ցուցադրելու համար պահանջվում է B և C հատվածներ, ուստի երկուական ներկայացումը կլինի «0b00000110»: (Շնորհակալություն CircuitsToday.com- ին ՝ վերը նշված պատկերի համար):
// Վերցրեք 10 ընթերցում և օգտագործեք միջին տևողությունը:
int տևողություն = sonar.ping_median (10); // տևողությունը գտնվում է միկրովայրկյաններում, եթե (տևողություն == 0) // Չափման սխալ - անհամոզիչ կամ ոչ արձագանք {uint8_t բայթ = {0x00, 0b01111001, 0b01010000, 0b01010000}; // «Err» display.setSegments (bytes) ուղղագրության համար հատվածներ; }
Այստեղ ես ասում եմ HC-SR04- ին վերցնել 10 ընթերցում և տալ միջին արդյունքը: Եթե ոչ մի արժեք չի վերադարձվում, ապա միավորը գտնվում է տիրույթից դուրս: Այնուհետև ես օգտագործում եմ վերը նշված նույն տեխնիկան ՝ 4 թվանշանների որոշակի հատվածներ վերահսկելու, տառերը (դատարկ), E, r և r գրելու համար: Երկուական նշագրման օգտագործումը մի փոքր ավելի հեշտ է դարձնում առանձին բիթերը հատվածներին կապելը:
Քայլ 6: Կոդի բեռնում Arduino Pro Mini (առանց USB)
Ինչպես արդեն ասացի, չինական ebay վաճառողների ապրանքները հաճախ տևում են 6 շաբաթ կամ ավելի, և իմ նախատիպերի և ծածկագրերի մեծ մասը գրվել է որոշ բաղադրիչների ժամանելուն սպասելիս, որոնցից մեկը Arduino Pro Mini- ն է:
Մի բան, որը ես չէի նկատում Pro Mini- ի մասին, քանի դեռ այն արդեն չէի պատվիրել, այն է, որ դրա վրա չկա USB պորտ ՝ ուրվագիծը ներբեռնելու համար: Այսպիսով, որոշ խելագար googling- ից հետո ես պարզեցի, որ այս դեպքում ուրվագիծը բեռնելու երկու եղանակ կա. Մեկը պահանջում է հատուկ մալուխ, որը անցնում է ձեր համակարգչի USB- ից մինչև Pro Mini- ի 6 հատուկ կապում: 6 պինների այս խումբը հայտնի է որպես ISP (համակարգչային ծրագրավորող) կապում, և դուք կարող եք իրականում օգտագործել այս մեթոդը ցանկացած Arduino- ի վրա, եթե ցանկանաք, բայց քանի որ USB ինտերֆեյսը հասանելի է Arduino- ի մյուս բոլոր տարբերակներում (I կարծում եմ), այդ տարբերակի օգտագործումը շատ ավելի պարզ է: Մյուս մեթոդը պահանջում է, որ դուք ունենաք մեկ այլ Arduino ՝ USB ինտերֆեյսով ՝ հանդես գալու որպես «միջնորդ»:
Բարեբախտաբար, իմ Arduino Uno- ն ունենալը նշանակում էր, որ ես կարող եմ օգտագործել երկրորդ մեթոդը, որը ես կներկայացնեմ ձեզ համար ստորև: Այն կոչվում է «Arduino- ն որպես ISP» օգտագործող: Մի խոսքով, դուք տեղադրում եք հատուկ ուրվագիծ ձեր «միջանցիկ» Arduino- ում, որը այն վերածում է սերիական ինտերֆեյսի: Այնուհետև բեռնեք ձեր իրական ուրվագիծը, բայց սովորական բեռնման տարբերակի փոխարեն դուք օգտագործում եք տարբերակ IDE ընտրացանկից, որը վերբեռնում է «օգտագործելով Arduino- ն որպես ISP»: «Միջնորդ» Arduino- ն այնուհետև վերցնում է ձեր իրական ուրվագիծը IDE- ից և փոխանցում այն Pro Mini- ի ISP կապերին, այլ ոչ թե բեռնում այն իր հիշողության մեջ: Դժվար չէ, երբ գլուխդ պարզես, թե ինչպես է այն աշխատում, բայց դա բարդության լրացուցիչ շերտ է, որից գուցե ցանկանաս խուսափել: Եթե դա այդպես է, կամ դուք չունեք մեկ այլ Arduino, որը կարող եք օգտագործել որպես «միջնորդ», ապա գուցե ցանկանաք գնել Arduino Nano կամ այլ փոքր գործոնային մոդելներից մեկը, որը ներառում է USB ինտերֆեյսը: և ծրագրավորումը դարձնում է ավելի պարզ հեռանկար:
Ահա մի քանի ռեսուրս, որոնք կարող են օգտակար լինել գործընթացը հասկանալու համար: Arduino Reference- ը հատուկ վերաբերում է թիրախային սարքին նոր բեռնող սարքի այրմանը, բայց նույն կերպ հեշտությամբ կարող եք բեռնել էսքիզը: Ես գտա, որ Julուլիան Իլետի տեսանյութը շատ ավելի պարզ է դարձնում հայեցակարգը, չնայած նա բաց է թողնում Arduino- ի հղման այն հատվածը, որը բացատրում է, թե ինչպես կարելի է երկու Arduinos- ն միացնել իրար, և փոխարենը ծրագրում է մերկ չիպը տախտակի վրա:
- Arduino հղման ձեռնարկ - Arduino- ի օգտագործումը որպես ISP
- Julուլիան Իլետի YouTube տեսաֆիլմը - Arduino- ի օգտագործումը որպես ISP
Քանի որ Pro Mini- ն չունի 6 ISP կապեր, որոնք հարմար խմբավորված են միասին, դուք պետք է վերծանեք, թե որ թվային կապերն են վերաբերում ծրագրավորման 4 կապերին (մյուս երկու կապերն ընդամենը Vcc և Gnd են, այնպես որ դրանք բավականին պարզ են): Ձեր բախտից, ես արդեն անցել եմ այս միջով և պատրաստ եմ կիսվել ձեզ հետ ունեցած գիտելիքներով, ինչ մեծահոգի մարդ եմ ես !!
Arduino Uno- ն և Arduino ընտանիքի շատ ուրիշներ ունեն 6 կապում, որոնք ձեռքով ձեռքով դասավորված են 3x2 բլոկում (այսպիսի պատկեր ՝ www.arduino.cc- ից):
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-90-j.webp)
Unfortunatelyավոք, Pro Mini- ն դա չի անում: Ինչպես տեսնում եք ստորև, դրանք իրականում բավականին հեշտ է ճանաչել և դեռ դասավորված են 3 կապում 2 բլոկներում: MOSI- ը, MISO- ն և SCK- ը նույնն են, ինչ թվային կապում են համապատասխանաբար 11, 12 և 13, այնպես էլ Pro Mini- ում և Arduino Uno- ում, իսկ ISP ծրագրավորման համար պարզապես միացրեք 11 -ը 11 -ին, 12 -ից 12 -ին և 13 -ին `13 -ին: Pro Mini- ի Reset- ի քորոցը պետք է միացված լինի Uno կապին 10 -ին, իսկ Pro Mini- ի Vcc (5v)/Ground- ը պետք է միացված լինի Arduino +5v/Ground- ին: (Պատկերը ՝ www.arduino.cc- ից)
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-91-j.webp)
Քայլ 7: Հավաքում
![Ժողով Ժողով](https://i.howwhatproduce.com/images/002/image-4738-92-j.webp)
Ինչպես նշեցի, ես գործի բռնեցի և փոշմանեցի: Բոլոր բաղադրիչներին տեղավորելը իսկական սեղմում էր: Իրականում ես ստիպված էի կողքի թեքել կոճակի կոնտակտները և դրսից մի քանի փաթեթ դնել, որպեսզի այն մի փոքր ավելի բարձրացնեմ, որպեսզի այն տեղավորվի տուփի խորքում, և ես ստիպված էի 2-3 մմ մանրացնել յուրաքանչյուր կողմից ցուցադրման մոդուլի տախտակը, որպեսզի այն նույնպես տեղավորվի:
Ես 2 անցք բացեցի պատյանում, որպեսզի ուլտրաձայնային տվիչները ծակեն: Ես մի փոքր չափազանց փոքր բացեցի անցքերը, այնուհետև աստիճանաբար մեծացրեցի դրանք ՝ օգտագործելով փոքր պտտվող սրիչ, որպեսզի կարողանամ դրանք դարձնել գեղեցիկ «հրում»: Unfortunatelyավոք, դրանք շատ մոտ էին կողքերին, որպեսզի կարողանային օգտագործել սրճաղացը տուփի ներսից, և դա պետք է արվեր դրսից, ինչը հանգեցրեց բազմաթիվ քերծվածքների և չմուշկների հետքերի, որտեղ սրիչը սայթաքեց. ամեն դեպքում - ո՞ւմ է դա հետաքրքրում …
Այնուհետև ես մի ծայրով կտրեցի մի անցք, որը ճիշտ չափսն է, որպեսզի էկրանը կարողանա ծակել:Կրկին - արկղի չափսերի մասին իմ ենթադրությունը ինձ կծեց հետևի մասում, քանի որ անցքը ինձ թողեց էկրանից շատ բարակ կտորով, որն անխուսափելիորեն կոտրվեց, երբ այն սահուն էի ներկայացնում: Դե, ահա թե ինչի համար է հորինվել սոսինձը…
Ի վերջո, տուփի մեջ կոպիտ տեղադրված բոլոր բաղադրիչներով ես չափեցի, թե որտեղ պետք է դնել կափարիչի անցքը, որպեսզի կոճակի մարմինը ընկնի վերջնական հասանելի տարածքը: ՈUԻ !!! !!!
Հաջորդը, ես միացրեցի բոլոր բաղադրիչները ՝ փորձարկելու համար, որ դրանք բոլորը դեռ աշխատում են իմ ճկումից, հղկումից և կտրումից հետո, նախքան դրանք բոլորը հավաքելով պատյանում: Դուք կարող եք տեսնել թռիչքային կապը ցուցադրման մոդուլի հենց ներքևում, իսկ Gnd- ին միացված Arduino- ի (սպիտակ կապար) 10 -րդ կապը, դրանով իսկ միավորը դնելով calibration ռեժիմում: Էկրանն իմ նստարանից կարդում է 122 սմ. Այն պետք է որևէ պատուհանի շրջանակի վերևից արտացոլված ազդանշան վերցներ (այն չափազանց ցածր է առաստաղը լինելու համար):
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-93-j.webp)
Այնուհետև դա տաք սոսնձի ատրճանակը կոտրելու և կոշիկի եղջյուրի բոլոր բաղադրամասերը տեղում դնելու դեպք էր: Դա անելուց հետո ես գտա, որ ցուցադրման մոդուլի վերևի և կափարիչի միջև եղած փոքր հեռավորությունը, երբ մոդուլը սոսնձված էր տեղում, թողեց մի փոքր ուռուցիկություն, որտեղ կափարիչը այնքան էլ սերտորեն չի տեղավորվի, որքան ես կցանկանայի:. Ես գուցե մի օր փորձեմ ինչ -որ բան անել դրա վերաբերյալ, կամ, ամենայն հավանականությամբ, չեմ անի…
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-94-j.webp)
Քայլ 8: Ավարտված հոդված
Հետհավաքման մի քանի թեստերից և իմ կոդի ուղղումից հետո, որը հաշվի էր առնում փայտի կտորի խորությունը, որի վրա ես պտուտակել էի սարքը (ինչը ես ամբողջովին անտեսում էի իմ հաշվարկներում - դե !!), ամեն ինչ արված է. Վերջապես!
Հավաքված փորձարկում
Երբ միավորը պարզապես նստած է նստարանին, ակնհայտորեն արտացոլված ազդանշան չի լինի, ուստի միավորը ճիշտ է ցույց տալիս սխալի վիճակը: Նույնը կլինի, եթե անդրադարձող ամենամոտ մակերեսը դուրս է գտնվում միավորի տիրույթից:
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-95-j.webp)
Կարծես իմ նստարանից մինչև հատակ 76 սմ է (լավ, 72 սմ գումարած 4 սմ փայտի կտորի խորությունը):
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-96-j.webp)
Ստորաբաժանման ներքևի հատվածը, որում պատկերված է հաղորդիչն ու ընդունիչը, որոնք կախվել են փայտի կտորից - ես իսկապես պետք է դադարեմ այն անվանել փայտի կտոր - այսուհետ այն կոչվելու է որպես Չափիչ կայունացման և ճշգրիտ տեղադրման հարթակ: Բարեբախտաբար, սա երևի վերջին անգամն է, որ կասեմ դա;-)
Օհ - այս մեկում կարող եք տեսնել այդ բոլոր տհաճ քերծվածքներն ու չմուշկների հետքերը…
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-97-j.webp)
… Եվ ահա պատրաստի իրը, տեղադրված նորմալ աշխատանքային ռեժիմում, իրականում չափելով իմ տանկի հզորությունը մոտակա 5%-ով: Կիրակի օրվա (շատ) անձրևոտ օրն էր, որն ինձ ստիպեց ավարտել այս նախագիծը, հետևաբար սարքի անձրևի կաթիլները և 90% հաճելի ընթերցումը:
![Պատկեր Պատկեր](https://i.howwhatproduce.com/images/002/image-4738-98-j.webp)
Հուսով եմ, որ ձեզ դուր եկավ այս ուսանելի ուսումը կարդալը և մի փոքր սովորեցիք Arduino- ի ծրագրավորման, ֆիզիկայի և սոնարային/ուլտրաձայնային արտացոլման օգտագործման, ձեր ծրագրի պլանավորման մեջ կռահումների օգտագործման որոգայթների մասին, և որ ոգեշնչված եք կատարել անձրևաջրերի բաքի չափիչ - այնուհետև տեղադրել անձրևաջրերի բաք այն օգտագործելու համար, միևնույն ժամանակ մի փոքր օգնելով շրջակա միջավայրին և խնայելով ձեր ջրի հաշիվը:
Խնդրում ենք կարդալ - այն, ինչ տեղի ունեցավ հաջորդ օրը …!
Քայլ 9. Հետգրություն - հարյուր (և հինգ) տոկոս:
Այսպիսով, անձրևոտ կիրակիին հաջորդող երկուշաբթի օրը բաքը լիովին լի էր այնքանով, որքանով հնարավոր էր: Քանի որ այն շատ հազվագյուտ դեպքերից է, որ ես երբևէ այն լիովին տեսել եմ, ես մտածեցի, որ դա կլինի իդեալական ժամանակը չափիչը չափելու համար, բայց կռահեք, որ այն գրանցվեց որպես 105%, ուստի ակնհայտորեն ինչ -որ բան սխալ էր:
Ես հանեցի ցուցիչս և պարզեցի, որ 140 սմ բարձրության ՝ որպես ջրի առավելագույն խորության, և 16 սմ երկարության գլխի ենթադրությունները (բաքից դուրս կատարված տեսողական ենթադրությունների հիման վրա) երկուսն էլ իրական չափումներից մի փոքր հեռու էին: Այսպիսով, իմ 100% չափանիշի իրական տվյալներով զինված, ես կարողացա փոփոխել իմ կոդը և վերբեռնել Arduino- ն:
Waterրի առավելագույն խորությունը 147 սմ է, իսկ չափման կետը ՝ 160 սմ, ինչը 13 սմ տարածք է տալիս (տանկի գլխի մակերեսի գումարը, տանկի վզիկի բարձրությունը և…, ոչ, ինչ?! Ես նկատի ունեմ Չափիչի կայունացման և ճշգրիտ տեղադրման հարթակի խորությունը):
MaxDepth- ի և headroom- ի փոփոխականները համապատասխանաբար ուղղելուց հետո, ինչպես նաև սոնարային օբյեկտի առավելագույն միջակայքը 160 սմ -ից վերականգնելուց հետո արագ փորձարկումը ցույց տվեց 100% -ը, որը նվազեց մինչև 95%, երբ ես փոքր -ինչ բարձրացրի չափիչը (փոքր չափի նմանակելու համար ջուր է օգտագործվել)
Աշխատանքը կատարված է:
Հ. Գ. - Սա իմ առաջին փորձն է ուսանելի: Եթե ձեզ դուր է գալիս իմ ոճը, հումորի զգացումը, սխալներն ընդունելու ազնվությունը (այո, նույնիսկ ես կատարյալ չեմ…
Քայլ 10: Հետագա մտքեր
Օգտագործվող հզորություն
Այսպիսով, արդեն մի քանի շաբաթ է, ինչ ես հրատարակում եմ այս Instructable- ը, և ես ունեմ բազմաթիվ մեկնաբանություններ ի պատասխան, որոնցից ոմանք առաջարկում են այլընտրանքային մեխանիզմներ ՝ ինչպես էլեկտրոնային, այնպես էլ ձեռքով: Բայց սա ինձ ստիպեց մտածել, և կա մի բան, որը, հավանաբար, պետք է նշեի սկզբում:
- Իմ բաքը ունի պոմպ, որը տեղադրված է հողի մակարդակում `բաքի հիմքից մի փոքր ներքև: Քանի որ պոմպը համակարգի ամենացածր կետն է, և պոմպից ջուրը ճնշման տակ է, ես կարող եմ օգտագործել իմ բաքի ամբողջ հզորությունը:
- ԱՅՍՊԵՍ. Երբ ձեր բաքում մնացած ջուրը ծորակից ցածր է, ապա ջուր չի հոսելու:
Այսպիսով, անկախ նրանից, թե դուք օգտագործում եք էլեկտրոնային չափիչ, թե ձեռքով տեսանելի ապակի, թե լողացող և դրոշակակրի համակարգ, պարզապես տեղյակ եղեք, որ առանց պոմպի, ձեր բաքի արդյունավետ «հիմքը» իրականում տանկի ելքի բարձրությունն է կամ թակել
Խորհուրդ ենք տալիս:
EBike հզորության հաշվիչ ՝ 6 քայլ
![EBike հզորության հաշվիչ ՝ 6 քայլ EBike հզորության հաշվիչ ՝ 6 քայլ](https://i.howwhatproduce.com/images/001/image-1634-60-j.webp)
EBike Power Meter. Վերջերս լեռնային հեծանիվը վերածեցի էլեկտրական հեծանիվի: Փոխակերպումը համեմատաբար սահուն անցավ, ուստի նախագիծն ավարտելուց հետո ես շտապեցի և մեկնեցի թափահարված նավարկության: Ես աչքս պահում էի մարտկոցի լիցքավորման ցուցիչի վրա ՝ չիմանալով, թե որքան հեռու
Arduino Nano հզորության հաշվիչ ՝ 8 քայլ (նկարներով)
![Arduino Nano հզորության հաշվիչ ՝ 8 քայլ (նկարներով) Arduino Nano հզորության հաշվիչ ՝ 8 քայլ (նկարներով)](https://i.howwhatproduce.com/images/001/image-2032-52-j.webp)
Arduino Nano Capacitance Meter. Այս նախագիծը գործնականում երեք բաղադրիչ է, քանի որ այն ձևավորված է 16X2 LCD էկրանով, պոտենցիոմետր 10K- ով և Arduino Nano- ով, իսկ մնացած մասերը PCB- ն են, որոնք մշակվել են իմ կողմից ՝ EasyEda ծրագրակազմով, 1 X 40 HEADER, 0.1 " SPACING և 1x6 FEMAL
Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով)
![Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով) Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-5936-18-j.webp)
Ուլտրաձայնային տանկի մակարդակի չափիչ. Անհրաժեշտ է վերահսկել հեղուկի մակարդակը մեծ տրամագծի ջրհորի, տանկի կամ բաց տարայի մեջ: Այս ուղեցույցը ցույց կտա ձեզ, թե ինչպես կարելի է էժան էլեկտրոնիկայի միջոցով սոնար ոչ կոնտակտային հեղուկի մակարդակի հաշվիչ սարքել: Վերևի ուրվագիծը ցույց է տալիս, թե ինչի համար էինք նպատակ
Երկաթուղիները պաշտպանելու համար Arduino- ում ջերմաստիճանի, անձրևաջրերի և թրթռման տվիչների օգտագործումը. 8 քայլ (նկարներով)
![Երկաթուղիները պաշտպանելու համար Arduino- ում ջերմաստիճանի, անձրևաջրերի և թրթռման տվիչների օգտագործումը. 8 քայլ (նկարներով) Երկաթուղիները պաշտպանելու համար Arduino- ում ջերմաստիճանի, անձրևաջրերի և թրթռման տվիչների օգտագործումը. 8 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-5673-46-j.webp)
Երկաթուղիները պաշտպանելու համար Arduino- ում ջերմաստիճանի, անձրևաջրերի և թրթռման սենսորների օգտագործումը. Societyամանակակից հասարակության մեջ երկաթուղային ուղևորների աճը նշանակում է, որ երկաթուղային ընկերությունները պետք է ավելին անեն, որպեսզի պահանջարկը բավարարելու համար ցանցերը օպտիմալացնեն: Այս նախագծում մենք փոքր մասշտաբով ցույց կտանք, թե ինչպես են ջերմաստիճանը, անձրևաջրերը և թրթռման տվիչները
Հզորության հաշվիչ TM1637- ով Arduino- ի միջոցով. 5 քայլ (նկարներով)
![Հզորության հաշվիչ TM1637- ով Arduino- ի միջոցով. 5 քայլ (նկարներով) Հզորության հաշվիչ TM1637- ով Arduino- ի միջոցով. 5 քայլ (նկարներով)](https://i.howwhatproduce.com/images/003/image-7056-26-j.webp)
Հզորության հաշվիչ TM1637- ի միջոցով Arduino- ի միջոցով. 1 uF- ից մինչև 2000 uF