INHOUDSOPGAWE:

Temperatuurmeting met behulp van XinaBox en 'n termistor: 8 stappe
Temperatuurmeting met behulp van XinaBox en 'n termistor: 8 stappe

Video: Temperatuurmeting met behulp van XinaBox en 'n termistor: 8 stappe

Video: Temperatuurmeting met behulp van XinaBox en 'n termistor: 8 stappe
Video: Морозильная камера не включается (замена пускового реле) 2024, Julie
Anonim
Temperatuurmeting met behulp van XinaBox en 'n termistor
Temperatuurmeting met behulp van XinaBox en 'n termistor

Meet die temperatuur van 'n vloeistof met behulp van 'n analoog ingang xChip van XinaBox en 'n termistor sonde.

Stap 1: Dinge wat in hierdie projek gebruik word

Hardeware komponente

  • XinaBox SX02 x 1 xChip analoog ingangssensor met ADC
  • XinaBox CC01 x 1 xChip -weergawe van Arduino Uno gebaseer op ATmega328P
  • Weerstand 10k ohm x 1 10k weerstand vir spanningsverdelersnetwerk
  • Thermistor Probe x 1 10k by 25 ° C NTC waterdigte termistor sonde
  • XinaBox IP01 x 1 xChip USB -programmeerder gebaseer op FT232R van FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED -skerm
  • XinaBox XC10 x 4 xChip -busverbindings
  • XinaBox PU01 x 1 xChip USB (tipe A) kragbron
  • 5V USB Power Supply x 1 Power Bank of soortgelyke

Sagteware -programme en aanlyndienste

Arduino IDE

Handgereedskap en vervaardigingsmasjiene

Platskroewedraaier Om die skroefklem vas te draai of los te maak

Stap 2: Verhaal

Inleiding

Ek wou die temperatuur van 'n vloeistof meet deur 'n eenvoudige termometer te skep. Deur XinaBox xChips te gebruik, kon ek dit relatief eenvoudig bereik. Ek gebruik die SX02 analoog ingang xChip wat 0 - 3.3V aanvaar, die CC01 xChip gebaseer op die ATmega328P en die OD01 OLED -skerm xChip om my temperatuurresultate te sien.

Termistor wat temperatuur van water in 'n glas meet

Stap 3: Laai nodige lêers af

U benodig die volgende biblioteke en sagteware:

  • xSX0X- Analoge insetsensorbiblioteek
  • xOD01 - OLED -vertoonbiblioteek
  • Arduino IDE - Ontwikkelingsomgewing

Klik hier om te sien hoe u die biblioteke installeer.

Nadat u die Arduino IDE geïnstalleer het, maak dit oop en kies die "Arduino Pro of Pro Mini" as die bord om u program op te laai. Maak ook seker dat die ATmega328P (5V, 16MHz) verwerker gekies is. Sien prentjie hieronder.

Kies die Arduino Pro of Pro Mini -bord en die ATmega328P (5V, 16MHz) verwerker

Stap 4: Monteer

Klik saam op die programmeerder xChip, IP01 en die ATmega328P gebaseerde CC01 xChip met behulp van XC10 -busverbindings, soos hieronder getoon. Om na die CC01 te laai, moet u die skakelaars onderskeidelik in die 'A' en 'DCE' posisies plaas.

IP01 en CC01 klik saam

Neem dan u 10kΩ -weerstand en skroef die een kant in die terminaal gemerk "IN" en die ander kant in die grondaansluiting, "GND", op die SX02. Neem die leidings op die termistorsonde en skroef die een kant in Vcc, "3.3V", en die ander kant in die "IN" -aansluiting. Sien die grafiek hieronder.

SX02 verbindings

Kombineer nou OD01 en SX02 met CC01 deur eenvoudig daarop te klik met behulp van XC10 -busverbindings. Sien onder. Die silwer element in die beeld is die termistorsonde.

Volledige eenheid vir programmering

Stap 5: Programmeer

Steek die eenheid in die USB -poort van u rekenaar. Laai die kode hieronder af of plak dit in u Arduino IDE. Stel die kode op en laai dit op u bord op. Sodra dit opgelaai is, moet u program begin loop. As die sonde by kamertemperatuur is, moet u ± 25 ° C op die OLED -skerm waarneem, soos hieronder getoon.

Let op die kamertemperatuur op die OLED -skerm nadat u dit opgelaai het

Stap 6: Draagbare termometer

Verwyder die eenheid van u rekenaar. Demonteer die eenheid en monteer dit weer met PU01 in plaas van IP01. Neem nou u draagbare 5V USB -kragbron, soos 'n kragbank of iets dergeliks, en steek die nuwe eenheid daarin. U het nou u eie koel draagbare termometer met 'n goeie akkuraatheid. Sien die voorblad om dit in werking te sien. Ek het warm water in 'n glas gemeet. Die onderstaande prente toon u volledige eenheid.

Volledige eenheid met CC01, OD01, SX02 en PU02.

Stap 7: Gevolgtrekking

Hierdie projek het minder as 10 minute geneem om te vergader en nog 20 minute om te programmeer. die enigste passiewe komponent wat nodig was, was 'n weerstand. Die xChips klik net saam, wat dit baie gerieflik maak.

Stap 8: Kode

ThermTemp_Display.ino Arduino Research termistors om die berekeninge in die kode te verstaan.

#include // sluit kernbiblioteek in vir xCHIP's

#include // sluit analoog insetsensorbiblioteek in #include // sluit OLED -vertoningsbiblioteek in #include // sluit wiskundefunksies in #definieer C_Kelvin 273.15 // vir omskakeling van kelvin na celsius #definieer series_res 10000 // waarde van reeksweerstand in ohm #define B 3950 // B parameter vir termistor #definieer kamer_tempK 298.15 // kamertemperatuur in kelvin #definieer kamer_res 10000 // weerstand by kamertemperatuur in ohm #definieer vcc 3.3 // toevoerspanning xSX01 SX01 (0x55); // stel die i2c adres vlotspanning in; // veranderlike wat die gemete spanning (0 - 3.3V) vlotterm_res bevat; // termistor weerstand float act_tempK; // werklike temperatuur kelvin float act_tempC; // werklike temperatuur in die leegte -opstelling van celsius () {// plaas u opstellingskode hier om een keer te werk: // inisieer veranderlikes na 0 spanning = 0; term_res = 0; act_tempK = 0; act_tempC = 0; // begin seriële kommunikasie Serial.begin (115200); // begin i2c -kommunikasie Wire.begin (); // begin die analoge insetsensor SX01.begin (); // begin OLED -skerm OLED.begin (); // duidelike vertoning OD01.clear (); // vertraging om vertraging te normaliseer (1000); } void loop () {// plaas u hoofkode hier om herhaaldelik te werk: // lees die spanning SX01.poll (); // stoor die volatge spanning = SX01.getVoltage (); // bereken termistorweerstand therm_res = ((vcc * series_res) / voltage) - series_res; // bereken die werklike temperatuur in kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // skakel kelvin om in celsius act_tempC = act_tempK - C_Kelvin; // druk temperatuur op OLED -skerm // handmatige opmaak om in die middel OD01.set2X () te vertoon; OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); vertraging (2000); // opdater skerm elke 2 sekondes}

Aanbeveel: