Ինքնուրույն անեմոմետրի միացման դիագրամ: Տնական օդաչափ՝ քամու արագությունը չափելու համար։ Համակարգչի ծրագրակազմ

Անեմոմետրը քամու արագությունը չափող սարք է։ Դասական գավաթային անեմոմետրը զուտ մեխանիկական գործիք է, որը կարող է չափել քամու արագությունը 2-ից 20 մ/վրկ միջակայքում: Անեմոմետրը պարզապես հաշվում է շարժիչի պտույտների քանակը: Քամու արագությունը որոշելու համար անհրաժեշտ է չափել պտույտների քանակը որոշակի ժամանակահատվածում, օրինակ՝ 30 վրկ, ապա հաշվարկել այն բաժանումների թիվը, որոնք անցնում է անեմոմետրի ասեղը 1 վրկ-ում։ Դրանից հետո քամու արագությունը որոշելու համար պետք է օգտագործել գրաֆիկը։

Ամենահեշտն է նախագծել իր անալոգը ցածր հզորության էլեկտրական շարժիչի հիման վրա, օրինակ՝ DM-03-3AM 3 91, որը հանդես է գալիս որպես գեներատոր: Չորս սեղանի անեմոմետրի շարժիչը վերցվել է պատրաստի վիճակում, գնվել է Aliexpress-ում մոտ 1 դոլարով:

Շարժիչի տրամագիծը 10 սմ է, իսկ բարձրությունը՝ 6 սմ։

Էլեկտրական շարժիչը գտնվում է սառը եռակցման բաքից պատրաստված պատյանում, որի կափարիչում անցք է կտրված էլեկտրական շարժիչի լիսեռի և շարժիչից դուրս եկող լարերի համար։

Էլեկտրաշարժիչին միացված է դիոդային կամուրջ VD1, որը հավաքված է Schottky դիոդների վրա 1N5817: Դիոդային կամրջի ելքի վրա միացված է էլեկտրոլիտիկ կոնդենսատոր C1 1000 uF x 16 V:

Անեմոմետրի միացման դիագրամ

Schottky դիոդները ընտրվում են այն պատճառով, որ շարժիչի պտտման արագությունը նորմալ պայմաններում (եթե փոթորիկ չկա) շատ բարձր չէ։ Մոտ 6 մ/վրկ քամու արագության դեպքում սարքի ելքի վրա հայտնվում է մոտ 0,5 Վ լարում: Նման պայմաններում ռացիոնալ է նվազագույնի հասցնել կորուստները միացման բոլոր տարրերի վրա: Նույն պատճառով, որպես միացնող լարեր օգտագործվում են չափազանց մեծ խաչմերուկի հաղորդիչներ:

Ցանկացած 2 V DC վոլտմետր կարող է միացված լինել ուղղիչի տերմինալներին:Մուլտիմետրը հիանալի աշխատանք է կատարում իր դերով: Չնայած առանձին ցուցիչ սարքի օգտագործումը թույլ է տալիս ուղղակիորեն չափորոշել սանդղակը քամու արագությամբ:

Քանի որ սարքը նախատեսվում էր շահագործել փողոցում, դիոդային կամուրջը լցվել է էպոքսիդային խեժ. Ինչպես պարզվեց, կոնդենսատորը չափազանց տարողունակ է վերցվել, որպեսզի սարքը չկարողանա հայտնաբերել լարման արագ անկումները և, համապատասխանաբար, քամու պոռթկումները: Գրախոսել է Դենևը:

DIY քամու արագության չափիչ

Առաջադրանք կար մեկ նախագծի համար անեմոմետր հավաքել, որպեսզի USB ինտերֆեյսի միջոցով հնարավոր լինի տվյալներ վերցնել համակարգչով։ Հոդվածն ավելի շատ կկենտրոնանա բուն անեմոմետրի վրա, քան դրանից տվյալների մշակման համակարգի վրա.

1. Բաղադրիչներ

Այսպիսով, արտադրանքի արտադրության համար անհրաժեշտ էին հետևյալ բաղադրիչները.
Mitsumi գնդիկավոր մկնիկ - 1 հատ:
Պինգ-պոնգի գնդակ - 2 հատ:
Պլեքսիգլասի մի կտոր ճիշտ չափի
Պղնձե մետաղալար 2,5 մմ2 - 3 սմ խաչմերուկով
Գնդիկավոր գրիչ - 1 հատ:
Chupa Chups կոնֆետի ձողիկ - 1 հատ:
Մալուխի սեղմիչ - 1 հատ:
Սնամեջ փողային տակառ 1 հատ.

2. Շարժիչի պատրաստում

120 աստիճան անկյան տակ 1 սմ երկարությամբ 3 հատ պղնձե մետաղալար զոդել են փողային տակառի վրա։ Տակառի անցքի մեջ չինացի խաղացողից մի ստենդ զոդեցի, որի ծայրը թել էր։

Ես կոնֆետից խողովակը կտրեցի 3 մասի մոտ 2 սմ երկարությամբ։

Ես կիսով չափ կտրեցի 2 գնդիկ և նույն նվագարկիչից և պոլիստիրոլի սոսինձով (սոսնձող ատրճանակով) փոքրիկ պտուտակներով, գնդակի կեսերը ամրացրեցի լոլիպոփ խողովակներին։

Գնդիկի կեսերով խողովակները դրեցի եռակցված մետաղալարերի վրա, իսկ վերևում ամեն ինչ սոսինձով ամրացրեցի։

3. Հիմնական մասի արտադրություն

Անեմոմետրի կրող տարրը մետաղյա ձող է գնդիկավոր գրիչից: Ձողի ներքևի մասում (որտեղ դրված էր խցանը) մկնիկից (կոդավորիչ) տեղադրեցի սկավառակը։ Ինքնին մկնիկի ձևավորման մեջ կոդավորողի ստորին հատվածը հենվում էր մկնիկի մարմնի վրա՝ ձևավորելով կետային կրող, կար քսուք, ուստի կոդավորիչը հեշտությամբ շրջվեց: Բայց անհրաժեշտ էր շտկել ձողի վերին մասը, դրա համար ես վերցրեցի համապատասխան պլաստիկ կտոր, որի անցք էր հենց ձողի տրամագիծը (նման կտորը կտրված էր CD-ROMA վագոնի երկարացման համակարգից): Մնում էր լուծել խնդիրը, որպեսզի կոդավորիչի ձողը դուրս չընկնի կետային առանցքակալից, ուստի ես մի քանի կաթիլ զոդում զոդեցի ձողի վրա անմիջապես պահող տարրի դիմաց: Այսպիսով, ձողը ազատորեն պտտվել է պահող կառուցվածքում, բայց առանցքակալից դուրս չի ընկել։

Կոդավորիչի սխեմայի ընտրության պատճառը հետևյալն է. Ինտերնետում տնական անեմոմետրերի վերաբերյալ բոլոր հոդվածներում նկարագրված է դրանց արտադրությունը՝ հիմնված նվագարկիչից, CD-ROM-ից կամ որևէ այլ արտադրանքից DC շարժիչի վրա: Նման սարքերի խնդիրն առաջին հերթին նրանց տրամաչափումն ու ցածր ճշգրտությունն է քամու ցածր արագության դեպքում, և երկրորդ՝ քամու արագության ոչ գծային բնութագիրը ելքային լարման նկատմամբ, այսինքն. տեղեկատվությունը համակարգչին փոխանցելու համար կան որոշակի խնդիրներ, պետք է հաշվարկել լարման կամ հոսանքի փոփոխության օրենքը քամու արագությունից: Կոդավորիչ օգտագործելիս նման խնդիր չկա, քանի որ կախվածությունը գծային է։ Ճշգրտությունն ամենաբարձրն է, քանի որ կոդավորիչը տալիս է մոտ 50 իմպուլս անեմոմետրի առանցքի մեկ պտույտի համար, բայց փոխարկիչի սխեման մի փոքր ավելի բարդ է, որում կա միկրոկառավարիչ, որը հաշվում է վայրկյանում իմպուլսների քանակը պորտերից և ելքերից մեկում: այս արժեքը USB պորտին:

4. Փորձարկում և չափաբերում

Կալիբրացիայի համար օգտագործվել է լաբորատոր անեմոմետր:


Կատարելով շատ պարզ սարք ձեր սեփական ձեռքերով և օգտագործելով այս հավելվածը՝ դուք կստանաք իրական օդաչափ՝ քամու արագությունը կամ օդի հոսքը չափելու համար։ օդափոխության համակարգ. Դուք կարող եք ընտրել անեմոմետրի դիզայն, որը լավագույնս համապատասխանում է ձեր պահանջներին:

Քամու արագության որոշումը հիմնված է հեռախոսի մագնիսաչափով մագնիսի պտտման արագությունը չափելու վրա։ Անեմոմետրի յուրաքանչյուր դիզայնի համար որոշվում է ռոտացիայի արագության կախվածությունը օդի հոսքի արագությունից: Այս կախվածությունները կարող են խմբագրվել:

Դուք կարող եք բարելավել առաջարկվող նախագծերը կամ կատարել ձեր սեփականը և չափաբերել այն:

Միավորներ (մ/վ, կմ/ժ, ֆտ/վ, մ/ժ, հանգույցներ, Bft, Հց (պտույտներ վայրկյանում), RPM (պտույտներ րոպեում)) կամ միջին արժեքը («Avg1» վերջին արժեքն է, «Avg3» « և «Avg7» - միջին արժեք) սեղմեք յոթ հատվածի ցուցադրումը:

Մի անտեսեք ձեր հեռախոսի պատյանը:

«Բացօթյա» օդաչափ




Եթե ​​Ձեզ անհրաժեշտ է չափել քամու արագությունը միացված դրսում, ապա այս տեսակը լավագույնս հարմար է դրա համար: Փոփոխությունների վրա չի ազդում քամու ուղղությունը (հեղեղի անեմոմետր) և շարժիչը չի քշվի քամու ուժեղ պոռթկումից («Զգայուն» օդաչափ):

Տեխնիկական պայմաններ:
Չափման միջակայքը 0,5 մ/վ-ից մինչև 15 մ/վ:
Ճշգրտություն 0,5 մ/վ:


Անէմոմետր պատրաստելու համար անհրաժեշտ է ալյումինե տուփից կտրել 3x3 դյույմ (7,6x7,6 սմ) քառակուսի:








Ստացված թերթիկի վրա դուք պետք է նշագծեք:




Մկրատով կտրվածքներ արեք նշանների վրա։




Կցեք շատ ուշադիր ցանկալի ձև. Եթե ​​շարժիչը անմիջապես չի ստանում ցանկալի ձևը, ապա այն կարող է հարթվել կենտրոնում անցք անելուց հետո:










Բոլոր սուր անկյունները պետք է կտրվեն: Դա պետք է արվի, որպեսզի կտրված անկյունը չմտնի մեկի աչքին։




Շարժիչը պտուտակված է գնդիկավոր գրիչի լիսեռին: Ձողի ներքին տրամագիծը կարող է շատ տարբեր լինել: Հետեւաբար, դժվար է գրել, թե ինչ չափի պտուտակ կտեղավորվի: Լուսանկարում օգտագործվում է 2x6 մմ թելի չափսով պտուտակ։ Պտուտակի գլուխը պետք է լինի հարթ (հակասուզված), քանի որ մագնիսը պետք է լավ ընկած լինի դրա վրա: Pozidriv պտուտակի (PZ) բնիկը նախընտրելի է որպես նման բնիկ անհրաժեշտ է անեմոմետրի մեկ այլ դիզայնում:




Պտուտակի փոխարեն կարող եք օգտագործել շատ փոքր պտուտակներ, մեխեր կամ նույնիսկ սոսնձել շարժիչն ու մագնիսը։ ծամոն(մաստակը պետք է թույլ տալ, որ չորանա): Եթե ​​մեխակը անհրաժեշտից մի փոքր պակաս է, ապա դրա վրա խազեր արեք։








Այժմ դուք պետք է փոքրիկ խաչ պատրաստեք 1/2 դյույմ (1,2 սմ) քառակուսուց, որի կենտրոնում փոքրիկ անցք է: Դուք կարող եք օգտագործել ավելի փոքր քառակուսի, օրինակ, եթե բռնակի ներքին տրամագիծն ավելի փոքր է:




Խաչը խնամքով մտցնում են բռնակի մեջ և հրում մինչև վերջ։






Անեմոմետրը գրեթե պատրաստ է։ Այն պետք է հեշտությամբ պտտվի, երբ դուք փչում եք դրա վրա: ՁՈՂԸ ԳՆԴԱԿՈՎ ՄԻԱՅՆ ԽԱՉԻՆ ՊԵՏՔ Է ԴԻՊԻ (գուցե դրա համար ստիպված լինեք խաչը մի փոքր փոքրացնել): ՍԱ ՏԵՍՆԵԼՈՒ ՀԱՄԱՐ ԳՆԴԱՄԻՏԻԿ ԳՐԻՉԸ ՊԵՏՔ Է ԹԱՓԱՆՑԻԿ ԼԻՆԻ:


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






Մնում է ամրացնել մագնիսը, և անեմոմետրը պատրաստ է։ օգտագործված Նեոդիմի մագնիսչափը 4x4x4 մմ (ավելի մեծ նեոդիմումային մագնիսը լավ չի կենտրոնանում պտուտակի գլխի վրա և պետք է սոսնձվի): Մագնիսի բևեռները պետք է ուղղված լինեն ճառագայթային: Մեկ այլ մագնիս կօգնի ձեզ գտնել խորանարդի բևեռները: Եթե ​​դուք ունեք մարկեր, անպայման նշեք այն մագնիսով:




Որպեսզի շարժիչը բռնակից դուրս չթռչի քամու ուժեղ պոռթկումով, սոսնձվող ժապավենի մի քանի շերտեր կարող են փաթաթվել մինչև խրոցակի տրամագիծը, որը չի անցնում անցքի մեջ: Չի կարելի չափից շատ շերտեր փաթաթել, որպեսզի պտտման ժամանակ բռնակի հպում չլինի:




Այլ տեսակի բռնակներ (օրինակ՝ «Bic Cristal») կարող են օգտագործվել օդաչափիչ պատրաստելու համար:


Խրոցը հանելու համար դրեք դանակի սայրը, ինչպես ցույց է տրված լուսանկարում և հրեք:


Այս գրիչի համար դուք պետք է օգտագործեք ավելի փոքր խաչ, որը պատրաստված է 3/8 դյույմ (9 մմ) քառակուսուց:










Օգտագործված պտուտակի չափը 2,5x6 մմ է (#3) (կամ 1,8 մմ փշոտ մեխը):


Եթե ​​դուք չեք կարող գնել փոքր նեոդիմում մագնիս, ապա կարող են օգտագործվել գրատախտակի մագնիսներ:








Ճկուն մագնիսները շատ թույլ են և չեն կարող օգտագործվել:


Պտտման հաճախականության կախվածությունը քամու արագությունից.
2 Հց - 1,5 մ/վ
4 Հց - 2,7 մ/վ
6 Հց - 3,8 մ/վ

«Զգայուն» անեմոմետր


Տեխնիկական պայմաններ:
Չափման միջակայքը 0,5 մ/վ-ից մինչև 3,5 մ/վ:
Ճշգրտություն 0,5 մ/վ:
Թարմացման միջակայքը 2-5 վրկ.


Կտրեք 3x2 դյույմ (7,6x5,1 սմ) ուղղանկյուն:






Նշեք երեք ուղղանկյուն 1 դյույմ (2,53 սմ) լայնությամբ:






















Շատ կարևոր է օգտագործել Pozidriv (PZ) պտուտակ: Քանի որ նման բնիկում ասեղը չի դիպչում կողային պատերին: Պտուտակի երկարությունը պետք է լինի հնարավորինս կարճ, որպեսզի մագնիսը հնարավորինս ցածր լինի: Լուսանկարում օգտագործվում է 2x6 մմ պտուտակ:


Պտուտակը սեղմելուց հետո «թեւերը» խնամքով բաժանվում են, իսկ շարժիչներին տրվում է ցանկալի ձևը։










Որպեսզի մագնիսը լավ պահի պտուտակի վրա, պետք է ամրացնել ևս մեկ ընկույզ։ Բայց մի շեղեք այն:




Նեոդիմի մագնիսի (4x4x4 մմ) ամրացման շնորհիվ պտուտակի ծանրության կենտրոնը բարձրանում է, և այն դառնում է անկայուն ասեղի վրա։ Ծանրության կենտրոնն իջեցնելու համար կշիռները պետք է սոսնձված լինեն «թևերի» ՆԵՐՔԻՆ (օգտագործվում են 4 մմ պտուտակով լվացող մեքենաներ):


Շարժիչը կարող է պտտվել ոչ միայն թմբուկի, այլև ՇԱՏ ԼԱՎ սրած մատիտների կամ մատիտին ամրացված կարի ասեղի վրա։ Կարի ասեղի վրա շարժիչը լավագույնս պտտվում է, բայց այս տարբերակը մեծ խնամք է պահանջում և ԽԻՍՏ ՊԻՏԻ ՉԻ ԵՐԵԽԱՆԵՐԻ ՀԱՄԱՐ:




Պտտման հաճախականության կախվածությունը քամու արագությունից (մեխանիկական մատիտի վրա 0,5 մմ).
1,5 Հց - 1,4 մ/վ
4 Հց - 2,85 մ/վ
6 Հց - 3,4 մ/վ

թիթեղների անեմոմետր


Նախատեսված է օդափոխության համակարգերում օդի հոսքի արագությունը չափելու համար:

Տեխնիկական պայմաններ:
Չափման միջակայքը՝ 1,75 մ/վ-ից մինչև 3,0 մ/վ:
Ճշգրտություն 0,2 մ/վ:
Թարմացման միջակայքը 2-5 վրկ.

Այս օդաչափը պատրաստված է պտտվող առանցքակալներով օդափոխիչից: Դուք կարող եք ընտրել ցանկացած չափսի օդափոխիչ, սակայն նկատի ունեցեք, որ որքան փոքր է օդափոխիչը, այնքան ցածր է օդաչափի զգայունությունը: Այն օգտագործում է 80x80x25 մմ օդափոխիչ:


Օդափոխիչը հեշտությամբ պտտվելու համար հարկավոր է նրանից դուրս հանել օղակաձև մագնիսը:




Պահպանող օղակը հանելիս այն պետք է ձեռքով պահել, որպեսզի չթռչի և չկորչի։






Օղակաձեւ մագնիսը դուրս հանելու համար հարկավոր է դրա տակ դնել հարթ պտուտակահան և մի փոքր պտտել պտուտակահանը։ Սա պետք է մի փոքր դուրս մղի մագնիսը: Կրկնելով այս գործողությունը՝ անհրաժեշտ է ՀԱՎԱՍԱՐ վեր բարձրացնել ամբողջ մագնիսը։




Երբ մագնիսը բարձրանում է այնպիսի դիրք, որտեղ այն այլևս հնարավոր չէ բարձրացնել պտուտակահանով, պետք է օգտագործել պտուտակ (4x30 (>30) մմ):









Հիմա երկրպագուն գնում է: Եվ եթե չդնեք ամրացնող օղակը, ապա օդափոխիչը ավելի հեշտ կլինի պտտել, բայց շարժիչը կարող է ընկնել:

Պտտման արագության կախվածությունը օդի հոսքի արագությունից.
4 Հց - 1,85 մ/վ
6 Հց - 2,3 մ/վ
8 Հց - 2,55 մ/վ
12 Հց - 2,7 մ/վ
18 Հց - 2,8 մ/վ

Եթե ​​ինչ-որ բան պարզ չէ, համոզվեք, որ նամակ գրեք:

Օդի հոսքի արագությունը չափող սարքի արտադրության համար կպահանջվեն իմպրովիզացված միջոցներ: Օրինակ, պլաստիկ Զատկի ձվերի կեսերը կարող են օգտագործվել որպես օդաչափական շեղբեր: Ձեզ անհրաժեշտ կլինի նաև կոմպակտ մշտական ​​մագնիս առանց խոզանակի շարժիչ: Հիմնական բանը այն է, որ շարժիչի լիսեռի վրա առանցքակալների դիմադրությունը նվազագույն է: Այս պահանջը պայմանավորված է նրանով, որ քամին կարող է շատ թույլ լինել, իսկ հետո շարժիչի լիսեռը պարզապես չի շրջվի: Անեմոմետր ստեղծելու համար հին կոշտ սկավառակի շարժիչը կկատարի:

Անեմոմետրի հավաքման հիմնական դժվարությունը հավասարակշռված ռոտոր պատրաստելն է: Շարժիչը պետք է տեղադրվի զանգվածային հիմքի վրա, և դրա ռոտորի վրա պետք է տեղադրվի հաստ պլաստիկ սկավառակ: Այնուհետև երեք նույնական կիսագնդերը պետք է զգուշորեն կտրվեն պլաստիկ ձվերից: Դրանք ամրացվում են սկավառակի վրա գամասեղներով կամ պողպատե ձողերով: Այս դեպքում սկավառակը նախ պետք է բաժանվի 120 աստիճանի հատվածների:

Հավասարակշռումը խորհուրդ է տրվում իրականացնել այնպիսի սենյակում, որտեղ ընդհանրապես քամու շարժումներ չկան։ Անեմոմետրի առանցքը պետք է լինի հորիզոնական դիրքում: Քաշի ճշգրտումը սովորաբար կատարվում է ասեղի ֆայլերով: Բանն այն է, որ ռոտորը կանգ է առնում ցանկացած դիրքում, ոչ թե նույն դիրքում:

Գործիքների չափաբերում

Տնական սարքը պետք է տրամաչափված լինի: Կալիբրացիայի լավագույն միջոցը մեքենա օգտագործելն է: Բայց ինչ-որ կայմ է պետք, որպեսզի այն չմտնի մեքենայի ստեղծած խախտված օդի գոտի։ Հակառակ դեպքում, ընթերցումները խիստ աղավաղված կլինեն:

Կալիբրացումը պետք է իրականացվի միայն հանգիստ օրերին: Այդ դեպքում գործընթացը չի հետաձգվի։ Եթե ​​քամին փչում է, դուք ստիպված կլինեք երկար ժամանակ վարել ճանապարհի երկայնքով և հաշվարկել քամու արագության միջին արժեքները: Նկատի ունեցեք, որ արագաչափը չափվում է կմ/ժ, իսկ քամու արագությունը՝ մ/վ: Նրանց միջեւ հարաբերակցությունը 3,6 է։ Սա նշանակում է, որ արագաչափի ցուցանիշները պետք է բաժանվեն այս թվի վրա:

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

Եղանակային կայանը կառուցված է Revolution Education Ltd ընկերության Picaxe միկրոկոնտրոլերի վրա և բաղկացած է երկու հիմնական մասից. բացօթյա միավոր, որն ուղարկում է իր տվյալները 2 վայրկյանը մեկ՝ օգտագործելով 433 ՄՀց հաճախականությամբ հաղորդիչ։ Եվ ներսի միավոր, որը ցուցադրում է ստացված տվյալները 20 x 4 LCD էկրանի վրա, ինչպես նաև մթնոլորտային ճնշումը, որը չափվում է լոկալ ներքին բլոկում:

Փորձեցի դիզայնը հնարավորինս պարզ և ֆունկցիոնալ պահել: Սարքը համակարգչի հետ հաղորդակցվում է COM պորտի միջոցով: Ներկայումս համակարգչի վրա ստացված արժեքներից գրաֆիկները շարունակաբար կառուցվում են, իսկ արժեքները ցուցադրվում են նաև սովորական ցուցիչների վրա: Գրաֆիկները և սենսորների ընթերցումները հասանելի են ներկառուցված վեբ սերվերում, բոլոր տվյալները պահվում են և այլն: Դուք կարող եք դիտել տվյալները ցանկացած ժամանակահատվածի համար:

Եղանակային կայանի կառուցումը տեւել է մի քանի ամիս՝ նախագծումից մինչեւ ավարտ, եւ ընդհանուր առմամբ ես շատ գոհ եմ արդյունքից։ Հատկապես ուրախ եմ, որ կարողացա ամեն ինչ զրոյից կառուցել սովորական գործիքներով։ Դա ինձ լիովին համապատասխանում է, բայց կատարելության սահմանափակում չկա, և դա հատկապես վերաբերում է գրաֆիկական ինտերֆեյսին: Ես օդերևութաբանական կայանի առևտրայնացման որևէ փորձ չեմ արել, բայց եթե մտածում եք ինքներդ ձեզ համար եղանակային կայան կառուցել, ապա սա լավ ընտրություն է:

Արտաքին սենսորներ

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

Ջերմաստիճանի և հարաբերական խոնավության ցուցիչ

Ջերմաստիճանի չափումը թերեւս ամենահեշտն է: Դրա համար օգտագործվում է DS18B20 սենսորը: HIH-3610-ը օգտագործվել է խոնավությունը չափելու համար՝ 0,8-3,9 Վ լարման ելքով 0%-ից 100% խոնավության դեպքում:

Ես երկու սենսորները տեղադրեցի փոքրիկի վրա տպագիր տպատախտակ. Տախտակը տեղադրված է ինքնաշեն պատյանի ներսում, որը կանխում է անձրևը և այլ արտաքին գործոնները:

Ստորև ներկայացված է սենսորներից յուրաքանչյուրի պարզեցված կոդը: Ավելի ճշգրիտ կոդը, որը կարդում է արժեքները մեկ տասնորդական կետով, ցուցադրված է Պիտեր Անդերսոնի կայքում: Դրա կոդը օգտագործվում է օդերեւութաբանական կայանի վերջնական տարբերակում։

Ջերմաստիճանի տվիչը ապահովում է ± 0,5 °C ճշգրտություն: Խոնավության սենսորն ապահովում է մինչև ± 2% ճշգրտություն, ուստի կարևոր չէ, թե քանի տասնորդական տեղ կա:

Սյուժեի օրինակ համակարգչի վրա աշխատող ծրագրաշարից:

Ջերմաստիճանը

Հիմնական՝ readtemp B.6, b1 ; կարդալ արժեքը b1-ի մեջ, եթե b1 > 127, ապա բացասական; թեստ բացասական sertxd-ի համար (#b1, cr, lf); փոխանցել արժեքը դեպի PE տերմինալ դադար 5000 goto main neg՝ b1 = b1 - 128 ; հարմարեցնել neg արժեքը sertxt("-"); փոխանցել բացասական նշան sertxt (#b1, cr, lf); փոխանցել արժեքը PE տերմինալի դադար 5000 goto main

Խոնավություն

Հիմնական՝ readadc B.7,b1 ; կարդալ խոնավության արժեքը b1 = b1 - 41 * 100 / 157; փոխել %RH sertxd (#b1, «%», cr, lf) դադար 5000; սպասեք 5 վայրկյան, գնացեք հիմնական

Խոնավության ցուցիչի հաշվարկ

Հաշվարկները վերցված են Honeywell HIH-3610 սենսորային փաստաթղթերից: Գրաֆիկը ցույց է տալիս ստանդարտ կորը 0 °C ջերմաստիճանում:

Սենսորից լարումը չափվում է Picaxe 18M2 միկրոկառավարիչի ADC մուտքում (B.7): Վերևում ցուցադրված կոդում արժեքը, որը ներկայացված է որպես 0-ից մինչև 255 թիվ (այսինքն՝ 256 արժեք), պահվում է b1 փոփոխականում:

Մեր շղթան սնուցվում է 5 Վ-ով, ուստի ADC-ի յուրաքանչյուր քայլը հետևյալն է.
5/256 = 0,0195 Վ.

Գրաֆիկը ցույց է տալիս ADC-ի սկզբնական արժեքը 0.8 V:
0.8 / 0.0195 = 41

Հաշվի առնելով գծապատկերից ստացված արժեքները՝ գրաֆիկի թեքությունը (հաշվի առնելով օֆսեթը) մոտավորապես հետևյալն է.
Ելքային լարումը / % RH կամ
(2,65 - 0,8) / 60 = 0,0308 Վ % RH-ում
(Փաստաթղթերում 0.0306)

Եկեք հաշվարկենք ADC քայլերի քանակը 1% խոնավության համար.
(V/% RH) / (ADC քայլ)
0.0308 / 0.0195 = 1.57

%RH = ADC արժեք - ADC offset / (ADC քայլերը %RH-ով), կամ
%RH = ADC արժեք - 41 / 1,57

Միկրոկարգավորիչի վերջնական հաշվարկման բանաձևը նման կլինի. %RH = ADC արժեք - 41 * 100/157

Պաշտպանիչ բնակարան

Սկսեք յուրաքանչյուր վահանակը երկու մասի կտրելով: Մի մասի տախտակները երկու կողմից ամուր կպցվեն, իսկ երկրորդ մասում միայն մի կողմից։ Մի շպրտեք այս մասերը, դրանք օգտագործվում են:

Ամբողջ մասերին ամրացրեք երկուսը փայտե ձողեր 20 մմ x 20 մմ վերևից և ներքևից, իսկ մյուս մասերը պտուտակեք դրանց վրա:

Կտորներից մեկը մի ամբողջ կողմով կտրատեք ըստ չափի և կպցրեք կողմերից մեկի ներսից։ Համոզվեք, որ տախտակները սոսնձված են այնպես, որ նրանք միասին «^» ձևավորեն: Դա արեք բոլոր կողմերի համար:

Քամու արագության և ուղղության հաշվիչ

Մեխանիկական

Քամու արագության և ուղղության սենսորները մեխանիկական և էլեկտրոնային բաղադրիչների համակցություն են: Մեխանիկական մասը նույնական է երկու սենսորների համար:

ՊՎՔ խողովակի և խողովակի վերին ծայրում գտնվող չժանգոտվող պողպատից սկավառակի միջև տեղադրվում է 12 մմ նրբատախտակի ներդիր (ծովային շերտ): Առանցքակալը սոսնձված է չժանգոտվող պողպատից սկավառակի վրա և պահվում է չժանգոտվող պողպատից ափսեով:

Այն բանից հետո, երբ ամեն ինչ ամբողջությամբ հավաքվում և տեղադրվում է, բաց տարածքները փակվում են ջրամեկուսացման համար:

Լուսանկարում մնացած երեք անցքերը սայրերի համար են: 80 մմ երկարությամբ շեղբերները տալիս են 95 մմ շրջադարձի շառավիղ: Բաժակներ 50 մմ տրամագծով: Դրանց համար ես օգտագործեցի կտրված օդեկոլոնի շշեր, որոնք գրեթե գնդաձև են: Ես վստահ չեմ դրանց հուսալիության վրա, ուստի ես դրանք հեշտությամբ փոխարինելի դարձրեցի:

Էլեկտրոնային մաս

Քամու արագության ցուցիչի էլեկտրոնիկան բաղկացած է միայն տրանզիստորային անջատիչից, ֆոտոդիոդից և երկու ռեզիստորից: Դրանք տեղադրվում են 32 մմ տրամագծով փոքր կլոր PCB-ի վրա: Դրանք ազատորեն տեղադրվում են խողովակի մեջ, որպեսզի խոնավությունը, եթե մտնում է, հոսում է ներքև՝ առանց էլեկտրոնիկան դիպչելու։

Անէմոմետրը այն երեք սենսորներից մեկն է, որը պետք է չափորոշվի (մյուս երկուսը տեղումների հաշվիչն են և բարոմետրիկ ճնշման սենսորը)

Ֆոտոդիոդն ապահովում է երկու իմպուլս մեկ պտույտով: Պարզ «սերիական» համակարգում, որին ես նպատակաուղղված էի (բոլոր սենսորները հերթով ընտրվում են), պետք է փոխզիջում լինի յուրաքանչյուր սենսորի հարցում անցկացրած ժամանակի (այս դեպքում՝ իմպուլսները հաշվելու) և համակարգի արձագանքման միջև։ որպես ամբողջություն։ Իդեալում, բոլոր սենսորների հարցումների ամբողջական ցիկլը պետք է տևի ոչ ավելի, քան 2-3 վայրկյան:

Վերևում գտնվող լուսանկարում սենսորը ստուգելով կարգավորելի արագությամբ շարժիչով:

; LCD-ին հատուկ հրամանները ցուցադրված են կապույտ hsersetup B9600_4, %10000; Օգտագործեք LCD Pin 1, no hserin hserout 0, (13) : pause 100 ; Նախաձեռնել LCD hserout 0, (13) : pause 100 hserout 0, (13) : pause 100 pause 500 hserout 0, («ac1», 13) ; Մաքրել ցուցադրման դադարը 50 hserout 0, ("acc", 13) hserout 0, ("ac81", 13, "adcount: ", 13) ; Տպել վերնագրերը pause 10 hserout 0, ("ac95", 13, "adpulsin: ", 13) ; Տպեք վերնագրերը դադար 10, միացրեք C.2, 1000, w0; Հաշվեք իմպուլսները (երկու պտույտում) w1 = 0 b8 = 1-ից 2-ի համար; Չափել զարկերակի երկարությունը երկու անգամ պուլսին C.2, 1, w2; մեկ պտույտով և... w1 = w1 + w2 հաջորդ w1 = w1 / 2 ; ...հաշվարկել միջին hserout 0, ("ac89", 13, "ad ", #w0, " ", 13);Տպել hserout 0, ("ac9d", 13, "ad", #w1, " ", 13) ;Տպեք իմպուլսի երկարության արժեքը դադար 100 հանգույց

Ես ուզում էի այն չափել մեքենա վարելիս, բայց դրա համար ժամանակ չկար։ Ես ապրում եմ համեմատաբար հարթ տարածքում, որի օդանավակայանը մի քանի մղոն հեռավորության վրա է, ուստի ես չափաբերեցի սենսորը՝ համեմատելով քամու արագության իմ ցուցանիշները օդանավակայանի ցուցանիշների հետ:

Եթե ​​մենք ունենայինք 100% արդյունավետություն, և սայրերը պտտվեին քամու արագությամբ, ապա.
Ռոտորի շառավիղ = 3,75 դյույմ
Ռոտորի տրամագիծը = 7,5" = 0,625 ֆտ
Ռոտորի շրջագիծը = 1,9642 ֆուտ

1 ֆտ/րոպե = 0,0113636 մ/ժ,
1,9642 ֆտ/րոպե = 1 պտ/ժ = 0,02232 մ/ժ
1 մ/ժ = 1 / 0,02232 rev

1 մ/ժ = 44,8 պտ/րոպ
? մ/ժ = պտույտ / 44,8
= (rpm * 60) / 44.8

Քանի որ մեկ պտույտի համար կա երկու իմպուլս
? մ / ժ = (իմպուլսներ մեկ վայրկյանում * 30) / 44.8
= (զարկերակ մեկ վայրկյանում) / 448

Քամու ուղղության սենսոր - մեխանիկական մաս

Քամու ուղղության սենսորում ալյումինե ափսեի փոխարեն օգտագործվում է մագնիս, իսկ օպտոէլեկտրոնային միավորի փոխարեն՝ հատուկ AS5040 չիպ (մագնիսական կոդավորիչ):

Ստորև բերված լուսանկարը ցույց է տալիս 5 մմ մագնիս, որը տեղադրված է կենտրոնական պտուտակի ծայրին: Մագնիսի հավասարեցումը չիպի հետ շատ կարևոր է: Մագնիսը պետք է կենտրոնացած լինի չիպից մոտ 1 մմ բարձրության վրա: Երբ ամեն ինչ ճշգրտորեն հավասարեցված է, սենսորը ճիշտ կաշխատի:

Քամու ուղղության սենսոր - էլեկտրոնային մաս

Գոյություն ունեն քամու ուղղությունը չափելու տարբեր սխեմաներ։ Հիմնականում դրանք բաղկացած են կամ 8 եղեգի անջատիչներից, որոնք բաժանված են 45 աստիճանով պտտվող մագնիսի ընդմիջումներով կամ պոտենցիոմետրից, որը կարող է ամբողջությամբ պտտվել:

Երկու մեթոդներն էլ ունեն իրենց առավելություններն ու թերությունները: Հիմնական առավելությունն այն է, որ դրանք երկուսն էլ հեշտ են իրականացնել: Թերությունն այն է, որ դրանք ենթակա են մաշվածության, հատկապես պոտենցիոմետրերի: Reed անջատիչների օգտագործման այլընտրանքը կլինի Hall-ի էֆեկտի ցուցիչի օգտագործումը մեխանիկական մաշվածության հետ կապված, բայց դրանք դեռ սահմանափակված են 8 տարբեր դիրքերով... Իդեալում, ես կփորձեի այլ բան և, ի վերջո, որոշեի պտտվող մագնիսական IC սենսորը: Չնայած այն մակերևութային ամրացման սարք է (որից ես փորձում եմ խուսափել), այն ունի մի շարք առավելություններ, որոնք գրավիչ են դարձնում այն ​​օգտագործելը:

Այն ունի մի քանի տարբեր ելքային ձևաչափեր, որոնցից երկուսն ամենահարմարն են մեր նպատակների համար: Լավագույն ճշգրտությունը ձեռք է բերվում SSI ինտերֆեյսի միջոցով: AS5040-ը հաղորդում է իմպուլսներ 1 µs-ից 0°-ից մինչև 1024 µs 359,6°-ում:

Քամու ուղղության սենսորի ստուգաչափման ստուգում.

Կարդացեք readadc10 B.3, w0 ;Կարդացեք AS5040 մագնիսական առանցքակալի դադարից 100 w0 = w0 * 64 / 182 ; Փոխարկել 0 - 360 (աստիճան) վրիպազերծման ; Ցուցադրել Prog/Edit կարգաբերման պատուհանի հանգույցում

Տեղումների հաշվիչ

Հնարավորինս անձրևաչափը պատրաստել եմ պլաստիկից և չժանգոտվող պողպատից, հիմքը պատրաստված է 3 մմ հաստությամբ ալյումինից՝ կոշտության համար։

Անձրևաչափի մեջ երկու դույլ կա։ Յուրաքանչյուր դույլ պահում է մինչև 6 մլ ջուր, նախքան այն տեղափոխում է իր ծանրության կենտրոնը, ինչը ստիպում է նրան ջուր լցնել տուփի մեջ և ազդանշան տալ սենսորին: Երբ դույլը շրջվում է, ալյումինե դրոշն անցնում է օպտիկական սենսորով, որն ազդանշան է ուղարկում արտաքին միավորի էլեկտրոնիկան:

Առայժմ ես այն թողել եմ թափանցիկ պատերով (քանի որ հաճելի է դիտել, թե ինչպես է աշխատում): Բայց ես կասկածում եմ, որ այն պետք է սպիտակ ներկել, որպեսզի արտացոլի ջերմությունը ամռանը՝ գոլորշիացումից խուսափելու համար: Ես չկարողացա գտնել մի փոքրիկ ձագար, ուստի ստիպված էի իմը սարքել: Ուշադրություն դարձրեք ձագարի ներսում և ջրհեղեղի կենտրոնում գտնվող մետաղալարին: Սա կօգնի դադարեցնել ջրի մակերեսային լարվածությունը ձագարի մեջ և կօգնի ջուրը կաթել: Առանց մետաղալարի անձրևը «պտտվելու» միտում կունենա, և նրա հետագիծն անկանխատեսելի կլիներ:

Օպտոսենսորների մոտիկից.

Անձրևաչափի էլեկտրոնային մաս

Սենսորի պատահական բնույթի պատճառով արտաքին բլոկի MCU-ում ծրագրային ապահովման ընդհատումը կարծես տրամաբանական մոտեցում էր: Ցավոք, որոշ ծրագրային հրահանգներ անջատում են ընդհատման մեխանիզմը, երբ դրանք կատարվում են, այդպիսով: հավանականություն կա, որ ազդանշանը ոչ մի տեղ չի գնա: Այս պատճառներով անձրևաչափն ունի իր սեփական 08M Picaxe միկրոկառավարիչը:

Առանձին չիպի օգտագործումը թույլ է տալիս այն օգտագործել 1 ժամ ուշացում ստեղծելու համար, որը բավականաչափ ճշգրիտ է ժամում դույլերը հաշվելու համար:

Կալիբրացիա

Picaxe 18m2-ը ստանում է ժամում դույլերի ընթացիկ քանակը և ցուցադրում այն ​​էկրանին և համակարգչին:

Որպես ելակետ, ես օգտագործում եմ հետևյալ տվյալները.
Ձագարի տրամագիծը 120 մմ և տարայի մակերեսը 11.311 մմ2
1 մմ անձրեւ = 11,311 մմ3 կամ 11,3 մլ:
Յուրաքանչյուր դույլը 5,65 մլ է։ Այսպիսով, 2 դույլ 2 x 5,65 = 11,3 մլ (կամ 1 մմ) տեղումներ: Մեկ դույլ = 0,5 մմ տեղումներ:

Համեմատության համար գնեցի էժան անձրևաչափ։

Վերոնշյալ սխեման և 08M Picaxe սխեման օգտագործում են նույն PCB դասավորությունը սենսորի համար: Սարքը սնուցվում է 12V 7Ah մարտկոցով 7805 կայունացուցիչի միջոցով:
Ես օգտագործել եմ RF Connect հավաքածուն 433 ՄՀց անլար հաճախականության համար: Հավաքածուն պարունակում է մի զույգ հատուկ ծրագրավորված PIC կարգավորիչներ: Անլար մոդուլների մի շարք փորձարկումների ընթացքում ապացուցվել է, որ բավականին հուսալի է:

PP-ի վրա տեղադրված են 08M Picaxe և 18m2: Նրանցից յուրաքանչյուրն ունի իր ծրագրավորման միակցիչը: Առանձին միակցիչներ, որոնցից յուրաքանչյուրն ունի +5V, նվիրված է յուրաքանչյուր սենսորին, բացառությամբ ջերմաստիճանի և խոնավության:

Խնդրում ենք նկատի ունենալ, որ ես նկարել եմ նկարը Paintshop Pro-ում, այնպես որ չեմ կարող երաշխավորել կապի միջակայքի ճշգրտությունը:

ներքին միավոր

Ներքին բլոկը օգտագործում է 18 մ2 Picaxe, ճնշման սենսոր և LCD էկրան: Առկա է նաև 5V լարման կարգավորիչ։

Ճնշման հաշվիչ

Մի քանի անհաջող փորձերից հետո ես տեղավորվեցի MPX4115A-ի վրա: Թեև այլ սենսորներ ունեն մի փոքր ավելի մեծ չափման տիրույթ, սակայն նրանց հասանելիությունը դժվար է: Բացի այդ, մյուս սենսորները սովորաբար աշխատում են 3.3 Վ լարման վրա և պահանջում են լրացուցիչ կարգավորիչ: MPX4115A-ն ապահովում է անալոգային լարում 3,79 Վ-ից մինչև 4,25 Վ՝ համաչափ ճնշմանը: Թեև սա գրեթե բավարար լուծում է 1 մբ ճնշման փոփոխություն հայտնաբերելու համար, ֆորումում որոշ քննարկումներից հետո ես ավելացրեցի MCP3422 ADC: Այն կարող է աշխատել 16-բիթանոց ռեժիմով (կամ ավելի բարձր)՝ համեմատած Picaxe-ի 10-բիթանոց ռեժիմի հետ: MCP3422-ը կարող է միացված լինել (ինչպես մեր միացումում) դիֆերենցիալ ռեժիմում՝ սենսորից անալոգային մուտքով: Հիմնական առավելությունն այն է, որ դա թույլ է տալիս շտկել սենսորի ելքը՝ դրանով իսկ հեշտությամբ փոխհատուցելով MPX4115A սխալները և ապահովելով սենսորի չափորոշման հեշտ միջոց:

MPC3422-ն իրականում ունի երկու դիֆերենցիալ մուտք, բայց քանի որ մեկը չի օգտագործվում, դրանք կարճացված են: MCP3422-ի ելքը ունի I2C ինտերֆեյս և միանում է 18 մ2 Picaxe-ի SDA և SCL կապանքներին՝ համապատասխանաբար B.1 և B.4 կապանքներին: Իմ տեսանկյունից, MCP3422-ի օգտագործման միակ թերությունն այն է, որ այն փոքր մակերեսային սարք է, բայց ես այն զոդել եմ ադապտերին: Բացի I2C ինտերֆեյսից, MCP3422 18m2-ը պարզապես մշակում է մուտքային տվյալները 433 ՄՀց անլար ընդունիչից, ցուցադրում է տվյալները էկրանին և տվյալները փոխանցում համակարգչին: Ներքին միավորի սխալներից խուսափելու համար, երբ համակարգիչը չի աշխատում, ԱՀ-ից պատասխան չկա: ներքին միավորփոխանցում է տվյալները և առաջ է շարժվում: Այն փոխանցում է տվյալները մոտավորապես 2 վայրկյան ընդմիջումներով, որպեսզի տվյալների կորուստը արագ փոխհատուցվի հաջորդ անգամ: Ես օգտագործել եմ չօգտագործված նավահանգիստները 18 մ2-ի վրա՝ առջևի վահանակի կոճակը միացնելու համար: S1 անջատիչը (մուտք C.5) օգտագործվում է LCD-ի հետին լույսը միացնելու համար: S2 անջատիչը (մուտք C.0) վերականգնում է ճնշման արժեքը (mbar) LCD էկրանի վրա: S3 անջատիչը (մուտք C.1) փոխում է LCD էկրանին ցուցադրվող տեղումների քանակը նախորդ ժամի և ընթացիկ ժամի ընդհանուր քանակի միջև: Կոճակները պետք է սեղմած պահվեն 1 վայրկյանից ավելի, որպեսզի նրանք արձագանքեն:

Ներքին միավորի հավաքում

Ինչպես արտաքին բլոկի PCB-ի դեպքում, ես ձեռքով նկարեցի դասավորությունը՝ օգտագործելով Paintshop Pro-ն, այնպես որ կարող են լինել սխալներ հեռավորությունների վրա:

Տախտակը մի փոքր ավելի մեծ է, քան անհրաժեշտ է, որպեսզի տեղավորվի ալյումինե պատյանի անցքերի մեջ:
Ես դիտմամբ ծրագրավորման միակցիչը մի փոքր «ներս» դարձրեցի տախտակի եզրից, որպեսզի այն չդիպչի գործին: LCD էկրանի կտրվածքը փորված և կտրված է ճշգրիտ չափսերով:

Լուսանկարում պատկերված է այն ամենը, ինչ արդեն տեղադրված է պատյանում։

Տախտակի վրայի քորոցները դժվարացնում են այն պատյանի մեջ տեղադրելը, ուստի ես ստիպված էի դրանք ապազոդել և էկրանը լարերով զոդել տախտակին:

Արտաքին միավոր - Picaxe կոդը

; ================================================== ================ ; Հիմնական 18M2 կոդը Picaxe եղանակային կայանի բացօթյա (հաղորդիչ) միավորի համար; Տասնորդական ճշգրտություն Խոնավության և ջերմաստիճանի ռեժիմներ, ; հեղինակային իրավունք, Peter H Anderson, Baltimore, MD, Jan, "04; ; ================================= ============================================= #Picaxe 18M2 խորհրդանիշ HValue = w0 Նշան HighWord = w1 Նշան LowWord = w2 Նշան RH10 = w3 Խորհրդանիշ HQuotient = b0 Նշան HFract = b1 Նշան X = b0 Նշան aDig = b1 Նշան TFactor = b2 Նշան Tc = b3 Խորհրդանիշ SignBit = b4 Նշան TVvalue = w4 Նշան TQuotient = b10 Նշան TFract = MagDymbol0 Temp b1D1 = b14 խորհրդանիշ MagDirHi = b15 խորհրդանիշ WindSpeed ​​= w8 Խորհրդանիշ WindSpeedLo = b16 խորհրդանիշ WindSpeedHi = b17 Խորհրդանիշ ThisHour = b18 Նշան LastHour = b19 Նշան RainRequest = b20 Սարքավորումների ցուցիչ TempRaw Symbol Humi. 3 Նշանի արագություն = B.0 do ;Կարդալ խոնավություն ReadADC10 HumidRaw, HValue ;Ստացեք խոնավություն (HValue) HighWord = 1613 ** HValue ;հաշվեք RH LowWord = 1613 * HValue RH10 = HValue RH10 = ցածր RH10 = Ցածր բառ RH10 = H2 LowWord / 1 + LowWord RH10 = RH10 - 258 դադար 100; Rea դ ջերմաստիճան Readtemp12 TempRaw, TValue ; Ստացեք ջերմաստիճանը SignBit = TValue / 256 / 128 եթե SignBit = 0 ապա դրական ; Բացասական է, ուստի TVvalue = TVvalue ^ $ffff + 1; վերցրեք երկու վայրկյան համեմատական ​​դրական. TempC_100 = TVvalue * 6; TC = արժեքը * 0.0625 TVvalue = TVaue * 25 / 100 TempC_100 = TempC_100 + TValue TQuotient /0C = TQuotient /0C = % 100 / 10 X = TQuotient / 10; Հաշվեք ջերմաստիճանի շտկման գործակիցը խոնավության համար, եթե SignBit = 0, ապա SignBit = " " այլապես SignBit = "-" վերջ, եթե SignBit = "-" ապա X = 4 - X ուրիշ X = X + 4 endif GoSub TempCorrection ;փոխհատուցել RH HQuotient = RH10 / 10 ;Հաշվարկել RH գործակիցը և... HFract = RH10 % 10 ;...տասնորդական տեղ.եթե HQuotient > 99 ապա ;HQuotient = 99 HQuotient if = 99 HQuotient if = 10 ապա; տիրույթի տակ HQuotient = 0 HFract = 0 endif; Կարդացեք AS540 մագնիսական կոդավորիչը քամու ուղղության համար readadc10 DirRaw, MagDir; Կարդացեք AS5040 մագնիսական առանցքակալի դադարից 100; Կարդացեք պտույտ/րոպե քամու արագության հաշվիչից Արագություն, 1000, ցիկլ 3: մոտ 1 րոպե), պահանջեք անձրևաչափի տվյալներ 08M inc RainRequest, եթե RainR equest >= 30 then high C.1 serin , C.0, N2400, («r»), LastHour, ThisHour ; Անձրևի հաշվիչներ ցածր C.1 RainRequest = 0 endif; Տվյալներն ուղարկել ներքին միավորին 8 բայթ բլոկներով; Առաջին խումբը չափորոշման կարիք չունի, ուստի հաշվարկները նախ այստեղ են կատարվում: ; Երկրորդ խմբին կպահանջվի «կտրվածք», որն ավելի հեշտ է արվում ներսի վերջում: serout C.2, N2400, («t», SignBit, TQuotient, TFract, HQuotient, HFract, «A», «B») դադար 100 serout C.2, N2400, («m», MagDirHi, MagDirLo, WindSpeedHi, WindSpeedLo, LastHour, ThisHour, «C») հանգույց TempCorrection. Փնտրել X, (87, 89, 91, 93, 95, 97, 99, 101, 103, 106, 108, 110, 113, 116,12121): ), TFactor " -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 եթե TFactor< 100 then aDig = TFactor / 10 RH10 = RH10 * aDig / 10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 else TFactor = TFactor % 100 aDig = TFactor / 10 RH10 = RH10 * aDig / 10 + RH10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 endif return

Օգտագործված հիշողություն = 295 բայթ 2048-ից

Անձրևի հաշվիչ - 08M ծածկագիր

#picaxe 08M խորհրդանիշ ThisHour = b2 ; Պահպանեք ընթացիկ սենսորների քանակը b2 խորհրդանիշ LastHour = b3; Պահպանեք նախորդ ժամերի քանակը b3-ում; Սարքավորումների սահմանումներ Նշան DataRequest = pin3 Symbol BucketSensor = pin4 setint %00010000, %00010000; pin4-ը ընդհատման հիմնական փին է՝ w0 = 1-ից մինչև 60000; Loop 1 ժամ հաջորդ դադարի համար: Թարմացրեք Վերջին ժամերի քանակը ThisHour = 0-ով; ընթացիկ ժամը & զրոյացնել ընթացիկ ժամը goto main; Կատարեք հաջորդ ժամի ընդհատումը՝ setint %00010000, %00010000; Վերահաստատեք ընդհատումը, եթե DataRequest = 1, ապա ; Արդյո՞ք ընդհատումը 18 մ2-ից էր: serout 2, N2400, («r», LastHour, ThisHour) ; Այո, այնպես որ ուղարկեք նախորդ ժամերի և ընթացիկ հաշվարկը: արեք՝ պտտեք, մինչդեռ DataRequest = 1; Սպասեք, մինչև 18M2-ը դադարեցնի հարցումը, նախքան շարունակեք endif-ը, եթե BucketSensor = 1, ապա; Արդյո՞ք ընդհատումը եղել է անձրևի սենսորից: inc ThisHour; Այո, ուրեմն ավելացում: Դույլի ծայրերի հաշվարկը արեք. պտտեք, մինչդեռ BucketSensor = 1; Համոզվեք, որ դրոշը մաքրված է սենսորից մինչև վերջի վերադարձը շարունակելը:

Ներքին միավոր - Picaxe կոդը

;================================================== =========================== ; Հիմնական ներքին (ընդունիչ) ծրագիր. ; ; Ստանում է տվյալներ արտաքին բլոկից, ցուցադրում է LCD-ի վրա և տվյալները փոխանցում համակարգչին; Նաև չափում է բարոմետրիկ ճնշումը («մայրիկի» շնորհիվ) ;==================================== ======================================= #PICAXE 18M2 ; Փոփոխական սահմանումներ (b2-ից b5-ը կրկին օգտագործվում են mBar կոդի համար, երբ դրանք հասանելի են դառնում) խորհրդանիշ Քաղորդ = b2 խորհրդանիշ Fract = b3 խորհրդանիշ SignBit = b4 խորհրդանիշ Խոնավություն = b5 խորհրդանիշ HFract = b14 խորհրդանիշ Dir = w5 նշան DirLo = b10 խորհրդանիշ DirHi = b11 խորհրդանիշ Արագություն = w3 խորհրդանիշ SpeedLo = b6 խորհրդանիշ SpeedHi = b7 խորհրդանիշ RainCountThisHour = b12 խորհրդանիշ RainCountLastHour = b13 խորհրդանիշ LCDRainWhole = b21 խորհրդանիշ LCDRainFract = b22 խորհրդանիշ LastOrThis = b23; MCP3422 ADC փոփոխականների խորհրդանիշ mb900 = 17429; ADC-ի ընթերցում 900 ՄԲարի համար, այնուհետև ավելացրեք 72,288 հաշվարկ մեկ մբար սիմվոլի համար adj0 = 72 նշան mBarADCValue = w0 նշան adj1 = b4 ; օգտագործվում է յուրաքանչյուր 4 մբար սիմվոլի 1 հաշվարկ ավելացնելու համար adj2 = b5; օգտագործվում է յուրաքանչյուր 24 մբար սիմվոլով 1 հաշվարկ ավելացնելու համար mBar = w4; Տնային տնտեսության փոփոխականների խորհրդանիշ lastmbar = w8; Հիշեք նախորդ mBar ընթերցման խորհրդանիշը RiseFall = b18; Ճնշման բարձրացման կամ անկման ցուցիչ (վերև կամ ներքև սլաք) նշանը ակտիվ = b19 ; Telltale-ը ցույց է տալիս գործունեությունը LCD էկրանի խորհրդանիշի վրա LCD_Status = b20; LCD հետևի լույսը միացված է կամ անջատված (0 կամ 1): ; Սարքավորումների սահմանումների խորհրդանիշ Wireless = C.7; Մուտքային կապ անլար ընդունիչից/ապակոդավորիչի խորհրդանիշից Համակարգիչ = C.2 ; Ելքային սերիական միացում համակարգչի խորհրդանիշին LCD = pinC.5; Առջևի վահանակի կոճակը դեպի դատարկ / դատարկ LCD հետին լույսի խորհրդանիշ ClearRiseFall = pinC.0 ; Առջևի վահանակի կոճակը մաքրելու ճնշումը «բարձրացող/ընկնող» ցուցիչի խորհրդանիշը LastOrThisSwitch = pinC.1; Առջևի վահանակի կոճակ՝ ընթացիկ կամ նախորդ ժամվա անձրևը ցուցադրելու համար Սկսնակ՝ hsersetup B9600_4, %10000 ; Օգտագործեք LCD Pin 1, առանց hserin ; ByVac 20x4 IASI-2 Սերիական LCD hi2csetup i2cmaster, %11010000, i22it 3CF2C, i2cPin, ADC chip.hi2cout (%00011000) ;սահմանել MCP3422 16 բիթ շարունակական փոխակերպման դադարի համար 500 hserout 0, (13) : pause 100 ;Initialize LCD hserout 0, (13) : pause 100 hserout 0, pause 100 hserout 0, pause 130 hserout 0: hserout 0, ("ac50", 13) hserout 0, ("ad", 32, 32, 32, 32, 49, 42, 36, 32, 13); Սահմանել ներքեւ սլաքի նիշը (char 10) hserout 0, (" ac1", 13); Մաքրել ցուցադրման դադարը 50 hserout 0, ("acc", 13) ; Թաքցնել կուրսորը hserout 0, ("ac81", 13, "ad ", $df, "C", 13); Տպել վերնագրերը hserout 0, ("ac88", 13, "admBar", 13) hserout 0, ("ac8e", 13, "adRH %", 13) hserout 0, ("acd5", 13, "ad", "dir" , 13) ; Տպել ոտնաթաթը hserout 0, ("acdc", 13, "ad", "mph", 13); hserout 0, ("ace3", 13, "ad", "mm", 13) lastmbar = 0 Նախաձեռնել փոփոխականները LastOrThis = «c» ;==== ================================================== ===================== ; Հիմնական հանգույց ;============================================== =========================== հիմնական՝ ; Ստուգեք, արդյոք սեղմված է ճակատային վահանակի անջատիչը: Picaxe-ի ընդհատման մեխանիզմն է. գրեթե ընդմիշտ հաշմանդամ է մեծ թվով serin և serout հրամանների պատճառով; այնպես որ ծրագիրը «gosub անջատիչներով» շաղ տալ՝ անջատիչի կարգավիճակը ստուգելու համար ավելի շատ է ; արդյունավետ, որն ընդհատում է. gosub անջատիչներ; Ստացեք արժեքների առաջին խումբը արտաքին միավորից 433 ՄՀց ռադիոհղման միջոցով: serin Wireless, N2400, («t»), SignBit, Quotient, Fract, Humidity, HFract, b15, b15; Flash «telltale» LCD-ի վրա՝ ցույց տալու ակտիվությունը և հաջող «serin»-ը անլարից: gosub պատմող; Ցուցադրել առաջին խումբը LCD hserout 0, ("acc0", 13) hserout 0, ("ad", SignBit, #Quotient, ".", #Fract, " ", 13) hserout 0, ("acce", 13) hserout 0, ("ad", #Humidity,"", #HFract, " ", 13) gosub անջատիչներ ; Ուղարկել առաջին խումբը համակարգչի COM պորտին; Յուրաքանչյուր խումբ ունի սկզբի նույնացուցիչ, տվյալներ և վերջի նույնացուցիչ. Սկիզբ = «xS», Վերջը «xE» է, օրինակ՝ Wind Start-ը՝ WS, Wind End՝ WE; Բազմաթիվ տվյալներ բաժանվում են մեկ բացատ նիշով: serout Computer, N2400, ("TS", SignBit, #Quotient," ", #Fract, "TE") ; Ջերմաստիճանի շիճուկ Համակարգիչ, N2400, ("HS", #Humidity, " ", #HFract, "HE" ); Խոնավություն ; Ստուգեք անջատիչները նորից և կանոնավոր ընդմիջումներով ամբողջ ծրագրի ընթացքում: gosub անջատիչներ; Ստացեք արժեքների երկրորդ խումբը արտաքին միավորի ռադիոհղումից: serin Wireless, N2400, («m»), DirHi, DirLo, SpeedHi, SpeedLo, RainCountLastHour, RainCountThisHour, b15 gosub ցուցիչ Արագություն = Արագություն * 300 / 448; Գնահատված փոխարկումը իմպուլսներից/վրկ-ին mph Dir = Dir * 64 / 182; Փոխարկել 0-1023-ը 0-359 աստիճանի; Ճշգրտությունը պահպանելու համար անձրևաչափը պետք է չափորոշվի՝ կարգավորելով . մեխանիկական կանգառներ պտտվող դույլի վրա այնպես, որ 1 ծայրը լինի 0,5 մմ անձրև: եթե LastOrThis = «c» ապա ; Որոշեք՝ ցուցադրել նախորդ ժամի LCDRainWhole = RainCountThisHour / 2; անձրևի կամ ընթացիկ ժամի ցուցադրումը: LCDRainFract = RainCountThisHour * 5 // 10 other LCDRainWhole = RainCountLastHour / 2; LCDRainFract = RainCountLastHour * 5 // 10 endif ; Ուղարկեք երկրորդ խումբ LCD hserout 0, ("ac95", 13) hserout 0, ("ad", #Dir, " ", 13) hserout 0, ("ac9c", 13) hserout 0, ("ad", # Արագություն, " ", 13) hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) ; Երկրորդ խումբ ուղարկել համակարգչին COM port serout Computer, N2400, ("WS", #Dir", ", #Speed, "WE") ; Wind serout Computer, N2400, ("RS", #RainCountLastHour," ", #RainCountThisHour, "RE" ); Անձրևի անջատիչներ; Շնորհիվ «matherp»-ի Picaxe ֆորումի mbar code հանգույցի համար. Մթնոլորտային ճնշման չափում MPX4115A-ով; Անալոգային թվային փոխարկում՝ օգտագործելով MCP3422; MPX ելք V+, 2. 5V-ից V-; ADC 16 բիթ ռեժիմում hi2cin (b1,b0,b2); Կարդացեք ADC-ի ընթերցմամբ եւկարգավիճակի բայթ MCP3422-ից adj1 = 0 adj2 = 0 w1 = mb900 mbar = 900 անել, մինչդեռ mBarADCValue > w1; mBarADCValue = w0 = b1:b0 inc mbar w1 = w1 + adj0 inc adj1, եթե adj1 = 4, ապա inc adj2 w1 = w1 + 1 adj1 = 0 endif, եթե adj2 = 6, ապա w1 = w1 + 1 adj2 = 0 endif loop gosub անջատիչներ: պատմող; Ուղարկեք ճնշումը համակարգչին COM port serout Computer, N2400, ("PS:", #mbar, "PE") ; Նախաձեռնեք նախորդ ճնշման ընթերցումը (վերջին մարգ), եթե արդեն սահմանված չէ, եթե lastmbar = 0, ապա lastmbar = mbar RiseFall = " " endif ; Ցուցադրել վեր կամ վար սլաքը, եթե ճնշումը փոխվել է, եթե mbar > lastmbar then RiseFall = "^" ; ^ lastmbar = mbar endif եթե բար< lastmbar then RiseFall = 10 ; Custom LCD character. Down arrow lastmbar = mbar endif hserout 0, ("acc7", 13) hserout 0, ("ad", RiseFall, #mbar, " ",13) gosub telltale goto main ; Check if one of the front panel buttons is pressed. switches: if LCD = 1 then ; LCD Backlight on/off Button is pressed if LCD_Status = 0 then ; Backlight is on so... hserout 0, ("ab0", 13) ; Turn it off LCD_Status = 1 else hserout 0, ("ab1", 13) ; Else turn it on. LCD_Status = 0 endif do: loop while LCD = 1 ; Don"t return while button is pressed endif if ClearRiseFall = 1 then ; Pressure rise/fall button is pressed RiseFall = " " ; Clear indicator and... hserout 0, ("acc7", 13) ; ... update display. hserout 0, ("ad", RiseFall, #mbar, " ",13) do: loop while ClearRiseFall = 1 endif if LastOrThisSwitch = 1 then ; Rain Previous Hour / Last Hour button. if LastOrThis = "c" then LastOrThis = "p" LCDRainWhole = RainCountLastHour / 2 ; Recalculate values and re-display to LCDRainFract = RainCountLastHour * 5 // 10 ; give visual confirmation of button-press else LastorThis = "c" LCDRainWhole = RainCountThisHour / 2 ; LCDRainFract = RainCountThisHour * 5 // 10 endif hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) do: loop while LastOrThisSwitch = 1 endif return ; Flash "tell-tale" on LCD display to show activity telltale: if active = "*" then active = " " else active = "*" endif hserout 0, ("ac80", 13, "ad", active, 13) return

Օգտագործված հիշողություն = 764 բայթ 2048-ից

Համակարգչի ծրագրակազմ

Ծրագրաշարը, որն աշխատում է համակարգչի վրա, գրվել է Borland Delphi 7-ի միջոցով: Այն բավականին պարզունակ է իր ներկայիս տեսքով, բայց այն առնվազն ցույց է տալիս Picaxe-ի և համակարգչի միջև կապը:

Գրաֆիկները կարող են ընտրվել 1 ժամ կամ 12 ժամվա ընթացքում ցուցադրվելու համար: Գրաֆիկները կարելի է ոլորել ետ ու առաջ մկնիկի օգնությամբ: Նրանք կարող են փրկվել: Դա անելու համար սեղմեք դրանց վրա մկնիկի աջ կոճակը և նշեք ֆայլի անունը և արժեքը: Դուք կարող եք կարգավորել APRS տվյալների սահմանափակ փաթեթ, որը գրվում է րոպեում մեկ անգամ APRS.TXT ֆայլի յուրաքանչյուր տողում և պահվում Weather.exe-ի նույն պանակում: Նկատի ունեցեք, որ ջերմաստիճանը Ֆարենհեյթի աստիճանով է, իսկ տեղումները՝ 1/100-րդ դյույմով:

Ռադիոյի տարրերի ցանկ

Նշանակում Տիպ Դոնոմինացիա Քանակ ՆշումԽանութԻմ նոթատետրը
Ջերմաստիճանի և հարաբերական խոնավության ցուցիչ
ջերմաստիճանի ցուցիչ

DS18B20

1 Նոթատետրում
Խոնավության սենսորՀԻՀ-36101 Նոթատետրում
Ռեզիստոր

4,7 կՕհմ

1 Նոթատետրում
Քամու արագության և ուղղության հաշվիչ
ՖոտոտրանզիստորIR1 Նոթատետրում
Լույս արտանետող դիոդIR1 Նոթատետրում
Ռեզիստոր

220 օմ

1 Նոթատետրում
Ռեզիստոր

4,7 կՕհմ

1 Նոթատետրում
Մագնիսական կոդավորիչ1 Նոթատետրում
էլեկտրոլիտիկ կոնդենսատոր10 uF4 Նոթատետրում
Կոնդենսատոր100 nF1 Նոթատետրում
Ռեզիստոր

4,7 կՕհմ

1 Նոթատետրում
Ռեզիստոր

10 կՕհմ

1 Նոթատետրում
Տեղումների հաշվիչ
MK PICAXE

PICAXE-08M

1 Նոթատետրում
ուղղիչ դիոդ

1N4148

2 Նոթատետրում
Կոնդենսատոր100 nF1 Նոթատետրում
Ռեզիստոր

4,7 կՕհմ

1 Նոթատետրում
Ռեզիստոր

10 կՕհմ

4 Նոթատետրում
Ռեզիստոր

22 կՕհմ

1 Նոթատետրում
Ռեզիստոր

220 օմ

2 Նոթատետրում
Լույս արտանետող դիոդIR1
Վերև