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, Juli
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 koje se koriste u ovom projektu

Hardverske komponente

  • XinaBox SX02 x 1 xChip analogni ulazni senzor sa 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 zasnovan na FT232R Proizvođač FTDI Limited
  • XinaBox OD01 x 1 xChip OLED ekran od 128 x 64 piksela
  • XinaBox XC10 x 4 xChip konektori sabirnice
  • XinaBox PU01 x 1 xChip USB (tip A) napajanje
  • 5V USB napajanje x 1 Power Bank ili slično

Softverske aplikacije i mrežne usluge

Arduino IDE

Ručni alati i mašine za izradu

Ravni odvijač Za pritezanje 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 zasnovan 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 analognih ulaznih senzora
  • xOD01 - OLED biblioteka ekrana
  • Arduino IDE - razvojno okruženje

Kliknite ovdje da vidite kako instalirati biblioteke.

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

Kliknite zajedno na programatoru xChip, IP01 i CC01 xChip zasnovanom na ATmega328P zajedno koristeći konektore sabirnice XC10 kao što je prikazano u nastavku. Da biste učitali 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 zavrnite jedan kraj u Vcc, "3.3V", a drugi kraj u "IN" terminalu. Pogledajte donju grafiku.

SX02 veze

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

Kompletna jedinica za programiranje

Korak 5: Program

Umetnite uređaj u USB port na računaru. Preuzmite ili kopirajte i zalijepite donji kod u svoj Arduino IDE. Sastavite i postavite kôd na svoju ploču. Nakon učitavanja vaš program bi trebao početi raditi. Ako se sonda nalazi na sobnoj temperaturi, trebali biste posmatrati ± 25 ° C na OLED ekranu kao što je prikazano ispod.

Nakon učitavanja posmatrajte sobnu temperaturu na OLED ekranu

Korak 6: Prijenosni termometar

Uklonite jedinicu sa računara. 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 svoj hladni prijenosni termometar s dobrom preciznošću. Pogledajte sliku naslovnice da biste je vidjeli u funkciji. Izmerio sam toplu vodu u čaši. Slike ispod prikazuju vašu kompletnu jedinicu.

Kompletna jedinica koja sadrži 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 zgodnim.

Korak 8: Kodirajte

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

#include // uključuje jezgru biblioteku za xCHIP -ove

#include // uključi biblioteku senzora za analogni ulaz #include // uključi biblioteku OLED ekrana #include // uključi matematičke funkcije #definiraj C_Kelvin 273.15 // za pretvaranje iz Kelvina u Celzijus #define series_res 10000 // vrijednost otpornika serije 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 i2c adrese; // varijabla koja sadrži izmjereni napon (0 - 3.3V) float therm_res; // 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; // započinje serijska komunikacija Serial.begin (115200); // pokretanje i2c komunikacije Wire.begin (); // pokreće senzor analognog ulaza SX01.begin (); // pokretanje OLED ekrana OLED.begin (); // brisanje prikaza OD01.clear (); // kašnjenje za normalizaciju kašnjenja (1000); } void loop () {// ovdje unesite svoj glavni kod, za ponavljanje: // očitavanje napona SX01.poll (); // spremamo napon volata = 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 celsius act_tempC = act_tempK - C_Kelvin; // temperatura ispisa na OLED ekranu // ručno oblikovanje za prikaz u centru OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); kašnjenje (2000); // ažuriraj prikaz svake 2 sekunde}

Preporučuje se: