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

DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ ՝ 3 քայլ
DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ ՝ 3 քայլ

Video: DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ ՝ 3 քայլ

Video: DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ ՝ 3 քայլ
Video: 5 ՀՐԱՇԱԼԻ ԿՅԱՆՔԻ ՀԱՔԵՐ #2 2024, Նոյեմբեր
Anonim
DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ
DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ
DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ
DIY ջերմաստիճանի տվիչ ՝ օգտագործելով մեկ դիոդ

Այսպիսով, քանի որ PN- հանգույցների մասին փաստերից մեկն այն է, որ նրանց առաջ լարման անկումը փոխվում է ըստ անցնող հոսանքի և միացման ջերմաստիճանի նույնպես, մենք դա կօգտագործենք պարզ էժան ջերմաստիճանի տվիչ պատրաստելու համար:

Այս կարգավորումը սովորաբար օգտագործվում է բազմաթիվ ինտեգրալ սխեմաներում `իր ներքին ջերմաստիճանը և շատ ջերմաստիճանի տվիչներ չափելու համար որպես հայտնի LM35, որը հիմնված է այս հատկության վրա:

Պարզապես դիոդի (որը մեկ PN- հանգույց է) լարման առաջընթաց անկումը փոխվում է դրանով անցնող հոսանքի քանակի փոփոխությամբ, ինչպես նաև դիոդի ջերմաստիճանի փոփոխության հետ մեկտեղ լարման անկումը փոխվելու է (ջերմաստիճանի բարձրացման հետ մեկտեղ, առաջ անկումը նվազում է մի արժեքով (1.0 միլիոլտ մինչև 2.0 միլիոլտ ՝ սիլիցիումի դիոդների համար և 2.5 միլիոլտ ՝ գերմանական դիոդների համար):

Այսպիսով, դիոդի միջոցով անընդհատ հոսանք փոխանցելով, առաջ լարման անկումը այժմ պետք է տատանվի միայն դիոդի ջերմաստիճանի համաձայն: Մեզ պարզապես հիմա պետք է չափել դիոդի առաջի լարումը, կիրառել մի քանի պարզ հավասարումներ և voilà ահա ձեր ջերմաստիճանի տվիչը !!!

Պարագաներ

1 - 1n4007 դիոդ #12 - 1 Կոհմ դիմադրություն #13 - Arduino տախտակ

Քայլ 1: Շղթայի դիագրամ

Շղթայի դիագրամ
Շղթայի դիագրամ

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

1 կիլոգրամանոց Օմ դիմադրիչը 5 Վ լարմամբ պետք է հանգեցնի 4 միլիամԱմպեր դիոդի հոսանքի, որը բավարար արժեք է այդ նպատակի համար: I (դիոդ) = VCC / (Rseries + Rdiode)

Քայլ 2: Կոդավորում

Մենք պետք է հաշվի առնենք, որ կան որոշ արժեքներ, որոնք պետք է շտկել ծածկագրում ՝ ավելի լավ արդյունքներ ստանալու համար, ինչպիսիք են ՝

1 - VCC_Voltage: քանի որ analogRead () արժեքը կախված է ATmega չիպի VCC- ից, ապա մենք պետք է այն ավելացնենք հավասարման վրա ՝ արդուինո տախտակի վրա չափելուց հետո:

2 - V_OLD_0_C. Օգտագործված դիոդի առաջային լարման անկումը 4 մԱ հոսանքի և 0 elsելսիուսի ջերմաստիճանի դեպքում

3 - peratերմաստիճանի_գործակից. Ձեր դիոդի ջերմաստիճանի գրադիենտը (ավելի լավ է ստանալ տվյալների թերթիկից) կամ կարող եք այն չափել ՝ օգտագործելով այս հավասարումը. Vnew - Vold = K (Tnew - Պատմված)

որտեղ:

Vnew = նոր չափված անկման լարումը դիոդի տաքացումից հետո

Վոլդ = չափված անկման լարումը որոշ սենյակային ջերմաստիճանում

Tnew = ջերմաստիճանը, որտեղ դիոդը տաքացվել է

Պատմեց = սենյակի հին ջերմաստիճանը, որով չափվել է Վոլդը

K = Temperature_Coefficient (-1.0 -ից -2.5 milliVolts- ի միջև բացասական արժեք) Վերջապես այժմ կարող եք վերբեռնել ծածկագիրը և ստանալ ձեր ջերմաստիճանի արդյունքները:

#սահմանեք Sens_Pin A0 // PA0 STM32F103C8 տախտակի համար

կրկնակի V_OLD_0_C = 690.0; // 690 մՎ Փոխանցման լարումը 0 elsելսիուս ջերմաստիճանում 4 մԱ փորձարկման հոսանքի դեպքում

կրկնակի V_NEW = 0; // Նոր առաջային լարումը սենյակային ջերմաստիճանում 4 մԱ փորձարկման հոսանքի կրկնակի ջերմաստիճան = 0.0; // Սենյակի հաշվարկված ջերմաստիճանը կրկնակի Temերմաստիճանի_գործակից = -1,6; //-1,6 մՎ փոփոխություն ըստ elsելսիուսի աստիճանի (-2,5 գերմանական դիոդների դեպքում), ավելի լավ է դիոդի թերթիկից ստանալ կրկնակի VCC_Voltage = 5010.0; // Արդուինոյի 5 Վ ռելսերում առկա լարման միլիվոլտ (պահանջվում է ավելի լավ ճշգրտության համար) (3300.0 stm32- ի համար)

void setup () {

// տեղադրեք ձեր տեղադրման կոդը այստեղ ՝ մեկ անգամ գործարկելու համար. pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

դատարկ շրջան () {

// տեղադրեք ձեր հիմնական կոդը այստեղ ՝ բազմիցս գործարկելու համար. V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // բաժանել 4.0 -ի, եթե օգտագործում եք 12 բիթանոց ADC ջերմաստիճան = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

Serial.print (ջերմաստիճան); Serial.println ("C");

ուշացում (500);

}

Քայլ 3: Ավելի լավ արժեքներ ձեռք բերելը

Ավելի լավ արժեքներ ստանալը
Ավելի լավ արժեքներ ստանալը
Ավելի լավ արժեքներ ստանալը
Ավելի լավ արժեքներ ստանալը

Կարծում եմ, որ այս նախագիծը կատարելիս նպատակահարմար է ունենալ ձեր կողքին վստահելի ջերմաստիճանի չափման սարք:

Դուք կարող եք տեսնել, որ ընթերցումների մեջ նկատելի սխալ կա, որը կարող է հասնել 3 կամ 4 աստիճան Celsius, ուստի որտեղի՞ց է գալիս այս սխալը:

1 - գուցե անհրաժեշտ լինի փոփոխել նախորդ քայլում նշված փոփոխականները

2 - arduino- ի ADC լուծումն ավելի ցածր է, քան այն, ինչ մեզ անհրաժեշտ է փոքր լարման տարբերությունը հայտնաբերելու համար

3 - arduino- ի (5V) լարման անդրադարձը չափազանց բարձր է դիոդի այս փոքր լարման փոփոխության համար

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

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

1 - ավելացրեք մի քանի ուժեղացում և զտման փուլեր ՝ օգտագործելով op -amps, ինչպես այս հղումով 2 - օգտագործեք ավելի ցածր ներքին անալոգային հղիչ վերահսկիչ ՝ որպես STM32F103C8 տախտակ ՝ 3,3 վոլտ անալոգային հղման լարմամբ (տես կետ 4) 3 - օգտագործեք ներքին 1.1 Վ անալոգային հղումը arduino, բայց տեղյակ եղեք, որ դուք չեք կարող 1.1 Վոլտից ավելի միացնել arduino- ի անալոգային որևէ կապին:

Դուք կարող եք ավելացնել այս տողը կարգաբերման գործառույթում.

analogReference (INTERNAL);

4 - Օգտագործեք միկրոկոնտրոլեր, որն ունի ավելի բարձր լուծաչափ ADC, որպես STM32F103C8, որն ունի 12 բիթ ADC լուծում: Այսպիսով, մի խոսքով, arduino- ի վրա հիմնված այս կարգավորումը կարող է գեղեցիկ պատկերացում կազմել ձեր համակարգի ջերմաստիճանի, բայց ոչ այնքան ճշգրիտ արդյունքների մասին (մոտավորապես 4.88 մՎ/ընթերցում)

STM32F103C8 կարգավորումը ձեզ կտա բավականին ճշգրիտ արդյունք, քանի որ այն ունի ավելի բարձր 12-բիթանոց ADC և ավելի ցածր 3.3V անալոգային հղման արժեք (մոտավորապես 0.8 մՎ/ընթերցում)

Դե, վերջ !!: D

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