Kazalo:

Merjenje temperature z uporabo XinaBox -a in termistorja: 8 korakov
Merjenje temperature z uporabo XinaBox -a in termistorja: 8 korakov

Video: Merjenje temperature z uporabo XinaBox -a in termistorja: 8 korakov

Video: Merjenje temperature z uporabo XinaBox -a in termistorja: 8 korakov
Video: Namizni merilec 3v1: merjenje kvalitete zraka, temperature in vlage 2024, Julij
Anonim
Merjenje temperature z uporabo XinaBox -a in termistorja
Merjenje temperature z uporabo XinaBox -a in termistorja

Izmerite temperaturo tekočine s pomočjo analognega vhoda xChip iz XinaBox -a in termistorske sonde.

1. korak: Stvari, uporabljene v tem projektu

Strojne komponente

  • XinaBox SX02 x 1 xChip analogni vhodni senzor z ADC
  • XinaBox CC01 x 1 xChip različica Arduino Uno na osnovi ATmega328P
  • Upor 10k ohm x 1 10k upor za omrežje delilnika napetosti
  • Termistorska sonda x 1 10k pri 25 ° C NTC vodotesna sonda termistorja
  • XinaBox IP01 x 1 xChip USB programator na osnovi FT232R iz FTDI Limited
  • XinaBox OD01 x 1 xChip OLED zaslon s 128 x 64 piksli
  • Priključki vodila XinaBox XC10 x 4 xChip
  • Napajanje XinaBox PU01 x 1 xChip USB (tip A)
  • Napajanje USB 5V x 1 napajalnik ali podobno

Programske aplikacije in spletne storitve

Arduino IDE

Ročna orodja in stroji za izdelavo

Ploščati izvijač Za zategovanje ali popuščanje spončne sponke vijaka

2. korak: Zgodba

Uvod

Želel sem izmeriti temperaturo tekočine z ustvarjanjem preprostega termometra. Z uporabo XinaBox xChips bi to lahko dosegel z relativno preprostostjo. Za ogled rezultatov temperature sem uporabil analogni vhod SX02 xChip, ki sprejema 0 - 3,3 V, CC01 xChip, ki temelji na ATmega328P, in zaslon OD01 OLED xChip.

Termistor za merjenje temperature vode v kozarcu

3. korak: Prenesite potrebne datoteke

Potrebovali boste naslednje knjižnice in programsko opremo:

  • xSX0X- Knjižnica analognih vhodnih senzorjev
  • xOD01 - knjižnica zaslonov OLED
  • Arduino IDE - Razvojno okolje

Kliknite tukaj, če želite videti, kako namestiti knjižnice.

Ko namestite Arduino IDE, ga odprite in izberite "Arduino Pro ali Pro Mini" kot ploščo, na katero naložite svoj program. Prepričajte se tudi, da je izbran procesor ATmega328P (5V, 16MHz). Glej sliko spodaj.

Izberite ploščo Arduino Pro ali Pro Mini in procesor ATmega328P (5V, 16MHz)

4. korak: Sestavite

Kliknite skupaj s programerjem xChip, IP01 in ATmega328P CC01 xChip, ki temelji na ATmega328P, skupaj s priključki vodila XC10, kot je prikazano spodaj. Za nalaganje v CC01 morate stikala postaviti v položaj 'A' oziroma 'DCE'.

IP01 in CC01 sta skupaj kliknila

Nato vzemite 10kΩ upor in en konec privijte v priključek z oznako "IN", drugi konec pa v ozemljitveni priključek "GND" na SX02. Vzemite kable na sondi termistorja in en konec privijte v Vcc, "3.3V", drugi konec pa v priključek "IN". Oglejte si spodnjo sliko.

Priključki SX02

Zdaj združite OD01 in SX02 s CC01, tako da jih preprosto kliknete skupaj s povezovalniki vodila XC10. Glej spodaj. Srebrni element na sliki je termistorska sonda.

Celotna enota za programiranje

5. korak: Program

Enoto vstavite v vrata USB na računalniku. Prenesite ali kopirajte in prilepite spodnjo kodo v svoj Arduino IDE. Sestavite in naložite kodo na tablo. Ko naložite program, bi se moral začeti izvajati. Če je sonda pri sobni temperaturi, morate na zaslonu OLED opazovati ± 25 ° C, kot je prikazano spodaj.

Po nalaganju opazujte sobno temperaturo na zaslonu OLED

6. korak: Prenosni termometer

Odstranite enoto iz računalnika. Enoto razstavite in znova sestavite z uporabo PU01 namesto IP01. Zdaj vzemite prenosni napajalnik USB 5V, na primer napajalnik ali podobno, in vanj vstavite nov sklop. Zdaj imate svoj hladen prenosni termometer z dobro natančnostjo. Oglejte si sliko naslovnice, če želite videti, kako deluje. Izmeril sem vročo vodo v kozarcu. Spodnje slike prikazujejo celotno enoto.

Celotna enota, ki obsega CC01, OD01, SX02 in PU02.

7. korak: Zaključek

Sestavljanje tega projekta je trajalo manj kot 10 minut, programiranje pa še 20 minut. edina potrebna pasivna komponenta je bil upor. XChips samo kliknejo skupaj, kar je zelo priročno.

8. korak: Koda

ThermTemp_Display.ino Arduino Raziskujte termistorje za razumevanje izračunov v kodi.

#include // vključi osnovno knjižnico za xCHIP

#include // vključi knjižnico tipala analognih vhodov #include // vključi knjižnico zaslonov OLED #include // vključi matematične funkcije #define C_Kelvin 273.15 // za pretvorbo iz kelvina v celzij #define series_res 10000 // vrednost zaporedja upora v ohmih #define B 3950 // parameter B za termistor #define room_tempK 298.15 // sobna temperatura v kelvinu #define room_res 10000 // upor pri sobni temperaturi v ohmih #define vcc 3.3 // napajalna napetost xSX01 SX01 (0x55); // nastavimo plavajočo napetost naslova i2c; // spremenljivka, ki vsebuje izmerjeno napetost (0 - 3,3 V) plavajoče term. // odpornost termistorja float act_tempK; // dejanska temperatura kelvin float act_tempC; // dejanska temperatura v Celsiusu void setup () {// tukaj vstavite nastavitveno kodo, ki se zažene enkrat: // inicializirajte spremenljivke na 0 napetost = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // zaženi serijsko komunikacijo Serial.begin (115200); // zažene komunikacijo i2c Wire.begin (); // zaženemo senzor analognega vhoda SX01.begin (); // zaženemo OLED zaslon OLED.begin (); // počisti prikaz OD01.clear (); // zakasnitev za normalizacijo zakasnitve (1000); } void loop () {// vnesite svojo glavno kodo sem, da se zažene večkrat: // preberite napetost SX01.poll (); // shranimo volatno napetost = SX01.getVoltage (); // izračunamo upor termistorja therm_res = ((vcc * series_res) / napetost) - series_res; // izračunamo dejansko temperaturo v kelvinu act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // pretvorimo kelvin v celzij act_tempC = act_tempK - C_Kelvin; // temperatura tiskanja na zaslonu OLED // ročno oblikovanje za prikaz v sredini OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); zamuda (2000); // posodobi prikaz vsake 2 sekundi}

Priporočena: