Innehållsförteckning:

Kalibrering av DS18B20 -sensor med Arduino UNO: 3 steg (med bilder)
Kalibrering av DS18B20 -sensor med Arduino UNO: 3 steg (med bilder)

Video: Kalibrering av DS18B20 -sensor med Arduino UNO: 3 steg (med bilder)

Video: Kalibrering av DS18B20 -sensor med Arduino UNO: 3 steg (med bilder)
Video: Livesänd information om kvävegödsling säsongen 2020 2024, Juli
Anonim
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO

VARNING:

Enheten du ser på bilderna används i ett annat projekt som en termostat för filmutvecklingsprocess. Det projektet hittar du här. För att kalibrera en sensor, eller mer än en, behöver du precis vad du hittar i det här projektet, inget mer, och det är också ganska grundläggande! Nu går vi!

Steg 1: Förbered din enhet

Förbered din enhet
Förbered din enhet

Här är en lista över vad du behöver:

  1. Arduino UNO (eller MEGA)
  2. DS18B20 sensor (er)
  3. 4kOhm - 5kOhm motstånd (jag använde en 5k1Ohm)
  4. LCD -skärm för att läsa värden (du kan också använda en bärbar dator och bara läsa dem på en seriell bildskärm)
  5. En skiss som använder sensorn och på något sätt visar värdena

Först och främst måste du ansluta dina moduler och sensorer till din styrenhet. Jag lämnar den komplicerade delen av LCD -skärmen för dig att söka på webben, och jag kommer bara att berätta hur du ansluter sensorn.

Vanligtvis levereras dessa sensorer med tre färgade trådar: svart, röd, gul. De två första är för energi och den tredje är för data. Anslut det svarta till GNN, det röda till Vcc (5V) och det gula på en analog ingång, låt oss säga A0.

Anslut nu motståndet mellan det gula och det röda för att slutföra anslutningarna.

Anslut också LCD -skärmen (jag föreslår en enkel 16x2 LCD -skärm med i2c -anslutning för att bara använda 4 ledningar totalt) och du är klar med ledningar och kablar.

Nu är skissen som är superenkel:

#inkludera "OneWire.h"

#inkludera "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperatursensor1 (& ourWire1); #inkludera "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); lcd.backlight (); sensor1.start (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Som du kan se använder vi Dallas temperaturbibliotek och en LCD -skärm med i2c -anslutning.

I installationen initierar vi LCD och sensor och i slingan begär vi helt enkelt temperaturen och lagrar värdet i variabeln RawValue för att visa det på LCD -skärmen.

Om du vill hålla det mer enkelt använder du bara seriemonitorn med följande skiss

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperatursensor1 (& ourWire1);

float RawValue = 0;

void setup () {

fördröjning (1000); Serial.begin (9600); sensor1.start (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

Följ mig nu i kärnan i projektet för att kalibrera sensorn.

Steg 2: Tvåpunktskalibrering

Tvåpunktskalibrering
Tvåpunktskalibrering
Tvåpunktskalibrering
Tvåpunktskalibrering
Tvåpunktskalibrering
Tvåpunktskalibrering

Något att veta först

För att kalibrera en termosensor måste du mäta något som du känner till temperaturen av. Det enkla sättet att göra det hemma är att använda kokande vatten och ett bad med smältande is, även kallat ett "trippelpunktsbad". I de fallen vet vi att vatten kokar vid 100 ° C på havsnivån. Tänk på att för att göra en exakt mätning bör du känna till din höjd och beräkna rätt koktemperatur där.

Du kan kolla det här!

För att vara ärlig bör du kontrollera atmosfärstrycket och inte höjden. Men det sättet är tillräckligt noggrant.

Trippelpunktsbadet, eller isbadet, är temperaturen vid vilken vatten finns i de tre tillstånden fast, flytande och gas, den temperaturen är 0, 01 ° C. Vi kommer att använda, för att förenkla, 0 ° C.

Genom att känna till värdet som sensorn läste och värdet som borde vara, kan vi ändra råvärdet för DS18B20 till något mer korrekt.

OBS: du kan också använda mer temperatur för att kalibrera sensorn genom att bara sätta den i något annat ämne som du känner till kokpunkten som Eter (35 ° C), Pentan (36, 1 ° C), Aceton (56 ° C) eller Etanol (78, 37 ° C), men de kokande ämnena ger höga brandfarliga gaser! Så gör inte det!

Kokande vatten:

Lägg lite vatten i en kastrull och värm upp det tills det kokar (gasbubblor utvecklas och vattnet rör sig själv). Sänk ner din sensor där den inte rör vid annat än vatten. Vänta ett par minuter och läs LCD -skärmen eller seriell bildskärm

Temperaturen bör förbli densamma i minst en minut. Skriv i så fall ned det värdet. Det är ditt: RawHigh -värde.

Trippelpunktsbad:

Ta nu ett stort glas (du behöver inte något stort eller en kruka) och fyll det till gränsen med isbitar. Försök att använda små isbitar. Fyll nu 80% av glaset med kallt vatten. Fyll på med is om spaken försöker gå ner.

Sätt nu in din sensor i vatten/is -grejen och vänta en och en halv minut. Läs temperaturen som ska vara densamma i minst 30 sekunder. Skriv i så fall ner det, att det är ditt RawLow -värde.

Steg 3: Använd de värden du får på rätt sätt

Så nu har du några viktiga värden:

  • RawHigh
  • RawLow
  • ReferensHög
  • ReferensLåg

Referensvärdet är uppenbarligen 99,9 ° C för kokande vatten (vid min höjd av 22 m) och 0 ° C för det smältande isbadet. Beräkna nu intervallerna för dessa värden:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Nu är du redo att använda den sensorn i alla andra projekt och vara säker på att den ger dig en rätt mätning. Hur? Med det värde du fick här i projektet skapar du med den sensorn.

I ditt framtida projekt måste du använda de värden du läser i det här och jag föreslår att du gör det med samma namn som jag använde här.

Deklarera variablerna innan void setup () -delen precis så här:

float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Varje gång du använder sensorn kan du använda följande formel för att beräkna CorrectedValue:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue är uppenbarligen avläsningen av sensorn.

Det är allt!

Nu vet du hur du kalibrerar din DS18B20 -sensor eller någon annan sensor som du kommer att använda! Ha så kul!

Rekommenderad: