Sadržaj:

Mjerenje temperature pomoću XinaBox -a i termistora: 8 koraka
Mjerenje temperature pomoću XinaBox -a i termistora: 8 koraka

Video: Mjerenje temperature pomoću XinaBox -a i termistora: 8 koraka

Video: Mjerenje temperature pomoću XinaBox -a i termistora: 8 koraka
Video: Domaća zadaća za 8. razred: Fizika - Temperatura i mjerenje temperature 2024, Srpanj
Anonim
Mjerenje temperature pomoću XinaBox -a i termistora
Mjerenje temperature pomoću XinaBox -a i termistora

Izmjerite temperaturu tekućine pomoću analognog ulaza xChip iz XinaBox -a i termistorske sonde.

Korak 1: Stvari korištene u ovom projektu

Hardverske komponente

  • XinaBox SX02 x 1 xChip analogni ulazni senzor s ADC -om
  • XinaBox CC01 x 1 xChip verzija Arduino Uno zasnovana na ATmega328P
  • Otpornik 10k ohm x 1 10k otpornik za mrežu razdjelnika napona
  • Termistorska sonda x 1 10k na 25 ° C NTC vodootporna termistorska sonda
  • XinaBox IP01 x 1 xChip USB programator temeljen na FT232R Proizvođač FTDI Limited
  • XinaBox OD01 x 1 xChip OLED zaslon od 128 x 64 piksela
  • XinaBox XC10 x 4 xChip konektori sabirnice
  • Napajanje XinaBox PU01 x 1 xChip USB (tip A)
  • 5V USB napajanje x 1 Power Bank ili slično

Softverske aplikacije i mrežne usluge

Arduino IDE

Ručni alati i strojevi za izradu

Odvijač s ravnom glavom Za zatezanje ili otpuštanje stezaljke stezaljke

Korak 2: Priča

Uvod

Htio sam izmjeriti temperaturu tekućine stvaranjem jednostavnog termometra. Korištenjem XinaBox xChips -a mogao sam to postići relativno jednostavno. Koristio sam analogni ulaz SX02 xChip koji prihvaća 0 - 3,3 V, CC01 xChip baziran na ATmega328P i OD01 OLED zaslon xChip za pregled rezultata temperature.

Termistor za mjerenje temperature vode u čaši

Korak 3: Preuzmite potrebne datoteke

Trebat će vam sljedeće biblioteke i softver:

  • xSX0X- Knjižnica osjetnika analognog ulaza
  • xOD01 - Knjižnica OLED zaslona
  • Arduino IDE - Razvojno okruženje

Kliknite ovdje da vidite kako instalirati knjižnice.

Nakon što instalirate Arduino IDE, otvorite ga i odaberite "Arduino Pro ili Pro Mini" kao ploču na koju ćete učitati svoj program. Također provjerite je li odabran procesor ATmega328P (5V, 16MHz). Pogledajte sliku ispod.

Odaberite Arduino Pro ili Pro Mini ploču i procesor ATmega328P (5V, 16MHz)

Korak 4: Sastavite

Pritisnite zajedno s programatorom xChip, IP01 i CC01 xChip baziranim na ATmega328P pomoću konektora sabirnice XC10 kao što je prikazano u nastavku. Za prijenos na CC01 morate postaviti prekidače u položaje 'A' i 'DCE'.

IP01 i CC01 su kliknuli zajedno

Zatim uzmite otpornik od 10 kΩ i zavijte jedan kraj u stezaljku s oznakom "IN", a drugi kraj u stezaljku za uzemljenje, "GND", na SX02. Uzmite vodiče na sondi termistora i zavijte jedan kraj u Vcc, "3.3V", a drugi kraj u "IN" terminal. Pogledajte donju grafiku.

SX02 veze

Sada kombinirajte OD01 i SX02 s CC01 jednostavnim klikom zajedno pomoću konektora sabirnice XC10. Pogledaj ispod. Srebrni element na slici je termistorska sonda.

Cjelovita jedinica za programiranje

Korak 5: Program

Umetnite uređaj u USB priključak na računalu. Preuzmite ili kopirajte i zalijepite donji kod u svoj Arduino IDE. Sastavite i prenesite kôd na svoju ploču. Nakon prijenosa vaš bi se program trebao početi izvoditi. Ako je sonda na sobnoj temperaturi, trebali biste promatrati ± 25 ° C na OLED zaslonu kao što je prikazano u nastavku.

Nakon učitavanja promatrajte sobnu temperaturu na OLED zaslonu

Korak 6: Prijenosni termometar

Uklonite jedinicu s računala. Rastavite jedinicu i sastavite je pomoću PU01 umjesto IP01. Sada uzmite svoje prijenosno napajanje od 5 V USB, poput izvora napajanja ili slično, i umetnite novi sklop u njega. Sada imate vlastiti hladni prijenosni termometar s dobrom točnošću. Pogledajte sliku naslovnice da biste je vidjeli u radu. Izmjerio sam toplu vodu u čaši. Slike ispod prikazuju vašu cjelovitu jedinicu.

Cjelovita jedinica koja se sastoji od CC01, OD01, SX02 i PU02.

Korak 7: Zaključak

Za sastavljanje ovog projekta potrebno je manje od 10 minuta, a za programiranje još 20 minuta. jedina potrebna pasivna komponenta bio je otpornik. XChips samo klikaju zajedno što ga čini vrlo prikladnim.

Korak 8: Kodiranje

ThermTemp_Display.ino Arduino Istražite termistore kako biste razumjeli proračune u kodu.

#include // uključi jezgru knjižnicu za xCHIP -ove

#include // uključi biblioteku senzora za analogni ulaz #include // uključi knjižnicu OLED zaslona #include // uključi matematičke funkcije #definiraj C_Kelvin 273.15 // za pretvaranje iz kelvina u celzij #define series_res 10000 // vrijednost serijskog otpornika u ohmima #define B 3950 // B parametar za termistor #define room_tempK 298.15 // sobna temperatura u kelvinu #define room_res 10000 // otpor na sobnoj temperaturi u ohmima #define vcc 3.3 // napon napajanja xSX01 SX01 (0x55); // postavljamo plivajući napon adrese i2c; // varijabla koja sadrži izmjereni napon (0 - 3,3 V) plovak term. // plovak otpora termistora act_tempK; // stvarna temperatura kelvin float act_tempC; // stvarna temperatura u celzijusu void setup () {// ovdje postavite svoj kod za postavljanje, da biste ga pokrenuli jednom: // inicijalizirajte varijable na 0 napon = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // pokretanje serijske komunikacije Serial.begin (115200); // pokretanje i2c komunikacije Wire.begin (); // pokretanje osjetnika analognog ulaza SX01.begin (); // pokretanje OLED zaslona OLED.begin (); // brisanje prikaza OD01.clear (); // kašnjenje za normalizaciju kašnjenja (1000); } void loop () {// ovdje unesite svoj glavni kôd, radi višestrukog izvođenja: // očitavanje napona SX01.poll (); // spremi napon volatge = SX01.getVoltage (); // izračunati otpor termistora therm_res = ((vcc * series_res) / napon) - series_res; // izračunati stvarnu temperaturu u kelvinu act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // pretvoriti kelvin u celzij act_tempC = act_tempK - C_Kelvin; // temperatura ispisa na OLED zaslonu // ručno oblikovanje za prikaz u sredini OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); odgoda (2000); // ažuriraj prikaz svake 2 sekunde}

Preporučeni: