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

UltraSonic Liquid Level Controller: 6 քայլ (նկարներով)
UltraSonic Liquid Level Controller: 6 քայլ (նկարներով)

Video: UltraSonic Liquid Level Controller: 6 քայլ (նկարներով)

Video: UltraSonic Liquid Level Controller: 6 քայլ (նկարներով)
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Նոյեմբեր
Anonim
UltraSonic Liquid Level Controller
UltraSonic Liquid Level Controller

Ինչպես հավանաբար գիտեք, Իրանում չոր եղանակ է, և իմ երկրում ջրի պակաս կա: Երբեմն, հատկապես ամռանը, երեւում է, որ կառավարությունը ջուր է կտրում: Այսպիսով, բնակարանների մեծ մասն ունի ջրի բաք: Մեր բնակարանում կա 1500 լիտր բաք, որը ջուր է ապահովում: Բացի այդ, մեր բնակարանում կա 12 բնակելի միավոր: Արդյունքում, կարելի է սպասել, որ տանկը շատ շուտ դատարկվում է: Տանկին ամրացված է ջրի պոմպ, որը ջուր է ուղարկում շենք: Ամեն անգամ, երբ բաքը դատարկ է, պոմպը աշխատում է առանց ջրի: Այս իրավիճակը առաջացնում է շարժիչի ջերմաստիճանի բարձրացում, իսկ ժամանակի ընթացքում ՝ պոմպի խափանում: Որոշ ժամանակ առաջ պոմպի այս անսարքությունը տեղի ունեցավ մեզ համար երկրորդ անգամ, և շարժիչը բացելուց հետո մենք տեսանք, որ կծիկի լարերը այրվել են: Պոմպը փոխարինելուց հետո այս խնդիրը նորից կանխելու համար ես որոշեցի ջրի մակարդակի վերահսկիչ պատրաստել: Ես պլանավորում էի միացում կազմել պոմպի էներգիայի մատակարարումը դադարեցնելու համար, երբ ջուրը իջնում էր տանկի ցածր սահմանից: Պոմպը չի աշխատի, մինչև ջուրը չբարձրանա բարձր սահմանի: Բարձր սահմանն անցնելուց հետո շղթան նորից կմիացնի սնուցման աղբյուրը: Սկզբում ես ինտերնետով փնտրեցի, թե արդյոք կարող եմ գտնել համապատասխան միացում: Այնուամենայնիվ, ես համապատասխան բան չգտա: Կային Arduino- ի վրա հիմնված ջրի ցուցանիշներ, բայց դրանք չկարողացան լուծել իմ խնդիրը: Արդյունքում, ես որոշեցի նախագծել իմ ջրի մակարդակի կարգավորիչը: Բոլորը մեկ փաթեթով, որն ունի պարզ գրաֆիկական ինտերֆեյս `պարամետրեր սահմանելու համար: Բացի այդ, ես փորձեցի հաշվի առնել EMC ստանդարտները `համոզված լինելու համար, որ սարքը վավեր է աշխատում տարբեր իրավիճակներում:

Քայլ 1: Սկզբունք

Սկզբունք
Սկզբունք

Դուք հավանաբար սկզբից գիտեք սկզբունքը: Երբ ուլտրաձայնային ազդանշանը ազդանշան է արձակում դեպի մի առարկա, այն արտացոլվում է առարկայի կողմից և արձագանքը վերադառնում է ուղարկողին: Եթե հաշվեք Ուլտրաձայնային զարկերակով անցած ժամանակը, կարող եք գտնել օբյեկտի հեռավորությունը: Մեր դեպքում նյութը ջուրն է:

Նկատի ունեցեք, որ երբ գտնում եք ջրի հեռավորությունը, հաշվարկում եք տանկի դատարկ տարածքի ծավալը: Volumeրի ծավալը ստանալու համար դուք պետք է հանեք հաշվարկված ծավալը տանկի ընդհանուր ծավալից:

Քայլ 2: Սենսոր, էներգիայի մատակարարում և վերահսկիչ

Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ
Սենսոր, էներգիայի մատակարարում և վերահսկիչ

Սարքավորումներ

Սենսորի համար ես օգտագործել եմ JSN-SR04T անջրանցիկ ուլտրաձայնային տվիչ: Աշխատանքային ռեժիմը նման է HC-SR04 (էխո և եռակցման քորոց):

Տեխնիկական պայմաններ.

  • Հեռավորությունը `25 սմ -ից 450 սմ
  • Աշխատանքային լարումը `DC 3.0-5.5V
  • Աշխատանքային հոսանք ՝ < 8 մԱ
  • Accշգրտություն ՝ ± 1 սմ
  • Հաճախականությունը `40 kHz
  • Աշխատանքային ջերմաստիճանը `-20 ~ 70 ℃

Նկատի ունեցեք, որ այս վերահսկիչն ունի որոշ սահմանափակումներ: օրինակ ՝ 1- JSN-SR04T- ը չի կարող չափել 25CM- ից ցածր հեռավորությունը, այնպես որ դուք պետք է տեղադրեք սենսորը ջրի մակերևույթից առնվազն 25CM բարձրության վրա: Ավելին, հեռավորության առավելագույն չափումը 4.5 Մ է: Այսպիսով, այս սենսորը հարմար չէ հսկայական տանկերի համար: 2- Այս տվիչի ճշգրտությունը 1CM է: Արդյունքում, տանկի տրամագծի հիման վրա, ծավալի լուծումը, որը ցույց կտա սարքը, կարող է տարբեր լինել: 3- Ձայնի արագությունը կարող է փոփոխվել `կախված ջերմաստիճանից: Արդյունքում, ճշգրտության վրա կարող են ազդել տարբեր տարածաշրջաններ: Այնուամենայնիվ, այս սահմանափակումներն ինձ համար որոշիչ չէին, և ճշգրտությունը հարմար էր:

Վերահսկիչ

Ես օգտագործել եմ STM32F030K6T6 ARM Cortex M0- ը STMicroelectronics- ից: Այս միկրոկառավարիչի բնութագրերը կարող եք գտնել այստեղ:

Էներգամատակարարում

Առաջին մասը 220V/50Hz (Իրանի էլեկտրաէներգիա) փոխակերպելն է 12VDC: Այդ նպատակով ես օգտագործել եմ HLK-PM12 buck down power down մոդուլը: Այս AC/DC փոխարկիչը կարող է 90 ~ 264 VAC- ը դարձնել 12VDC ՝ 0.25A ելքային հոսանքով:

Ինչպես հավանաբար գիտեք, ռելեի ինդուկտիվ բեռը կարող է մի շարք խնդիրներ առաջացնել սխեմայի և սնուցման աղբյուրի վրա, իսկ սնուցման դժվարությունը կարող է հանգեցնել անհամապատասխանության, հատկապես միկրոկառավարիչի: Լուծումը էներգիայի մատակարարումների մեկուսացումն է: Բացի այդ, դուք պետք է օգտագործեք snubber միացում ռելեի կոնտակտների վրա: Սնուցման աղբյուրները մեկուսացնելու մի քանի եղանակ կա: Օրինակ, կարող եք օգտագործել երկու ելքով տրանսֆորմատոր: Ավելին, այնտեղ կան մեկուսացված DC/DC կերպափոխիչներ ՝ փոքր չափսերով, որոնք կարող են մեկուսացնել ելքը մուտքից: Այս նպատակով ես օգտագործել եմ MINMAX MA03-12S09: Այն 3W DC/DC փոխարկիչ է մեկուսացումով:

Քայլ 3. Վերահսկիչ IC

Վերահսկիչ IC
Վերահսկիչ IC

Ըստ TI App- ի նշման. Լարման վերահսկիչը (հայտնի է նաև որպես վերակայման ինտեգրալ միացում [IC]) լարման մոնիտորի տեսակ է, որը վերահսկում է համակարգի սնուցման աղբյուրը: Լարման վերահսկիչները հաճախ օգտագործվում են պրոցեսորների, լարման կարգավորիչների և հաջորդականիչների հետ `ընդհանրապես, որտեղ պահանջվում է լարման կամ հոսանքի զգացում: Վերահսկողները վերահսկում են լարման ռելսերը `միացումն ապահովելու, անսարքությունները հայտնաբերելու և ներկառուցված պրոցեսորների հետ հաղորդակցվելու համար` ապահովելու համակարգի առողջությունը: կարող եք գտնել այս հավելվածի նշումը այստեղ: Չնայած STM32 միկրոկառավարիչները ներկառուցված վերահսկիչներ ունեն, ինչպիսիք են սնուցման աղբյուրի մոնիտորը, ես արտաքին վերահսկիչ չիպից օգտվեցի ՝ ամեն ինչ լավ աշխատելու համար: Իմ դեպքում ես օգտագործել եմ TL7705- ը TI- ից: Այս IC- ի վերաբերյալ Texas Instruments- ի կայքէջի նկարագրությունը կարող եք տեսնել ստորև. TL77xxA ինտեգրալ սխեմայի մատակարարման-լարման վերահսկիչների ընտանիքը հատուկ նախագծված է միկրոհամակարգչային և միկրոպրոցեսորային համակարգերում որպես վերականգնման կարգավարներ օգտագործելու համար: Սնուցման-լարման վերահսկիչը վերահսկում է մատակարարումը ցածր լարման պայմանների համար SENSE մուտքագրման ժամանակ: Միացման ժամանակ RESET- ի ելքը դառնում է ակտիվ (ցածր), երբ VCC- ն հասնում է 3.6 V.- ի արժեքին: Այս պահին (ենթադրելով, որ SENSE- ը VIT+-ից բարձր է), հետաձգման ժամաչափի գործառույթը ակտիվացնում է ժամանակի հետաձգումը, որից հետո թողարկում է RESET և RESET (ՉԻ) անգործուն մնալ (համապատասխանաբար բարձր և ցածր): Երբ նորմալ աշխատանքի ընթացքում տեղի է ունենում լարման անբավարար վիճակ, RESET և RESET (NOT) ակտիվանում են:

Քայլ 4: Տպագիր տպատախտակ (PCB)

Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)
Տպագիր տպատախտակները (PCB)

Ես նախագծեցի PCB- ն երկու կտորով: Առաջինը LCD տախտակն է, որը միացված է մայր տախտակին `ժապավենով/հարթ մալուխով: Երկրորդ մասը վերահսկիչ PCB- ն է: Այս PCB- ի վրա ես տեղադրեցի սնուցման աղբյուր, միկրոկոնտրոլեր, ուլտրաձայնային տվիչ և հարակից բաղադրիչներ: Եվ նաև էներգիայի մասը, որը ռելե, varistor և snubber միացումն է: Ինչպես հավանաբար գիտեք, մեխանիկական ռելեներ, ինչպիսին է ռելեն, որը ես օգտագործել էի իմ սխեմայում, կարող են քայքայվել, եթե դրանք միշտ աշխատում են: Այս խնդիրը հաղթահարելու համար ես օգտագործեցի ռելեի սովորաբար սերտ շփումը (NC): Այսպիսով, նորմալ իրավիճակում ռելեը ակտիվ չէ և սովորաբար սերտ շփումը կարող է հոսանք հասցնել պոմպին: Ամեն անգամ, երբ ջուրը իջնում է limitածր սահմանից, ռելեը միանում է, և դա կջնջի էներգիան: Ասելով դա, սա է պատճառը, որ ես օգտագործել եմ սնուբերային սխեման NC և COM կոնտակտների վրա: Ինչ վերաբերում է պոմպի բարձր հզորությանը, ես դրա համար օգտագործեցի երկրորդ 220 ռելեն, և այն վարում եմ PCB- ի ռելեով:

Իմ GitHub- ից կարող եք ներբեռնել PCB ֆայլեր, ինչպիսիք են Altium PCB ֆայլերը և Gerber ֆայլերը:

Քայլ 5: Կոդ

Image
Image
Տեղադրում տանկի վրա
Տեղադրում տանկի վրա

Ես օգտագործեցի STM32Cube IDE- ն, որը STMicroelectronics- ից կոդերի մշակման համընդհանուր լուծում է: Այն հիմնված է Eclipse IDE- ի վրա ՝ GCC ARM կազմողով: Բացի այդ, դրա մեջ կա STM32CubeMX: Լրացուցիչ տեղեկություններ կարող եք գտնել այստեղ: Սկզբում ես գրեցի մի ծածկագիր, որը ներառում էր մեր տանկի տեխնիկական պայմանները (Բարձրություն և տրամագիծ): Այնուամենայնիվ, ես որոշեցի այն փոխել GUI- ի համար `տարբեր բնութագրերի վրա հիմնված պարամետրեր:

Քայլ 6: Տեղադրում տանկի վրա

Տեղադրում տանկի վրա
Տեղադրում տանկի վրա
Տեղադրում տանկի վրա
Տեղադրում տանկի վրա

Ի վերջո, ես դրա համար պատրաստեցի մի պարզ տուփ ՝ PCB- ն ջրից պաշտպանելու համար: Բացի այդ, ես տանկի վերևում անցք կատարեցի ՝ սենսորը դրա վրա դնելու համար:

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