Cuprins:

Măsurarea temperaturii folosind XinaBox și un termistor: 8 pași
Măsurarea temperaturii folosind XinaBox și un termistor: 8 pași

Video: Măsurarea temperaturii folosind XinaBox și un termistor: 8 pași

Video: Măsurarea temperaturii folosind XinaBox și un termistor: 8 pași
Video: Măsurarea temperaturii (Tehnica AMG) 2024, Noiembrie
Anonim
Măsurarea temperaturii folosind XinaBox și un termistor
Măsurarea temperaturii folosind XinaBox și un termistor

Măsurați temperatura unui lichid folosind o intrare analogică xChip de la XinaBox și o sondă termistor.

Pasul 1: Lucruri utilizate în acest proiect

Componente hardware

  • XinaBox SX02 x 1 xChip senzor analogic de intrare cu ADC
  • XinaBox CC01 x 1 xChip versiunea Arduino Uno bazată pe ATmega328P
  • Rezistor 10k ohm x 1 rezistor 10k pentru rețea divizor de tensiune
  • Sonda termistor x 1 10k la 25 ° C Sonda termistor impermeabilă NTC
  • Programator XinaBox IP01 x 1 xChip USB bazat pe FT232R de la FTDI Limited
  • Afișaj OLED XinaBox OD01 x 1 xChip 128x64 pixeli
  • Conectori XinaBox XC10 x 4 xChip
  • Sursă de alimentare XinaBox PU01 x 1 xChip USB (tip A)
  • Sursă de alimentare USB de 5V x 1 banc de alimentare sau similar

Aplicații software și servicii online

IDE Arduino

Unelte manuale și mașini de fabricat

Șurubelniță cu cap plat Pentru a strânge sau a slăbi clema bornei șurubului

Pasul 2: Poveste

Introducere

Am vrut să măsoar temperatura unui lichid prin crearea unui termometru simplu. Prin utilizarea XinaBox xChips aș putea realiza acest lucru cu relativă simplitate. Am folosit intrarea analogică SX02 xChip care acceptă 0 - 3,3V, CCC1 xChip bazat pe ATmega328P și afișajul OD01 OLED xChip pentru a vedea rezultatele temperaturii mele.

Termistor care măsoară temperatura apei într-un pahar

Pasul 3: Descărcați fișierele necesare

Veți avea nevoie de următoarele biblioteci și software:

  • xSX0X- Bibliotecă senzor de intrare analogică
  • xOD01 - bibliotecă de afișaj OLED
  • Arduino IDE - Mediu de dezvoltare

Faceți clic aici pentru a vedea cum se instalează bibliotecile.

După ce ați instalat Arduino IDE, deschideți-l și selectați „Arduino Pro sau Pro Mini” ca placă în care să încărcați programul. De asemenea, asigurați-vă că este selectat procesorul ATmega328P (5V, 16MHz). Vezi imaginea de mai jos.

Selectați placa Arduino Pro sau Pro Mini și procesorul ATmega328P (5V, 16MHz)

Pasul 4: Asamblați

Faceți clic pe programatorul xChip, IP01 și ATmega328P bazat pe CC01 xChip împreună utilizând conectorii de magistrală XC10 așa cum se arată mai jos. Pentru a încărca pe CC01 va trebui să plasați comutatoarele în pozițiile „A” și respectiv „DCE”.

IP01 și CC01 au făcut clic împreună

Apoi, luați rezistorul de 10kΩ și înșurubați un capăt în terminalul marcat „IN” și celălalt capăt în terminalul de la sol, „GND”, pe SX02. Luați cablurile de pe sonda termistorului și înșurubați un capăt în Vcc, „3.3V”, iar celălalt capăt în terminalul „IN”. Vedeți graficul de mai jos.

Conexiuni SX02

Acum combinați OD01 și SX02 cu CC01 făcând clic simplu pe ele folosind conexiuni de magistrală XC10. Vezi mai jos. Elementul argintiu din imagine este sonda termistorului.

Unitate completă pentru programare

Pasul 5: Program

Introduceți unitatea în portul USB de pe computer. Descărcați sau copiați și lipiți codul de mai jos în ID-ul dvs. Arduino. Compilați și încărcați codul pe placa dvs. Odată încărcat, programul dvs. ar trebui să înceapă să ruleze. Dacă sonda este în condiții de temperatură a camerei, ar trebui să observați ± 25 ° C pe afișajul OLED așa cum se arată mai jos.

După încărcare, observați temperatura camerei pe afișajul OLED

Pasul 6: Termometru portabil

Scoateți unitatea din computer. Demontați unitatea și remontați-o folosind PU01 în loc de IP01. Acum luați sursa de alimentare portabilă USB de 5V, cum ar fi o bancă de alimentare sau altele similare și introduceți noul ansamblu în el. Acum aveți propriul dvs. termometru portabil cu o precizie bună. Vedeți imaginea de copertă pentru ao vedea în funcțiune. Am măsurat apă fierbinte într-un pahar. Imaginile de mai jos prezintă unitatea completă.

Unitate completă care cuprinde CC01, OD01, SX02 și PU02.

Pasul 7: Concluzie

Acest proiect a durat sub 10 minute pentru a fi asamblat și încă 20 de minute pentru programare. singura componentă pasivă necesară era un rezistor. XChip-urile fac doar clic împreună, ceea ce îl face foarte convenabil.

Pasul 8: Cod

ThermTemp_Display.ino Arduino Cercetați termistoarele pentru a înțelege calculele din cod.

#include // include biblioteca de bază pentru xCHIP-uri

. B 3950 // B parametru pentru termistor #define room_tempK 298.15 // temperatura camerei în kelvin #define room_res 10000 // rezistența la temperatura camerei în ohmi #define vcc 3.3 // tensiunea de alimentare xSX01 SX01 (0x55); // setați tensiunea de plutire a adresei i2c; // variabilă care conține tensiunea măsurată (0 - 3,3V) flo_res therm_res; // rezistență termistor float act_tempK; // temperatura reală kelvin float act_tempC; // temperatura reală în celsius void setup () {// puneți codul de configurare aici, pentru a rula o dată: // inițializați variabilele la 0 tensiune = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // pornește comunicarea în serie Serial.begin (115200); // pornește comunicarea i2c Wire.begin (); // porniți senzorul de intrare analogică SX01.begin (); // pornește afișajul OLED OLED.begin (); // ștergeți afișajul OD01.clear (); // întârziere pentru normalizarea întârzierii (1000); } void loop () {// puneți codul principal aici, pentru a rula în mod repetat: // citiți tensiunea SX01.poll (); // stochează tensiunea volatge = SX01.getVoltage (); // calculați rezistența termistorului therm_res = ((vcc * series_res) / tension) - series_res; // calculați temperatura reală în kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // converti kelvin în celsius act_tempC = act_tempK - C_Kelvin; // temperatura de imprimare pe afișajul OLED // formatarea manuală pentru afișarea în centru OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); întârziere (2000); // actualizați afișajul la fiecare 2 secunde}

Recomandat: