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

Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով. 8 քայլ
Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով. 8 քայլ

Video: Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով. 8 քայլ

Video: Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով. 8 քայլ
Video: Голубая стрела (1958) фильм 2024, Հուլիսի
Anonim
Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով
Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով

Չափել հեղուկի ջերմաստիճանը `օգտագործելով XinaBox- ի անալոգային մուտքի xChip և ջերմիստորային զոնդ:

Քայլ 1: Այս նախագծում օգտագործվող բաները

Սարքավորման բաղադրիչներ

  • XinaBox SX02 x 1 xChip անալոգային մուտքի տվիչ ՝ ADC- ով
  • XinaBox CC01 x 1 xChip տարբերակ Arduino Uno- ի հիման վրա ՝ ATmega328P
  • Դիմադրություն 10k ohm x 1 10k դիմադրություն լարման բաժանարար ցանցի համար
  • Thermistor Probe x 1 10k 25 ° C NTC անջրանցիկ թերմիստորային զոնդ
  • XinaBox IP01 x 1 xChip USB ծրագրավորող ՝ հիմնված FT232R From FTDI Limited- ի վրա
  • XinaBox OD01 x 1 xChip 128x64 պիքսելանոց OLED էկրան
  • XinaBox XC10 x 4 xChip ավտոբուսի միակցիչներ
  • XinaBox PU01 x 1 xChip USB (տիպ A) սնուցման աղբյուր
  • 5 Վ USB սնուցման աղբյուր x 1 Power Bank կամ նմանատիպ

Softwareրագրային ապահովման ծրագրեր և առցանց ծառայություններ

Arduino IDE

Ձեռքի գործիքներ և պատրաստման մեքենաներ

Հարթ պտուտակահան Պտուտակային տերմինալի սեղմիչը սեղմելու կամ թուլացնելու համար

Քայլ 2: Պատմություն

Ներածություն

Ես ուզում էի չափել հեղուկի ջերմաստիճանը ՝ ստեղծելով պարզ ջերմաչափ: Օգտագործելով XinaBox xChips- ը, ես դա կարող էի հասցնել հարաբերական պարզության: Ես օգտագործել եմ SX02 անալոգային մուտքը xChip, որն ընդունում է 0 - 3.3V, CC01 xChip- ը ՝ ATmega328P- ով և OD01 OLED էկրանով xChip ՝ ջերմաստիճանի իմ արդյունքները դիտելու համար:

Թերմիստոր, որը չափում է ջրի ջերմաստիճանը բաժակի մեջ

Քայլ 3: Ներբեռնեք անհրաժեշտ ֆայլերը

Ձեզ հարկավոր են հետևյալ գրադարաններն ու ծրագրակազմը.

  • xSX0X- Անալոգային մուտքի տվիչների գրադարան
  • xOD01 - OLED ցուցադրման գրադարան
  • Arduino IDE - environmentարգացման միջավայր

Կտտացրեք այստեղ ՝ տեսնելու, թե ինչպես տեղադրել գրադարանները:

Arduino IDE- ն տեղադրելուց հետո բացեք այն և ընտրեք «Arduino Pro կամ Pro Mini» - ն որպես տախտակ ՝ ձեր ծրագիրը վերբեռնելու համար: Նաև համոզվեք, որ ընտրված է ATmega328P (5V, 16MHz) պրոցեսորը: Տե՛ս ստորև բերված պատկերը:

Ընտրեք Arduino Pro կամ Pro Mini տախտակը և ATmega328P (5V, 16MHz) պրոցեսոր

Քայլ 4: Հավաքեք

Սեղմեք ծրագրավորող xChip, IP01 և ATmega328P վրա հիմնված CC01 xChip- ի հետ միասին ՝ օգտագործելով XC10 ավտոբուսային միակցիչները, ինչպես ցույց է տրված ստորև: CC01- ում վերբեռնելու համար անհրաժեշտ է անջատիչները տեղադրել համապատասխանաբար «A» և «DCE» դիրքերում:

IP01- ը և CC01- ը միասին կտտացրել են

Հաջորդը, վերցրեք ձեր 10kΩ ռեզիստորը և մի ծայրը պտուտակեք «IN» մակագրությամբ տերմինալում, իսկ մյուս ծայրը ՝ ստորգետնյա տերմինալում ՝ «GND», SX02- ի վրա: Վերցրեք լարերը թերմիստորի զոնդի վրա և մի ծայրը պտուտակեք Vcc- ով ՝ «3.3V», իսկ մյուս ծայրը ՝ «IN» տերմինալում: Տես ստորև բերված գրաֆիկը:

SX02 միացումներ

Այժմ համատեղեք OD01- ը և SX02- ը CC01- ի հետ `պարզապես դրանք միասին սեղմելով` օգտագործելով XC10 ավտոբուսային միակցիչները: Տես ներքեւում. Նկարում պատկերված արծաթագույն տարրը թերմիստորային զոնդն է:

Unitրագրավորման ամբողջական միավոր

Քայլ 5: րագիր

Տեղադրեք սարքը ձեր համակարգչի USB պորտի մեջ: Ներբեռնեք կամ պատճենեք և տեղադրեք ներքևի ծածկագիրը ձեր Arduino IDE- ում: Կազմեք և վերբեռնեք կոդը ձեր տախտակին: Վերբեռնվելուց հետո ձեր ծրագիրը պետք է սկսի գործել: Եթե զոնդը սենյակային ջերմաստիճանի պայմաններում է, ապա OLED էկրանին պետք է պահպանել ± 25 ° C, ինչպես ցույց է տրված ստորև:

Բեռնելուց հետո դիտեք սենյակի ջերմաստիճանը OLED էկրանին

Քայլ 6: Շարժական ջերմաչափ

Հեռացրեք միավորը ձեր համակարգչից: Ապամոնտաժեք միավորը և նորից հավաքեք այն ՝ օգտագործելով IP01- ի փոխարեն PU01: Այժմ վերցրեք ձեր 5V USB շարժական սնուցման աղբյուրը, ինչպիսին է էներգաբանկը կամ նմանատիպ այլ սարք և տեղադրեք դրա մեջ նոր հավաքածուն: Այժմ դուք ունեք ձեր սեփական զով շարժական ջերմաչափը ՝ լավ ճշգրտությամբ: Տեսեք շապիկի պատկերը `այն գործողության մեջ տեսնելու համար: Ես չափեցի տաք ջուրը բաժակի մեջ: Ստորև բերված պատկերները ցույց են տալիս ձեր ամբողջական միավորը:

Ամբողջական միավոր, որը ներառում է CC01, OD01, SX02 և PU02:

Քայլ 7: Եզրակացություն

Այս նախագծի հավաքումը տևեց 10 րոպեից ավելի, իսկ ծրագրավորումը `ևս 20 րոպե: պահանջվող միակ պասիվ բաղադրիչը ռեզիստորն էր: The xChips պարզապես սեղմեք միասին, ինչը շատ հարմար է:

Քայլ 8: Կոդ

ThermTemp_Display.ino Arduino Research thermistors ՝ կոդում կատարված հաշվարկները հասկանալու համար:

#ներառել // ներառել xCHIP- ների հիմնական գրադարանը

#ներառել // ներառել անալոգային մուտքի տվիչների գրադարան #ներառել // ներառել OLED ցուցադրման գրադարան #ներառել // ներառել մաթեմատիկական գործառույթներ #սահմանել C_Kelvin 273.15 // քելվինից ցելսիուսին փոխակերպելու համար #սահմանել շարքի_res 10000 // շարքի դիմադրության արժեքը ohms #define B 3950 // B պարամետր թերմիստորի համար #սահմանել սենյակի_քաղաքակ 298.15 // սենյակի ջերմաստիճանը քելվինում #սահմանել սենյակի_ռուսը 10000 // դիմադրություն սենյակային ջերմաստիճանում ohms #define vcc 3.3 // մատակարարման լարման xSX01 SX01 (0x55); // սահմանել i2c հասցեի բոց լարման; // չափված լարման (0 - 3.3 Վ) բոց therm_res պարունակող փոփոխական; // թերմիստորի դիմադրություն float act_tempK; // փաստացի ջերմաստիճանը kelvin float act_tempC; // իրական ջերմաստիճանը ցելսիուս void setup- ում () {// տեղադրեք ձեր կարգավորման կոդը այստեղ ՝ մեկ անգամ գործարկելու համար. therm_res = 0; act_tempK = 0; act_tempC = 0; // սկսել սերիական հաղորդակցություն Serial.begin (115200); // սկսել i2c կապը Wire.begin (); // գործարկել անալոգային մուտքի տվիչը SX01. սկսել (); // սկսել OLED էկրան OLED.begin (); // մաքրել ցուցադրումը OD01.clear (); // ուշացումը նորմալացնելու հետաձգում (1000); } void loop () {// տեղադրեք ձեր հիմնական կոդը այստեղ ՝ անընդհատ գործարկելու համար. // կարդալ SX01.poll () լարումը (); // պահպանել ցնդող լարումը = SX01.getVoltage (); // հաշվարկել թերմիստորի դիմադրությունը therm_res = ((vcc * series_res) / լարման) - series_res; // հաշվարկել իրական ջերմաստիճանը kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // փոխարկել քելվինը ցելսիուսի act_tempC = act_tempK - C_Kelvin; // տպման ջերմաստիճան OLED էկրանին // ձեռքով ձևաչափում ՝ կենտրոնում OD01.set2X () ցուցադրելու համար; OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print («C»); OD01.println (""); ուշացում (2000); // թարմացնել ցուցադրումը յուրաքանչյուր 2 վայրկյանը մեկ}

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