Innholdsfortegnelse:
- Trinn 1: Klargjør enheten
- Trinn 2: To -punktskalibrering
- Trinn 3: Bruk verdiene du får på riktig måte
Video: Kalibrering av DS18B20 -sensor med Arduino UNO: 3 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
ANSVARSFRASKRIVELSE:
Enheten du ser på bildene brukes i et annet prosjekt som en termostat for filmutviklingsprosess. Du kan finne det prosjektet her. For å kalibrere en sensor, eller mer enn én, trenger du akkurat det du finner i dette prosjektet, ikke noe mer, og det er også ganske grunnleggende! La oss gå!
Trinn 1: Klargjør enheten
Her er en liste over hva du trenger:
- Arduino UNO (eller MEGA)
- DS18B20 sensor (er)
- 4kOhm - 5kOhm motstand (jeg brukte en 5k1Ohm)
- LCD -skjerm for å lese verdier (du kan også bruke en bærbar datamaskin og bare lese dem på en seriell skjerm)
- En skisse som bruker sensoren og på en eller annen måte viser verdiene
Først må du koble modulene og sensoren til kontrolleren. Jeg lar den kompliserte delen av LCD -skjermen stå for deg for å søke på nettet, og jeg vil bare fortelle deg hvordan du kobler sensoren.
Vanligvis kommer disse sensorene med tre fargede ledninger: Svart, rød, gul. De to første er for energi og den tredje er for data. Koble den svarte til GNN, den røde til Vcc (5V) og den gule på en analog inngang, la oss si A0.
Koble nå motstanden mellom den gule og den røde for å fullføre tilkoblingene.
Plugg inn også LCD -skjermen (jeg foreslår en enkel 16x2 LCD med i2c -tilkobling for å bruke bare 4 ledninger totalt), og du er ferdig med ledninger og kabler.
Nå er skissen som er superenkel:
#inkludere "OneWire.h"
#inkludere "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperatursensor1 (& ourWire1); #include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;
ugyldig oppsett () {lcd.init (); lcd.backlight (); sensor1.begynner (); 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 bruker vi Dallas temperaturbibliotek og en LCD -skjerm med i2c -tilkobling.
I oppsettet begynner vi på LCD og sensor, og i sløyfen ber vi ganske enkelt om temperaturen og lagrer verdien inne i variabelen RawValue for å vise den på LCD -skjermen.
Hvis du vil gjøre det mer enkelt, bare bruk den serielle skjermen med følgende skisse
#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;
ugyldig oppsett () {
forsinkelse (1000); Serial.begin (9600); sensor1.begynner (); sensor1.setResolution (11);
}
void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }
Følg meg nå i kjernen av prosjektet for å kalibrere sensoren.
Trinn 2: To -punktskalibrering
Noe å vite først
For å kalibrere en termosensor må du måle noe du kjenner temperaturen på. Den enkle måten å gjøre det hjemme på er å bruke kokende vann og et bad med smeltende is, også kalt et "trippelpunkt" -bad. I slike tilfeller vet vi at vann koker ved 100 ° C på havnivået. Husk at for å gjøre en presis måling, bør du kjenne høyden din og beregne riktig koketemperatur der.
Du kan sjekke det her!
For å være ærlig bør du sjekke atmosfæretrykket og ikke høyden. Men den måten er nøyaktig nok.
Trepunktsbadet, eller isbadet, er temperaturen der vann eksisterer i de tre tilstandene fast stoff, væske og gass, den temperaturen er 0, 01 ° C. Vi vil bruke, for å forenkle, 0 ° C.
Når vi kjenner verdien som sensoren leser og verdien som bør være, kan vi endre råverdien til DS18B20 til noe mer korrekt.
MERK: du kan også bruke mer temperatur til å kalibrere sensoren bare ved å sette den i et annet stoff som du kjenner kokepunktet som Eter (35 ° C), Pentan (36, 1 ° C), Aceton (56 ° C) eller Etanol (78, 37 ° C), men de kokende stoffene gir høye antennelige gasser! Så ikke gjør det!
Kokende vann:
Ha litt vann i en gryte og varm det opp til det koker (gassbobler utvikler seg og vannet agiterer selv). Dyp sensoren din der den ikke berører annet enn vann. Vent et par minutter og les LCD -en eller seriell skjerm
Temperaturen bør forbli den samme i minst ett minutt. Skriv i så fall ned verdien. Det er din: RawHigh -verdi.
Trepunktsbad:
Ta nå et stort glass (du trenger ikke noe stort eller en gryte) og fyll det til grensen med isbiter. Prøv å bruke små isbiter. Fyll nå 80% av glasset med kaldt vann. Fyll på med is hvis spaken prøver å gå ned.
Sett nå sensoren din inne i vann/is -tingen og vent ett og et halvt minutt. Les temperaturen som skal forbli den samme i minst 30 sekunder. Skriv i så fall ned at det er din RawLow -verdi.
Trinn 3: Bruk verdiene du får på riktig måte
Så nå har du noen viktige verdier:
- RawHigh
- RawLow
- Referanse Høy
- Referanse Lav
Referanseverdien er åpenbart 99,9 ° C for kokende vann (i min høyde på 22m) og 0 ° C for det smeltende isbadet. Beregn nå områdene for disse verdiene:
- RawRange = RawHigh - RawLow
- ReferenceRange = ReferenceHigh - ReferenceLow
Nå er du klar til å bruke sensoren i ethvert annet prosjekt, og være sikker på at den vil gi deg en riktig måling. Hvordan? Ved å bruke verdien du fikk her i prosjektet vil du skape med den sensoren.
I ditt fremtidige prosjekt må du bruke verdiene du leser i dette, og jeg foreslår at du gjør det med de samme navnene jeg brukte her.
Angi variablene før delen for ugyldig oppsett () akkurat slik:
float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;
Hver gang du bruker sensoren, kan du bruke følgende formel til å beregne CorrectedValue:
float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;
RawValue er åpenbart lesingen av sensoren.
Det er det!
Nå vet du hvordan du kalibrerer DS18B20 -sensoren eller en hvilken som helst annen sensor du vil bruke! Ha det gøy!
Anbefalt:
Hvordan lage en babymaskin med Arduino Nano, HX-711 lastcelle og OLED 128X64 -- Kalibrering av HX-711: 5 trinn
Hvordan lage en babymaskin med Arduino Nano, HX-711 lastcelle og OLED 128X64 || Kalibrering av HX-711: Hei Instructables, For noen dager siden ble jeg far til en søt baby?. Da jeg var på sykehus fant jeg ut at babyens vekt er så avgjørende for å overvåke babyens vekst. Så jeg har en idé? å lage en babyvektsmaskin av meg selv. i denne instruksjonsfulle jeg
6-akset sensormodul FSP200 Kalibrering og testing: 6 trinn
6-akset sensormodul FSP200 Kalibrering og testing: FSP200 er en 6-akset treghetsmåleenhetsprosessor som gir kurs- og retningsutgang. Den utfører en sammensmeltning av akselerometer og gyrosensorer for stabil og nøyaktig kurs og retning. FSP200 er egnet for bruk i robotpr
Kalibrering av LED -lysstyrke: 5 trinn
Kalibrering av LED-lysstyrke: Mens jeg laget et eventyrlys, innså jeg at PWM-verdien er ikke-lineært proporsjonal med lysstyrken til LED-en. Enkelt sagt, hvis PWM -verdien er dobbel, er lysstyrken ikke dobbel; spesielt når PWM er nær maksimum, vil enhver endring i
Arduino Rain Gauge Kalibrering: 7 trinn
Arduino Rain Gauge Calibration: Introduction: I denne instruksjonsboken 'konstruerer' vi en regnmåler med Arduino og kalibrerer den for å rapportere daglig nedbør og time nedbør. Regnoppsamleren jeg bruker er en omformet regnemåler av typen tippeskuff. Det kom fra en skadet personlig vi
Enkel hard og myk jernmagnetometer kalibrering: 6 trinn (med bilder)
Enkel hard og myk jernmagnetometer kalibrering: Hvis hobbyen din er RC, droner, robotikk, elektronikk, augment reality eller lignende, vil du før eller siden møte oppgaven med magnetometer kalibrering. Enhver magnetometermodul må kalibreres, fordi måling av magnetfeltfag