Innholdsfortegnelse:

Temperaturmåling ved hjelp av XinaBox og en termistor: 8 trinn
Temperaturmåling ved hjelp av XinaBox og en termistor: 8 trinn

Video: Temperaturmåling ved hjelp av XinaBox og en termistor: 8 trinn

Video: Temperaturmåling ved hjelp av XinaBox og en termistor: 8 trinn
Video: Морозильная камера не включается (замена пускового реле) 2024, Juli
Anonim
Temperaturmåling ved hjelp av XinaBox og en termistor
Temperaturmåling ved hjelp av XinaBox og en termistor

Mål temperaturen på en væske ved hjelp av en analog inngang xChip fra XinaBox og en termistorsonde.

Trinn 1: Ting som brukes i dette prosjektet

Maskinvarekomponenter

  • XinaBox SX02 x 1 xChip analog inngangssensor med ADC
  • XinaBox CC01 x 1 xChip -versjon av Arduino Uno basert på ATmega328P
  • Motstand 10k ohm x 1 10k motstand for spenningsdeler -nettverk
  • Thermistor Probe x 1 10k ved 25 ° C NTC vanntett termistorsonde
  • XinaBox IP01 x 1 xChip USB -programmerer basert på FT232R fra FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 piksel OLED -skjerm
  • XinaBox XC10 x 4 xChip -busskontakter
  • XinaBox PU01 x 1 xChip USB (Type A) strømforsyning
  • 5V USB strømforsyning x 1 strømbank eller lignende

Programvare -apper og online -tjenester

Arduino IDE

Håndverktøy og fabrikasjonsmaskiner

Flat skrutrekker For å stramme eller løsne skrueklemmen

Trinn 2: Historie

Introduksjon

Jeg ønsket å måle temperaturen på en væske ved å lage et enkelt termometer. Ved å bruke XinaBox xChips kunne jeg oppnå dette med relativ enkelhet. Jeg brukte den analoge SX02 -inngangen xChip som aksepterer 0 - 3.3V, CC01 xChip basert på ATmega328P og OD01 OLED -skjermen xChip for å se temperaturresultatene mine.

Termistor som måler temperaturen på vann i et glass

Trinn 3: Last ned nødvendige filer

Du trenger følgende biblioteker og programvare:

  • xSX0X- Analog inngangssensorbibliotek
  • xOD01 - OLED -skjermbibliotek
  • Arduino IDE - Utviklingsmiljø

Klikk her for å se hvordan du installerer bibliotekene.

Når du har installert Arduino IDE, åpner du den og velger "Arduino Pro eller Pro Mini" som brettet du vil laste opp programmet til. Sørg også for at ATmega328P (5V, 16MHz) prosessoren er valgt. Se bildet nedenfor.

Velg Arduino Pro eller Pro Mini -kortet og ATmega328P (5V, 16MHz) prosessor

Trinn 4: Monter

Klikk på programmereren xChip, IP01 og ATmega328P -baserte CC01 xChip sammen med XC10 -busskontakter som vist nedenfor. For å laste opp til CC01 må du plassere bryterne i henholdsvis 'A' og 'DCE' posisjoner.

IP01 og CC01 klikket sammen

Ta deretter din 10kΩ motstand og skru den ene enden i terminalen merket "IN" og den andre enden i jordterminalen, "GND", på SX02. Ta ledningene på termistorsonden og skru den ene enden i Vcc, "3.3V", og den andre enden i "IN" -terminalen. Se grafikken nedenfor.

SX02 -tilkoblinger

Kombiner nå OD01 og SX02 med CC01 ved å klikke dem sammen ved hjelp av XC10 -bussforbindelser. Se nedenfor. Sølvelementet i bildet er termistorsonden.

Komplett enhet for programmering

Trinn 5: Program

Sett enheten inn i USB -porten på datamaskinen. Last ned eller kopier og lim inn koden nedenfor i Arduino IDE. Kompiler og last opp koden til brettet ditt. Når programmet er lastet opp, skal programmet begynne å kjøre. Hvis sonden er ved romtemperatur, bør du observere ± 25 ° C på OLED -displayet som vist nedenfor.

Etter opplasting må du observere romtemperaturen på OLED -displayet

Trinn 6: Bærbart termometer

Fjern enheten fra datamaskinen. Demonter enheten og sett den sammen igjen med PU01 i stedet for IP01. Ta nå din bærbare 5V USB -strømforsyning, for eksempel en strømbank eller lignende, og sett den nye enheten inn i den. Du har nå ditt eget kule bærbare termometer med god nøyaktighet. Se omslagsbildet for å se det i drift. Jeg målte varmt vann i et glass. Bildene nedenfor viser hele enheten.

Komplett enhet som består av CC01, OD01, SX02 og PU02.

Trinn 7: Konklusjon

Dette prosjektet tok under 10 minutter å sette sammen og ytterligere 20 minutter å programmere. den eneste passive komponenten som kreves var en motstand. XChips klikker bare sammen, noe som gjør det veldig praktisk.

Trinn 8: Kode

ThermTemp_Display.ino Arduino Research termistorer for å forstå beregningene i koden.

#include // inkluderer kjernebibliotek for xCHIP -er

#include // inkluderer analogt inngangssensorbibliotek #include // inkluderer OLED -visningsbibliotek #include // inkluderer matematiske funksjoner #definere C_Kelvin 273.15 // for konvertering fra kelvin til celsius #definer serie_res 10000 // verdi for seriemotstand i ohm #define B 3950 // B parameter for termistor #definere rom_tempK 298.15 // romtemperatur i kelvin #definere rom_res 10000 // motstand ved romtemperatur i ohm #definere vcc 3.3 // forsyningsspenning xSX01 SX01 (0x55); // angi i2c -adressen flytespenning; // variabel som inneholder den målte spenningen (0 - 3.3V) float term_res; // termistor motstand float act_tempK; // faktisk temperatur kelvin float act_tempC; // faktisk temperatur i celsius ugyldig oppsett () {// legg oppsettskoden her, for å kjøre en gang: // initialisere variabler til 0 spenning = 0; term_res = 0; act_tempK = 0; act_tempC = 0; // start seriell kommunikasjon Serial.begin (115200); // start i2c kommunikasjon Wire.begin (); // start den analoge inngangssensoren SX01.begin (); // start OLED -skjerm OLED.begin (); // klar visning OD01.clear (); // forsinkelse for å normalisere forsinkelse (1000); } void loop () {// legg hovedkoden din her for å kjøre gjentatte ganger: // les spenningen SX01.poll (); // lagre volatgespenningen = SX01.getVoltage (); // beregne termistorresistens therm_res = ((vcc * series_res) / spenning) - series_res; // beregne den faktiske temperaturen i kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // konvertere kelvin til celsius act_tempC = act_tempK - C_Kelvin; // utskriftstemperatur på OLED -skjerm // manuell formatering for visning i midten OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); forsinkelse (2000); // oppdater skjerm hvert 2. sekund}

Anbefalt: