Inhoudsopgave:

Temperatuurmeting met XinaBox en een thermistor: 8 stappen
Temperatuurmeting met XinaBox en een thermistor: 8 stappen

Video: Temperatuurmeting met XinaBox en een thermistor: 8 stappen

Video: Temperatuurmeting met XinaBox en een thermistor: 8 stappen
Video: ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! 2024, Juli-
Anonim
Temperatuurmeting met behulp van XinaBox en een thermistor
Temperatuurmeting met behulp van XinaBox en een thermistor

Meet de temperatuur van een vloeistof met behulp van een analoge ingang xChip van XinaBox en een thermistorsonde.

Stap 1: Dingen die in dit project worden gebruikt

Hardware onderdelen

  • XinaBox SX02 x 1 xChip analoge ingangssensor met ADC
  • XinaBox CC01 x 1 xChip-versie van Arduino Uno op basis van ATmega328P
  • Weerstand 10k ohm x 1 10k weerstand voor spanningsdelernetwerk
  • Thermistorsonde x 1 10k bij 25°C NTC waterdichte thermistorsonde
  • XinaBox IP01 x 1 xChip USB Programmer gebaseerd op FT232R Van FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED-scherm
  • XinaBox XC10 x 4 xChip-busconnectoren
  • XinaBox PU01 x 1 xChip USB (Type A) Voeding
  • 5V USB-voeding x 1 Powerbank of vergelijkbaar

Software-apps en online services

Arduino IDE

Handgereedschap en fabricagemachines

Schroevendraaier met platte kop Om de klem van de schroefklem vast of los te maken

Stap 2: Verhaal

Invoering

Ik wilde de temperatuur van een vloeistof meten door een eenvoudige thermometer te maken. Door XinaBox xChips te gebruiken, kon ik dit relatief eenvoudig bereiken. Ik gebruikte de SX02 analoge ingang xChip die 0 - 3.3V accepteert, de CC01 xChip gebaseerd op de ATmega328P en het OD01 OLED-display xChip om mijn temperatuurresultaten te bekijken.

Thermistor die de temperatuur van water in een glas meet

Stap 3: Download benodigde bestanden

U hebt de volgende bibliotheken en software nodig:

  • xSX0X- Analoge ingangssensorbibliotheek
  • xOD01 - OLED-displaybibliotheek
  • Arduino IDE - Ontwikkelomgeving

Klik hier om te zien hoe u de bibliotheken installeert.

Nadat u de Arduino IDE hebt geïnstalleerd, opent u deze en selecteert u "Arduino Pro of Pro Mini" als het bord om uw programma naar te uploaden. Zorg er ook voor dat de ATmega328P (5V, 16MHz) processor is geselecteerd. Zie afbeelding hieronder.

Selecteer het Arduino Pro- of Pro Mini-bord en de ATmega328P (5V, 16MHz) processor

Stap 4: Monteer

Klik de programmer xChip, IP01 en de op ATmega328P gebaseerde CC01 xChip samen met behulp van XC10-busconnectoren, zoals hieronder weergegeven. Om te uploaden naar de CC01 moet u de schakelaars respectievelijk in de 'A'- en 'DCE'-posities plaatsen.

IP01 en CC01 klikten samen

Neem vervolgens uw 10kΩ-weerstand en schroef het ene uiteinde in de terminal gemarkeerd met "IN" en het andere uiteinde in de aardingsterminal, "GND", op de SX02. Neem de draden op de thermistorsonde en schroef het ene uiteinde in Vcc, "3.3V", en het andere uiteinde in de "IN"-aansluiting. Zie onderstaande grafiek.

SX02-aansluitingen

Combineer nu OD01 en SX02 met CC01 door ze eenvoudig aan elkaar te klikken met behulp van XC10-busconnectoren. Zie onder. Het zilveren element in de afbeelding is de thermistorsonde.

Complete unit voor programmering

Stap 5: Programma

Steek het apparaat in de USB-poort van uw computer. Download of kopieer en plak de onderstaande code in uw Arduino IDE. Compileer en upload de code naar je bord. Na het uploaden zou uw programma moeten starten. Als uw sonde zich op kamertemperatuur bevindt, moet u ±25°C op het OLED-display in acht nemen, zoals hieronder weergegeven.

Observeer na het uploaden de kamertemperatuur op het OLED-display

Stap 6: draagbare thermometer

Verwijder het apparaat van uw computer. Demonteer de unit en zet hem weer in elkaar met PU01 in plaats van IP01. Neem nu uw draagbare 5V USB-voeding, zoals een powerbank of iets dergelijks, en plaats de nieuwe eenheid erin. Je hebt nu je eigen coole draagbare thermometer met een goede nauwkeurigheid. Zie de omslagafbeelding om het in werking te zien. Ik heb heet water gemeten in een glas. De onderstaande afbeeldingen tonen uw complete unit.

Complete unit bestaande uit CC01, OD01, SX02 en PU02.

Stap 7: Conclusie

Dit project duurde minder dan 10 minuten om te monteren en nog eens 20 minuten om te programmeren. de enige vereiste passieve component was een weerstand. De xChips klikken gewoon in elkaar waardoor het erg handig is.

Stap 8: Coderen

ThermTemp_Display.ino Arduino Onderzoek thermistoren om de berekeningen in de code te begrijpen.

#include // include kernbibliotheek voor xCHIPs

#include // include analoge input sensor library #include // include OLED display library #include // include wiskundige functies#define C_Kelvin 273.15 // voor conversie van kelvin naar celsius #define series_res 10000 // waarde van serieweerstand in ohm #define B 3950 // B parameter voor thermistor #define room_tempK 298.15 // kamertemperatuur in kelvin #define room_res 10000 // weerstand bij kamertemperatuur in ohm #define vcc 3.3 // voedingsspanning xSX01 SX01(0x55); // stel de i2c-adres float-spanning in; // variabele die de gemeten spanning bevat (0 - 3,3 V) float therm_res; // thermistorweerstand float act_tempK; // werkelijke temperatuur kelvin float act_tempC; // werkelijke temperatuur in celsius void setup () {// plaats hier uw setup-code, om één keer uit te voeren: // initialiseer variabelen naar 0 voltage = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // start seriële communicatie Serial.begin (115200); // start i2c-communicatie Wire.begin(); // start de analoge ingangssensor SX01.begin(); // start OLED-weergave OLED.begin (); // duidelijke weergave OD01.clear(); // vertraging om vertraging te normaliseren (1000); } void loop() { // plaats hier je hoofdcode, om herhaaldelijk uit te voeren: // lees de spanning SX01.poll(); // sla de volatge spanning op = SX01.getVoltage (); // bereken thermistorweerstand therm_res = ((vcc * series_res) / voltage) - series_res; // bereken de werkelijke temperatuur in kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res)); // converteer kelvin naar celsius act_tempC = act_tempK - C_Kelvin; // printtemperatuur op OLED-display // handmatige opmaak om in het midden weer te geven OD01.set2X(); OD01.println(""); OD01.println(""); OD01.print(" "); OD01.print(act_tempC); OD01.print("C"); OD01.println(""); vertraging (2000); // update display elke 2 seconden }

Aanbevolen: