Turinys:

Temperatūros matavimas naudojant „XinaBox“ir termistorių: 8 žingsniai
Temperatūros matavimas naudojant „XinaBox“ir termistorių: 8 žingsniai

Video: Temperatūros matavimas naudojant „XinaBox“ir termistorių: 8 žingsniai

Video: Temperatūros matavimas naudojant „XinaBox“ir termistorių: 8 žingsniai
Video: Kūno temperatūros matavimo ir įėjimo kontrolės sistema /Body temperature measurement and entry contr 2024, Lapkritis
Anonim
Temperatūros matavimas naudojant „XinaBox“ir termistorių
Temperatūros matavimas naudojant „XinaBox“ir termistorių

Išmatuokite skysčio temperatūrą naudodami analoginį įvestį xChip iš „XinaBox“ir termistoriaus zondą.

1 žingsnis: šiame projekte naudojami dalykai

Techninės įrangos komponentai

  • XinaBox SX02 x 1 xChip analoginis įvesties jutiklis su ADC
  • „XinaBox CC01 x 1 xChip“„Arduino Uno“versija, pagrįsta ATmega328P
  • Rezistorius 10k omų x 1 10k rezistorius įtampos daliklių tinklui
  • Termistoriaus zondas x 1 10k esant 25 ° C NTC vandeniui atsparus termistoriaus zondas
  • XinaBox IP01 x 1 xChip USB programuotojas, pagrįstas FTDI Limited FT232R
  • XinaBox OD01 x 1 xChip 128x64 pikselių OLED ekranas
  • XinaBox XC10 x 4 xChip magistralės jungtys
  • XinaBox PU01 x 1 xChip USB (A tipo) maitinimo šaltinis
  • 5 V USB maitinimo šaltinis x 1 maitinimo bankas arba panašus

Programinės įrangos programos ir internetinės paslaugos

„Arduino IDE“

Rankiniai įrankiai ir mašinos

Plokščiasis atsuktuvas Norėdami priveržti arba atlaisvinti varžto gnybtų spaustuką

2 žingsnis: istorija

Įvadas

Norėjau išmatuoti skysčio temperatūrą sukurdamas paprastą termometrą. Naudodamas „XinaBox xChips“galėčiau tai padaryti gana paprastai. Temperatūros rezultatams peržiūrėti naudoju SX02 analoginį įvestį xChip, kuri priima 0 - 3.3V, CC01 xChip, pagrįstą ATmega328P, ir OD01 OLED ekraną xChip.

Termistorius matuoja vandens temperatūrą stiklinėje

3 veiksmas: atsisiųskite būtinus failus

Jums reikės šių bibliotekų ir programinės įrangos:

  • xSX0X- Analoginio įvesties jutiklių biblioteka
  • xOD01 - OLED ekranų biblioteka
  • „Arduino IDE“- kūrimo aplinka

Spustelėkite čia, kad pamatytumėte, kaip įdiegti bibliotekas.

Įdiegę „Arduino IDE“, atidarykite jį ir pasirinkite „Arduino Pro“arba „Pro Mini“kaip lentą, į kurią norite įkelti savo programą. Taip pat įsitikinkite, kad pasirinktas ATmega328P (5V, 16MHz) procesorius. Žiūrėkite paveikslėlį žemiau.

Pasirinkite „Arduino Pro“arba „Pro Mini“plokštę ir ATmega328P (5V, 16MHz) procesorių

4 žingsnis: Surinkite

Spustelėkite programuotoją xChip, IP01 ir ATmega328P pagrįstą CC01 xChip kartu, naudodami XC10 magistralės jungtis, kaip parodyta žemiau. Norėdami įkelti į CC01, jungiklius turite pastatyti atitinkamai į „A“ir „DCE“padėtį.

IP01 ir CC01 spragtelėjo kartu

Tada paimkite 10 kΩ rezistorių ir įsukite vieną galą į terminalą, pažymėtą „IN“, o kitą galą į įžeminimo gnybtą „GND“, esantį SX02. Paimkite termistoriaus zondo laidus ir vieną galą įsukite į Vcc, „3.3V“, o kitą galą į „IN“gnybtą. Žiūrėkite grafiką žemiau.

SX02 jungtys

Dabar derinkite OD01 ir SX02 su CC01 tiesiog spustelėdami juos kartu naudodami XC10 magistralės jungtis. Žiūrėkite žemiau. Sidabrinis elementas paveikslėlyje yra termistoriaus zondas.

Pilnas įrenginys programavimui

5 žingsnis: programa

Įdėkite įrenginį į kompiuterio USB prievadą. Atsisiųskite arba nukopijuokite ir įklijuokite žemiau esantį kodą į „Arduino IDE“. Sudarykite ir įkelkite kodą į savo lentą. Įkėlus jūsų programa turėtų pradėti veikti. Jei zondas yra kambario temperatūros, OLED ekrane turėtumėte stebėti ± 25 ° C, kaip parodyta žemiau.

Įkėlę stebėkite kambario temperatūrą OLED ekrane

6 žingsnis: Nešiojamas termometras

Išimkite įrenginį iš kompiuterio. Išardykite įrenginį ir surinkite jį naudodami PU01, o ne IP01. Dabar paimkite nešiojamą 5 V USB maitinimo šaltinį, pvz., Maitinimo banką ar panašų, ir įdėkite į jį naują mazgą. Dabar jūs turite savo tikslų nešiojamą termometrą, kurio tikslumas yra geras. Žiūrėkite viršelio vaizdą, kad pamatytumėte, kaip jis veikia. Aš išmatavau karštą vandenį stiklinėje. Žemiau esančiuose paveikslėliuose parodytas visas jūsų įrenginys.

Pilnas įrenginys, kurį sudaro CC01, OD01, SX02 ir PU02.

7 žingsnis: Išvada

Šio projekto surinkimas truko mažiau nei 10 minučių, o kitas - 20 minučių. vienintelis reikalingas pasyvus komponentas buvo rezistorius. „XChips“tiesiog spustelėja, todėl tai labai patogu.

8 žingsnis: kodas

ThermTemp_Display.ino Arduino Tyrinėkite termistorius, kad suprastumėte kodo skaičiavimus.

#include // įtraukti pagrindinę biblioteką xCHIP

#įtraukti // įtraukti analoginių įvesties jutiklių biblioteką #įtraukti // įtraukti OLED ekranų biblioteką #įtraukti // įtraukti matematikos funkcijas #apibrėžti C_Kelvin 273.15 // konvertuoti iš kelvino į Celsijų #define series_res 10000 // serijos rezistoriaus vertė omis #define B 3950 // B parametras termistoriui #define room_tempK 298.15 // kambario temperatūra kelvinu #define room_res 10000 // atsparumas kambario temperatūrai omais #define vcc 3.3 // maitinimo įtampa xSX01 SX01 (0x55); // nustatyti i2c adreso plūdės įtampą; // kintamasis, kuriame yra išmatuota įtampa (0 - 3,3 V) plūdės termos; // termistoriaus atsparumo plūdė act_tempK; // faktinė temperatūra kelvin float act_tempC; // faktinė temperatūra Celsijaus void setup () {// čia įdėkite savo sąrankos kodą, kad jis būtų paleistas vieną kartą: // inicijuoti kintamuosius iki 0 įtampos = 0; therm_res = 0; aktas_tempK = 0; act_tempC = 0; // pradėti serijinį ryšį Serial.begin (115200); // pradėti i2c ryšį Wire.begin (); // paleisti analoginio įėjimo jutiklį SX01.begin (); // pradėti OLED ekraną OLED.begin (); // išvalyti ekraną OD01.clear (); // uždelsimas normalizuoti vėlavimą (1000); } void loop () {// čia įdėkite savo pagrindinį kodą, kad jis būtų paleistas pakartotinai: // skaitykite įtampą SX01.poll (); // saugoti nepastovumo įtampą = SX01.getVoltage (); // apskaičiuoti termistoriaus varžą therm_res = (((vcc * series_res) / įtampa) - series_res; // apskaičiuoti faktinę temperatūrą kelvinu act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // konvertuoti kelviną į Celsijų act_tempC = act_tempK - C_Kelvin; // spausdinimo temperatūra OLED ekrane // rankinis formatavimas rodyti centre OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); vėlavimas (2000 m.); // atnaujinti ekraną kas 2 sekundes}

Rekomenduojamas: