Taula de continguts:

Mesura de la temperatura mitjançant XinaBox i un termistor: 8 passos
Mesura de la temperatura mitjançant XinaBox i un termistor: 8 passos

Vídeo: Mesura de la temperatura mitjançant XinaBox i un termistor: 8 passos

Vídeo: Mesura de la temperatura mitjançant XinaBox i un termistor: 8 passos
Vídeo: SKR 1.4 - Definitive User Guide 2024, De novembre
Anonim
Mesura de la temperatura mitjançant XinaBox i un termistor
Mesura de la temperatura mitjançant XinaBox i un termistor

Mesureu la temperatura d’un líquid mitjançant una entrada analògica xChip de XinaBox i una sonda de termistor.

Pas 1: coses utilitzades en aquest projecte

Components de maquinari

  • Sensor d'entrada analògic XinaBox SX02 x 1 xChip amb ADC
  • XinaBox CC01 x 1 xChip versió d'Arduino Uno basada en ATmega328P
  • Resistència de 10 k ohmis x 1 resistència de 10 k per a la xarxa divisòria de tensió
  • Sonda de termistor x 1 10k a 25 ° C Sonda de termistor impermeable NTC
  • Programador USB XinaBox IP01 x 1 xChip basat en FT232R de FTDI Limited
  • Pantalla OLED de XinaBox OD01 x 1 xChip de 128x64 píxels
  • Connectors de bus XinaBox XC10 x 4 xChip
  • XinaBox PU01 x 1 xChip USB (Tipus A) Font d'alimentació
  • Font d'alimentació USB de 5V x 1 banc d'alimentació o similar

Aplicacions de programari i serveis en línia

IDE Arduino

Eines manuals i màquines de fabricació

Tornavís de cap pla per apretar o afluixar la pinça del terminal del cargol

Pas 2: història

Introducció

Volia mesurar la temperatura d’un líquid creant un simple termòmetre. En utilitzar XinaBox xChips, podria aconseguir-ho amb relativa simplicitat. He utilitzat l’entrada analògica SX02 xChip que accepta de 0 a 3,3 V, la xChip CC01 basada en l’ATmega328P i la pantalla XChip ODLED OD01 per veure els resultats de la meva temperatura.

Termistor que mesura la temperatura de l'aigua en un got

Pas 3: baixeu els fitxers necessaris

Necessitareu les següents biblioteques i programari:

  • xSX0X- Biblioteca de sensors d'entrada analògica
  • xOD01: biblioteca de pantalla OLED
  • Arduino IDE: entorn de desenvolupament

Feu clic aquí per veure com instal·lar les biblioteques.

Un cop instal·lat el Arduino IDE, obriu-lo i seleccioneu "Arduino Pro o Pro Mini" com a tauler on carregar el programa. Assegureu-vos també que el processador ATmega328P (5V, 16MHz) està seleccionat. Vegeu la imatge següent.

Seleccioneu la placa Arduino Pro o Pro Mini i el processador ATmega328P (5V, 16MHz)

Pas 4: Muntatge

Feu clic al programador xChip, IP01 i ATmega328P basat en CC01 xChip junt amb els connectors de bus XC10, tal com es mostra a continuació. Per pujar al CC01, haureu de col·locar els commutadors a les posicions "A" i "DCE" respectivament.

IP01 i CC01 van fer clic

A continuació, agafeu la resistència de 10 kΩ i enrosqueu un extrem al terminal marcat amb "IN" i l'altre extrem al terminal de terra, "GND", al SX02. Agafeu els cables de la sonda del termistor i enrosqueu un extrem en Vcc, "3,3 V", i l'altre extrem al terminal "IN". Vegeu el gràfic següent.

Connexions SX02

Ara combineu OD01 i SX02 amb CC01 simplement fent-hi clic fent servir connectors de bus XC10. Mirar abaix. L’element platejat de la imatge és la sonda del termistor.

Unitat completa per a la programació

Pas 5: programa

Introduïu la unitat al port USB de l'ordinador. Baixeu-vos o copieu i enganxeu el codi següent al vostre IDE Arduino. Compileu i pengeu el codi al vostre tauler. Un cop carregat, el vostre programa hauria de començar a funcionar. Si la sonda es troba a temperatura ambient, hauríeu d’observar ± 25 ° C a la pantalla OLED tal com es mostra a continuació.

Després de carregar, observeu la temperatura ambient a la pantalla OLED

Pas 6: termòmetre portàtil

Traieu la unitat de l'ordinador. Desmunteu la unitat i torneu-la a utilitzar amb PU01 en lloc d’IP01. Ara agafeu la font d'alimentació portàtil USB de 5V, com ara un banc d'alimentació o similar, i inseriu-hi el nou conjunt. Ara teniu el vostre propi termòmetre portàtil amb una bona precisió. Vegeu la imatge de la portada per veure-la en funcionament. Vaig mesurar aigua calenta en un got. Les imatges següents mostren la unitat completa.

Unitat completa que inclou CC01, OD01, SX02 i PU02.

Pas 7: Conclusió

Aquest projecte va trigar menys de 10 minuts a muntar-se i 20 minuts més a programar-se. l'únic component passiu necessari era una resistència. Els xChips només han de fer clic junts perquè sigui molt convenient.

Pas 8: Codi

ThermTemp_Display.ino Arduino Investiga els termistors per comprendre els càlculs del codi.

#include // inclou la biblioteca principal per a xCHIPs

. B 3950 // Paràmetre B per al termistor #define room_tempK 298.15 // temperatura ambient en kelvin #define room_res 10000 // resistència a temperatura ambient en ohms #define vcc 3.3 // tensió d’alimentació xSX01 SX01 (0x55); // Estableix el voltatge flotant de l'adreça i2c; // variable que conté la tensió mesurada (0 - 3,3V) flo_res therm_res; // resistència termistor flotador act_tempK; // temperatura actual kelvin float act_tempC; // temperatura real en celsius void setup () {// poseu aquí el vostre codi de configuració per executar-lo una vegada: // inicialitzeu les variables a 0 voltatge = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // iniciar la comunicació en sèrie Serial.begin (115200); // iniciar la comunicació i2c Wire.begin (); // iniciar el sensor d'entrada analògic SX01.begin (); // iniciar la pantalla OLED OLED.begin (); // esborra la visualització OD01.clear (); // retard per normalitzar retard (1000); } void loop () {// poseu aquí el vostre codi principal per executar-lo repetidament: // llegiu el voltatge SX01.poll (); // emmagatzema el voltatge de voltatge = SX01.getVoltage (); // calcular la resistència del termistor therm_res = ((vcc * series_res) / tension) - series_res; // calcula la temperatura real en kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // convertir kelvin a celsius act_tempC = act_tempK - C_Kelvin; // temperatura d'impressió a la pantalla OLED // format manual per mostrar al centre OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); endarreriment (2000); // actualitza la pantalla cada 2 segons}

Recomanat: