Բովանդակություն:
- Քայլ 1: Կազմաձևում
- Քայլ 2: Ռելեների կազմաձևում
- Քայլ 3: Հիստերեզի վերահսկիչ
- Քայլ 4: PID վերահսկիչ
- Քայլ 5. Հաղորդագրությունների ավտոբուս
- Քայլ 6: Libs
Video: Թերմոստատ Arduino- ի հիման վրա. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Այս անգամ մենք պատրաստվում ենք կառուցել Թերմոստատ ՝ հիմնված Arduino- ի, ջերմաստիճանի տվիչի և ռելեի վրա: Դուք կարող եք գտնել github- ում
Քայլ 1: Կազմաձևում
Ամբողջ կոնֆիգուրացիան պահվում է Config.h- ում: Դուք կարող եք փոխել PEL կոդերը, որոնք վերահսկում են ռելեներ, ընթերցման ջերմաստիճանը, շեմերը կամ ժամկետները:
Քայլ 2: Ռելեների կազմաձևում
Ենթադրենք, որ մենք կցանկանայինք ունենալ 3 ռելե:
- ID ՝ 0, PIN ՝ 1, ջերմաստիճանի սահմանման կետ ՝ 20
- ID ՝ 1, PIN ՝ 10, ջերմաստիճանի սահմանման կետ ՝ 30
- ID ՝ 2, PIN ՝ 11, setերմաստիճանի սահմանման կետ ՝ 40
Սկզբում դուք պետք է համոզվեք, որ ձեր ընտրած PIN- ը արդեն ընդունված չէ: Բոլոր կապում կարելի է գտնել Config.h- ում, դրանք սահմանվում են DIG_PIN- ով սկսվող փոփոխականներով:
Դուք պետք է խմբագրեք Config.h- ը և կազմաձևեք PIN- ները, շեմերը և ռելեների քանակը: Ակնհայտ է, որ որոշ հատկություններ արդեն գոյություն ունեն, այնպես որ դուք պարզապես պետք է դրանք խմբագրեք:
const ստատիկ uint8_t DIG_PIN_RELAY_0 = 1; const ստատիկ uint8_t DIG_PIN_RELAY_1 = 10; const ստատիկ uint8_t DIG_PIN_RELAY_2 = 11;
const static uint8_t RELAYS_AMOUNT = 3;
const ստատիկ int16_t RELAY_TEMP_SET_POINT_0 = 20;
const ստատիկ int16_t RELAY_TEMP_SET_POINT_1 = 30; const ստատիկ int16_t RELAY_TEMP_SET_POINT_2 = 40;
Այժմ մենք պետք է կարգավորենք ռելեներ և վերահսկիչ, դա տեղի է ունենում RelayDriver.cpp- ում
initRelayHysteresisController (0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0); initRelayHysteresisController (1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController (2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
Քայլ 3: Հիստերեզի վերահսկիչ
Այն ընտրված է վերը նշված օրինակում, այն ունի մի քանի լրացուցիչ կազմաձևեր.
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 րոպե </ b> ստատիկ uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS- ը տալիս է սպասման ժամանակ հաջորդ ռելեի անցման համար: Պատկերացրեք, որ մեր օրինակից կազմաձևումը սկսի աշխատել 40 աստիճանի միջավայրում: Սա կհանգեցնի միաժամանակ երեք ռելեների միացմանը: Սա, ի վերջո, կարող է հանգեցնել էներգիայի բարձր սպառման. Կախված այն բանից, թե ինչ եք վերահսկում, օրինակ ՝ էլեկտրական շարժիչը ավելի շատ էներգիա է սպառում գործարկման ընթացքում: Մեր դեպքում անջատիչ ռելեներ ունի հետևյալ հոսքը. Առաջին ռելեն անցնում է, սպասեք 5 րոպե, երկրորդը շարունակվում է, սպասվում է 5 րոպե, երրորդը շարունակվում է:
RHC_RELAY_MIN_SWITCH_MS- ը սահմանում է հիստերեզը, դա որոշակի ռելեի նվազագույն հաճախականությունն է ՝ փոխելու իր վիճակը: Միացնելուց հետո այն կմնա առնվազն այս ժամանակահատվածում ՝ անտեսելով ջերմաստիճանի փոփոխությունները: Սա հանգիստ է, եթե վերահսկում եք էլեկտրական շարժիչները, քանի որ յուրաքանչյուր անջատիչ բացասաբար է անդրադառնում կենդանի ժամանակի վրա:
Քայլ 4: PID վերահսկիչ
Սա առաջադեմ թեմա է: Նման վերահսկիչի ներդրումը պարզ խնդիր է, իսկ ամպլիտուդայի ճիշտ պարամետրերը գտնելը այլ պատմություն է:
PID վերահսկիչ օգտագործելու համար դուք պետք է փոխեք initRelayHysteresisController (…..) - ը initRelayPiDController (…) և դրա համար անհրաժեշտ է գտնել համապատասխան կարգավորումներ: Ինչպես միշտ, դրանք կգտնեք Config.h- ում
Ես պարզ սիմուլյատոր եմ ներդրել Java- ում, որպեսզի հնարավոր լինի պատկերացնել արդյունքները: Այն կարելի է գտնել թղթապանակում ՝ pidsimulator: Ստորև կարող եք տեսնել երկու կարգավորիչների համար մոդելավորումներ PID a P. PID- ը կատարյալ կայուն չէ, քանի որ ես չեմ կիրառել որևէ բարդ ալգորիթմ ՝ ճիշտ արժեքներ գտնելու համար:
Երկու հողամասերում պահանջվող ջերմաստիճանը սահմանվում է 30 (կապույտ): Ընթացիկ ջերմաստիճանը ցույց է տալիս ընթերցման տողը: Ռելեին ունի երկու վիճակ ON և OFF: Երբ այն միացված է, ջերմաստիճանը նվազում է 1.5 -ով, երբ անջատված է, այն բարձրանում է 0.5 -ով:
Քայլ 5. Հաղորդագրությունների ավտոբուս
Softwareրագրային ապահովման տարբեր մոդուլներ պետք է շփվեն միմյանց հետ, հուսով եմ ՝ ոչ երկու եղանակներով;)
Օրինակ:
- վիճակագրության մոդուլը պետք է իմանա, երբ որոշակի ռելեդը միանում և անջատվում է,
- կոճակը սեղմելը պետք է փոխի ցուցադրման բովանդակությունը, ինչպես նաև պետք է դադարեցնի այն ծառայությունները, որոնք կպահանջեն պրոցեսորի բազմաթիվ ցիկլեր, օրինակ ՝ ջերմաստիճանից կարդալ սենսորից,
- որոշ ժամանակ անց ջերմաստիճանի ցուցանիշը պետք է նորացվի,
- և այլն…
Յուրաքանչյուր մոդուլ կապված է Message Bus- ի հետ և կարող է գրանցվել որոշակի իրադարձությունների համար, և կարող է պատրաստել ցանկացած իրադարձություն (առաջին դիագրամ):
Երկրորդ դիագրամում մենք կարող ենք տեսնել իրադարձությունների հոսքը `սեղմելով կոճակը:
Որոշ բաղադրիչներ ունեն որոշակի առաջադրանքներ, քան անհրաժեշտ է պարբերաբար կատարել: Մենք կարող ենք նրանց համապատասխան մեթոդները անվանել հիմնական օղակից, քանի որ մենք ունենք Message Bus, անհրաժեշտ է միայն ճիշտ իրադարձության տարածումը (երրորդ դիագրամ)
Քայլ 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Խորհուրդ ենք տալիս:
DIY Lab - HD ցենտրիֆուգա Arduino հիման վրա. 3 քայլ
DIY Lab - HD ցենտրիֆուգա Arduino- ի հիման վրա ՝ PT // Construimos uma centrífuga utilisando um HD velho com վերահսկողության արագացման բազայի միջոցով Arduino: EN // Մենք կառուցեցինք ցենտրիֆուգ `օգտագործելով հին HD- ն` արագության վերահսկմամբ `հիմնված Arduino- ի վրա
Chicken Coop Door - Arduino հիման վրա. 5 քայլ (նկարներով)
Chicken Coop Door - Arduino Based: Առաջին հերթին, իմ մայրենի լեզուն հոլանդերենն է, այնպես որ ներողություն խնդրեք հնարավոր ուղղագրական սխալների համար: Եթե ինչ -որ բան պարզ չէ, պարզապես հաղորդագրություն թողեք մեկնաբանություններում: Սա իմ առաջին arduino նախագիծն է: Քանի որ կինս հոգնել էր ամեն օր ձեռքով դուռը բացելուց
Երկու գնացքներով աշխատող երկաթուղային ավտոմատ մոդելի դասավորություն (V2.0) - Arduino- ի հիման վրա. 15 քայլ (նկարներով)
Երկու գնացքով աշխատող երկաթգծի ավտոմատ մոդելային դասավորություն (V2.0) | Arduino- ի հիման վրա. Arduino միկրոկառավարիչների միջոցով մոդելի դասավորության ավտոմատացումը միկրոկոնտրոլերների միաձուլման, ծրագրավորման և երկաթգծի մոդելավորման մեկ հոբբիի հիանալի միջոց է: Կան մի շարք նախագծեր, որոնք վերաբերում են մոդելային երկաթուղու վրա ինքնավար գնացք վարելուն
GPS Car Tracker SMS ծանուցմամբ և Thingspeak տվյալների վերբեռնում, Arduino- ի հիման վրա, Տնային ավտոմատացում. 5 քայլ (նկարներով)
GPS Car Tracker SMS- ի ծանուցմամբ և Thingspeak տվյալների վերբեռնում, Arduino- ի հիման վրա, տնային ավտոմատացում. Ես այս GPS tracker- ը պատրաստել եմ անցյալ տարի, և քանի որ այն լավ է աշխատում, այն այժմ հրապարակում եմ Instructable- ում: Այն միացված է իմ բեռնախցիկի աքսեսուարներին: GPS հետևողը բջջային տվյալների միջոցով բեռնում է մեքենայի դիրքը, արագությունը, ուղղությունը և չափվող ջերմաստիճանը
Իմ DIY Steampunk գործառնական խաղը, Arduino- ի հիման վրա. 9 քայլ (նկարներով)
Իմ DIY Steampunk գործառնական խաղը, Arduino- ի հիման վրա. Այս նախագիծը բավականին ծավալուն է: Այն չի պահանջում շատ գործիքներ կամ նախնական գիտելիքներ, բայց դա կսովորեցնի որևէ մեկին (ներառյալ ինձ) շատ տարբեր արտադրական բաժիններում: Ինչպես գերի ընկալումը Arduino- ի հետ, այնպես էլ բազմակողմանի աշխատանքը Arduino- ի հետ