Mundarija:

XinaBox va termistor yordamida haroratni o'lchash: 8 qadam
XinaBox va termistor yordamida haroratni o'lchash: 8 qadam

Video: XinaBox va termistor yordamida haroratni o'lchash: 8 qadam

Video: XinaBox va termistor yordamida haroratni o'lchash: 8 qadam
Video: Обзор и сравнение BSIDE ZT-Y2 и мультиметра BSIDE ZT-Y ну и мультиметр BSIDE ZT-X 2024, Dekabr
Anonim
XinaBox va termistor yordamida haroratni o'lchash
XinaBox va termistor yordamida haroratni o'lchash

Suyuqlik haroratini XinaBox -dan analog kirish xChip va termistorli prob yordamida o'lchang.

1 -qadam: Ushbu loyihada ishlatilgan narsalar

Uskuna komponentlari

  • ADC bilan XinaBox SX02 x 1 xChip analog kirish sensori
  • ATmega328P asosida Arduino Uno -ning XinaBox CC01 x 1 xChip versiyasi
  • Chidamni ajratuvchi tarmoq uchun qarshilik 10k ohm x 1 10k qarshilik
  • Thermistor Probe x 1 10k 25 ° C haroratda suv o'tkazmaydigan termistorli prob
  • FTDI Limited -dan FT232R -ga asoslangan XinaBox IP01 x 1 xChip USB dasturchisi.
  • XinaBox OD01 x 1 xChip 128x64 pikselli OLED -displey
  • XinaBox XC10 x 4 xChip avtobus ulagichlari
  • XinaBox PU01 x 1 xChip USB (A turi) quvvat manbai
  • 5V USB quvvat manbai x 1 quvvat banki yoki shunga o'xshash

Dasturiy ta'minot va onlayn xizmatlar

Arduino IDE

Qo'l asboblari va ishlab chiqarish mashinalari

Yassi boshli tornavida Vintli terminal qisqichini torting yoki bo'shating

2 -qadam: hikoya

Kirish

Men oddiy termometr yaratish orqali suyuqlikning haroratini o'lchashni xohlardim. XinaBox xChips -dan foydalanib, men buni nisbatan soddalik bilan bajarishim mumkin edi. Men harorat natijalarini ko'rish uchun 0 - 3.3V, ATmega328P va OD01 OLED displeyli xChip asosidagi CC01 xChip qabul qiladigan SX02 analogli xChip ishlatardim.

Termistor stakan ichidagi suvning haroratini o'lchaydi

3 -qadam: kerakli fayllarni yuklab oling

Sizga quyidagi kutubxona va dasturiy ta'minot kerak bo'ladi:

  • xSX0X- analog kirish sensori kutubxonasi
  • xOD01 - OLED displey kutubxonasi
  • Arduino IDE - Rivojlanish muhiti

Kutubxonalarni qanday o'rnatishni bilish uchun shu erni bosing.

Arduino IDE -ni o'rnatganingizdan so'ng, uni oching va dasturni yuklash uchun "Arduino Pro yoki Pro Mini" ni tanlang. Shuningdek, ATmega328P (5V, 16MGts) protsessor tanlanganligiga ishonch hosil qiling. Quyidagi rasmga qarang.

Arduino Pro yoki Pro Mini kartasini va ATmega328P (5V, 16MGts) protsessorini tanlang

4 -qadam: yig'ish

Quyida ko'rsatilgandek XC10 avtobus ulagichlari yordamida dasturchi xChip, IP01 va ATmega328P asosidagi CC01 xChip -ni bosing. CC01 -ga yuklash uchun siz kalitlarni mos ravishda "A" va "DCE" pozitsiyalariga qo'yishingiz kerak.

IP01 va CC01 birgalikda bosildi

Keyin, 10 kΩ rezistorni oling va uning bir uchini "IN" deb belgilangan terminalga, ikkinchi uchini esa "GND" terminalidagi SX02 ga burab qo'ying. Termistor zondidagi simlarni olib, bir uchini Vcc, "3.3V", ikkinchi uchini "IN" terminaliga burab qo'ying. Quyidagi rasmga qarang.

SX02 ulanishlari

Endi OD01 va SX02 ni CC01 bilan birlashtiring, ularni XC10 avtobus ulanishlari yordamida bir -biriga bosing. Pastga qarang. Rasmdagi kumush element - termistorli prob.

Dasturlash uchun to'liq birlik

5 -qadam: Dastur

Qurilmani kompyuterning USB portiga joylashtiring. Quyidagi kodni yuklab oling yoki nusxa ko'chiring va Arduino IDE -ga joylashtiring. Kodni tuzing va taxtangizga yuklang. Yuklanganidan so'ng, dastur ishga tushishi kerak. Agar zond xona haroratida bo'lsa, quyida ko'rsatilgandek OLED displeyida ± 25 ° C ni kuzatish kerak.

Yuklashdan so'ng, OLED -displeyda xona haroratini kuzating

6 -qadam: Portativ termometr

Qurilmani kompyuterdan olib tashlang. Qurilmani demontaj qiling va IP01 o'rniga PU01 yordamida qayta yig'ing. Endi quvvat banki yoki shunga o'xshash 5V USB portativ quvvat manbaini oling va unga yangi moslamani joylashtiring. Sizda yaxshi aniqlik bilan o'zingizning portativ termometringiz bor. Ishlayotganini ko'rish uchun muqovadagi rasmga qarang. Men stakan ichida issiq suvni o'lchadim. Quyidagi rasmlar sizning to'liq jihozingizni ko'rsatadi.

To'liq birlik CC01, OD01, SX02 va PU02 ni o'z ichiga oladi.

7 -qadam: Xulosa

Loyihani yig'ishga 10 minut, dasturga yana 20 daqiqa vaqt ketdi. talab qilinadigan yagona passiv komponent - rezistor. XChips bir vaqtning o'zida bosilsa, bu juda qulay bo'ladi.

8 -qadam: kod

ThermTemp_Display.ino Arduino Koddagi hisoblarni tushunish uchun tadqiqot termistorlari.

#include // xCHIPs uchun asosiy kutubxonani o'z ichiga oladi

#include // analog kirish sensori kutubxonasini o'z ichiga oladi #include // OLED displey kutubxonasini o'z ichiga oladi #include // matematik funktsiyalarni o'z ichiga oladi #C_Kelvin 273.15 ni belgilaydi // kelvindan tselsiygacha aylantirish uchun #define series_res 10000 // ketma -ket qarshilik qiymati ohmda #define B 3950 // termistor uchun B parametri #xonani belgilash_tempK 298.15 // kelvindagi xona harorati #xonani aniqlang_res 10000 // xona haroratida ohmda qarshilik #define vcc 3.3 // besleme zo'riqishida xSX01 SX01 (0x55); // i2c manzilining suzuvchi kuchlanishini o'rnating; // o'lchangan kuchlanishni o'z ichiga olgan o'zgaruvchi (0 - 3.3V) float therm_res; // termistor qarshiligi float act_tempK; // haqiqiy harorat kelvin float act_tempC; // tselsiy bo'yicha haqiqiy harorat void setup () {// bir marta ishga tushirish uchun sozlash kodini bu erga qo'ying: // o'zgaruvchilarni 0 kuchlanish = 0 ga boshlang; term_res = 0; act_tempK = 0; act_tempC = 0; // ketma -ket muloqotni boshlash Serial.begin (115200); // i2c aloqasini boshlash Wire.begin (); // analog kirish sensorini ishga tushirish SX01.begin (); // OLED displeyini ishga tushirish OLED.begin (); // aniq ko'rsatish OD01.clear (); // kechiktirishni normallashtirish uchun kechiktirish (1000); } void loop () {// qayta ishga tushirish uchun asosiy kodingizni bu erga qo'ying: // kuchlanishni o'qing SX01.poll (); // voltaj voltajini saqlang = SX01.getVoltage (); // termistor qarshiligini hisoblang therm_res = ((vcc * series_res) / kuchlanish) - series_res; // kelvin akt_tempK = (xona_tempK * B) / (B + xona_tempK * jurnali (term_res / xona_res)) haqiqiy haroratni hisoblang; // kelvinni selsiyaga aylantirish act_tempC = act_tempK - C_Kelvin; // OLED displeyda bosib chiqarish harorati // markazda ko'rsatish uchun qo'lda formatlash OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); kechikish (2000); // displeyni har 2 soniyada yangilang}

Tavsiya: