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

Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով)
Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով)

Video: Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով)

Video: Ուլտրաձայնային տանկի մակարդակի հաշվիչ ՝ 5 քայլ (նկարներով)
Video: Java Tech Զրույց. Հեռագրի բոտը java- ում 1 ժամ 2024, Հուլիսի
Anonim
Ուլտրաձայնային տանկի մակարդակի հաշվիչ
Ուլտրաձայնային տանկի մակարդակի հաշվիչ
Ուլտրաձայնային տանկի մակարդակի հաշվիչ
Ուլտրաձայնային տանկի մակարդակի հաշվիչ

Պետք է վերահսկել հեղուկի մակարդակը մեծ տրամագծի ջրհորի, բաքի կամ բաց տարայի մեջ: Այս ուղեցույցը ցույց կտա ձեզ, թե ինչպես կարելի է էժան էլեկտրոնիկայի միջոցով սոնար պատրաստել ոչ կոնտակտային հեղուկի մակարդակի հաշվիչ:

Վերոնշյալ ուրվագիծը ցույց է տալիս ակնարկ, թե ինչի համար ենք մենք նպատակ ունեցել այս նախագծով: Մեր ամառանոցը ունի մեծ տրամագծով ջրհոր, որը խմելու ջուր է մատակարարում տանը օգտագործելու համար: Մի օր ես և եղբայրս խոսեցինք այն մասին, թե ինչպես էր մեր պապը ձեռքով չափում ջրի մակարդակը, որպեսզի ամբողջ ամառ հետևեր ջրի սպառմանն ու ներհոսքին `խուսափելու համար ավելորդ հոսքերից: Մենք կարծում էինք, որ ժամանակակից էլեկտրոնիկայի միջոցով մենք պետք է կարողանանք վերակենդանացնել ավանդույթը, բայց ավելի քիչ ֆիզիկական աշխատանքով: Programրագրավորման մի քանի հնարքներով մենք կարողացանք օգտագործել սենսորային մոդուլով աշխատող Arduino- ն ՝ մինչև մակերևույթ (l) հեռավորությունը ողջամիտ հուսալիությամբ և few մի քանի միլիմետր ճշգրտությամբ չափելու համար: Սա նշանակում էր, որ մենք կարող ենք գնահատել մնացած V ծավալը ՝ օգտագործելով հայտնի տրամագիծը D և L խորությունը, մոտ liter 1 լիտր ճշգրտությամբ:

Քանի որ ջրհորը գտնվում է տնից մոտ 25 մ հեռավորության վրա, և մենք ցանկանում էինք ցուցադրությունը ներսում, մենք ընտրեցինք երկու Arduinos- ի օգտագործումը, որոնց միջև տվյալների հղումը կար: Դուք կարող եք հեշտությամբ փոփոխել նախագիծը ՝ օգտագործելով միայն մեկ Arduino, եթե դա ձեզ համար այդպես չէ: Ինչու՞ չօգտագործել անլար տվյալների փոխանցումը: Մասամբ պարզության և ամրության պատճառով (մետաղալարն ավելի քիչ հավանական է, որ խոնավությունից վնասվի) և մասամբ այն պատճառով, որ մենք ցանկանում էինք խուսափել սենսորի կողմից մարտկոցներ օգտագործելուց: Հաղորդալարով մենք կարող էինք ուղղորդել ինչպես տվյալների փոխանցումը, այնպես էլ էներգիան նույն մալուխի միջոցով:

1) Arduino մոդուլը տանը Սա հիմնական Arduino մոդուլն է: Այն ազդանշանի ազդանշան կուղարկի Arduino- ին ջրհորի մեջ, կստանա չափված հեռավորությունը և էկրանին կցուցադրի ջրի հաշվարկված մնացած ծավալը:

2) Լավ կողմ Arduino և sonar մոդուլ: Այս Arduino- ի նպատակն է պարզապես տանից ազդանշանային ազդանշան ստանալը, չափումը կատարելն ու սոնարային մոդուլից հեռավորությունը ջրի մակարդակին հետ ուղարկելը: Էլեկտրոնիկան ներկառուցված է (համեմատաբար հերմետիկ) տուփի մեջ, պլաստմասե խողովակով ամրացված է սոնարային մոդուլի ընդունող կողմին: Խողովակի նպատակն է նվազեցնել չափման սխալները `նվազեցնելով տեսադաշտը, որպեսզի ստացողը« տեսնի »միայն ջրի մակերեսը:

Քայլ 1: Մասեր, փորձարկում և ծրագրավորում

Մասեր, փորձարկում և ծրագրավորում
Մասեր, փորձարկում և ծրագրավորում
Մասեր, փորձարկում և ծրագրավորում
Մասեր, փորձարկում և ծրագրավորում
Մասեր, փորձարկում և ծրագրավորում
Մասեր, փորձարկում և ծրագրավորում

Այս նախագծում մենք օգտագործեցինք հետևյալ մասերը.

  • 2 x Arduino (մեկը `հեղուկի մակարդակը չափելու համար, մեկը` ցուցադրման արդյունքները ցուցադրելու համար)
  • Հիմնական 12 Վ էլեկտրամատակարարում
  • Ուլտրաձայնային (սոնար) մոդուլ HC-SR04
  • LED ցուցադրման մոդուլ MAX7219
  • 25 մ հեռախոսի մալուխ (4 լար ՝ հոսանքի, գրունտի և 2 տվյալների ազդանշան)
  • Մոնտաժման տուփ
  • Տաք սոսինձ
  • Sոդող

Մասերի արժեքը `մոտ 70 €

Համոզվելու համար, որ ամեն ինչ աշխատել է այնպես, ինչպես պետք է, մենք առաջին հերթին կատարեցինք զոդման, էլեկտրամոնտաժման և նստարանների պարզ փորձարկումներ: Ուլտրաձայնային տվիչի և LED մոդուլի համար կան բազմաթիվ օրինակելի ծրագրեր առցանց, այնպես որ մենք պարզապես դրանք օգտագործեցինք `համոզվելու համար, որ չափված հեռավորությունը իմաստ ունի (նկար 1), և որ մենք կարողացանք ջրի մակերևույթից բռնել ուլտրաձայնային անդրադարձը` կայք (նկար 2): Մենք նաև մի քանի մանրակրկիտ փորձարկում կատարեցինք տվյալների կապի վրա ՝ համոզվելու համար, որ այն երբևէ աշխատում է երկար հեռավորությունների վրա, ինչը բացարձակապես խնդիր չէր:

Մի թերագնահատեք այս քայլին ծախսված ժամանակը, քանի որ կարևոր է իմանալ, որ համակարգը աշխատում է նախքան ջանքեր գործադրել ամեն ինչ գեղեցիկ տուփերի մեջ տեղադրելու, մալուխներ փորելու և այլն:

Փորձարկման ընթացքում մենք հասկացանք, որ սոնարային մոդուլը երբեմն ձայնի արտացոլում է ստանում ջրհորի այլ մասերից, օրինակ ՝ կողային պատերից և ջրամատակարարման խողովակից, և ոչ թե ջրի մակերևույթից: Սա նշանակում էր, որ չափված հեռավորությունը հանկարծ շատ ավելի կարճ կլիներ, քան ջրի մակարդակին փաստացի հեռավորությունը: Քանի որ մենք չենք կարող պարզապես օգտագործել միջինը `այս տեսակի չափման սխալը հարթելու համար, մենք որոշեցինք հրաժարվել ցանկացած նոր չափված հեռավորությունից, որը չափազանց տարբերվում էր ընթացիկ հեռավորության գնահատումից: Սա խնդրահարույց չէ, քանի որ մենք ակնկալում ենք, որ ամեն դեպքում ջրի մակարդակը բավականին դանդաղ կփոխվի: Գործարկման ժամանակ այս մոդուլը կկատարի մի շարք չափումներ և կընտրի ստացված ամենամեծ արժեքը (այսինքն `ջրի ամենացածր մակարդակը) որպես ամենահավանական ելակետ: Դրանից հետո, «պահել/հրաժարվել» որոշումից բացի, գնահատման մակարդակի մասնակի թարմացում է օգտագործվում չափման պատահական սխալները հարթելու համար: Կարևոր է նաև թույլ տալ, որ բոլոր արձագանքները անհետանան նախքան նոր չափումներ կատարելը - գոնե մեր դեպքում, երբ պատերը պատրաստված են բետոնից և, հետևաբար, շատ արձագանքող են:

Երկու Arduinos- ի համար օգտագործած ծածկագրի վերջնական տարբերակը կարելի է գտնել այստեղ ՝

github.com/kelindqv/arduinoUltrasonicTank

Քայլ 2: Քաղաքացիական աշխատանքներ

Քաղաքացիական աշխատանքներ
Քաղաքացիական աշխատանքներ

Քանի որ մեր ջրհորը գտնվում էր տնից մի փոքր հեռու, մենք ստիպված էինք մի փոքրիկ խրամատ ստեղծել սիզամարգի մեջ, որի մեջ պետք է մալուխը դնեինք:

Քայլ 3: Բոլոր բաղադրիչների միացում և տեղադրում

Բոլոր բաղադրիչների միացում և տեղադրում
Բոլոր բաղադրիչների միացում և տեղադրում
Բոլոր բաղադրիչների միացում և տեղադրում
Բոլոր բաղադրիչների միացում և տեղադրում
Բոլոր բաղադրիչների միացում և տեղադրում
Բոլոր բաղադրիչների միացում և տեղադրում

Միացրեք ամեն ինչ այնպես, ինչպես փորձարկման ժամանակ էր, և հուսով եմ, որ այն դեռ աշխատում է: Հիշեք, որ ստուգեք, որ մի Arduino- ի TX կապը անցնում է մյուսի RX- ին և հակառակը: Ինչպես ցույց է տրված նկար 1 -ում, մենք օգտագործեցինք հեռախոսի մալուխը Arduino- ի սնուցման աղբյուրի մեջ, մարտկոցներից խուսափելու համար:

Երկրորդ և երրորդ նկարը ցույց է տալիս պլաստմասե խողովակների դասավորությունը, հաղորդիչը տեղադրված է խողովակից դուրս, իսկ ընդունիչը `ներսում (այո, սա նկարահանման անհարմար դիրք էր …)

Քայլ 4: Կալիբրացում

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

Այսպիսով, որքանո՞վ էր սենսորը հետևում հեղուկի մակարդակին:

Մենք հեշտությամբ կարող էինք նկատել ծորակը մի քանի րոպե լվանալու կամ զուգարանակոնքը լվանալու էֆեկտը, որն այն էր, ինչ մենք ուզում էինք: Մենք նույնիսկ կարող էինք տեսնել, որ ջրհորը լիցքավորվում էր համեմատաբար կանխատեսելի արագությամբ մեկ գիշերվա ընթացքում, և դա ընդամենը մի հայացք էր դնում էկրանին: Հաջողություն:

Նշում. Սա կարող է լինել ապագա գեղեցիկ հավելում, քանի որ ջրհորի ջերմաստիճանը բավականին կտատանվի:

Քայլ 5: Երկարաժամկետ օգտագործում

1 տարվա թարմացում. Սենսորը գործում է անթերի առանց կոռոզիայից կամ վնասներից ՝ չնայած խոնավ միջավայրին: Տարվա ընթացքում միակ խնդիրն այն է, որ ցուրտ եղանակին (ձմռանը) սենսորի վրա խտացում է կուտակվում, ինչը ակնհայտորեն արգելափակում է սենսորը: Սա մեր դեպքում խնդիր չէ, քանի որ մենք միայն ամռանը կարդալու կարիք ունենք, բայց այլ օգտվողներ գուցե ստիպված լինեն ստեղծագործել::) Մեկուսացումը կամ օդափոխումը, հավանաբար, իրագործելի լուծումներ են: Շնորհավոր գյուտ:

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