Სარჩევი:

DS18B20 სენსორის დაკალიბრება Arduino UNO– ით: 3 ნაბიჯი (სურათებით)
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით: 3 ნაბიჯი (სურათებით)

ვიდეო: DS18B20 სენსორის დაკალიბრება Arduino UNO– ით: 3 ნაბიჯი (სურათებით)

ვიდეო: DS18B20 სენსორის დაკალიბრება Arduino UNO– ით: 3 ნაბიჯი (სურათებით)
ვიდეო: FLProg10: DS18B20 ტემპერატურის სენსორი | ESP32 NodeMCU | Arduino ვიზუალური ჩაშენებული პროგრამირება 2024, ივლისი
Anonim
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით

უარყოფა:

მოწყობილობა, რომელსაც ხედავთ სურათებში, გამოიყენება სხვა პროექტში, როგორც თერმოსტატი ფილმის შემუშავების პროცესისთვის. თქვენ შეგიძლიათ ნახოთ ეს პროექტი აქ. სენსორის, ან ერთზე მეტის დაკალიბრების მიზნით, დაგჭირდებათ მხოლოდ ის, რაც ამ პროექტში იპოვით, მეტი არაფერი და ის ასევე საკმაოდ ძირითადი! Წავედით!

ნაბიჯი 1: მოამზადეთ თქვენი მოწყობილობა

მოამზადეთ თქვენი მოწყობილობა
მოამზადეთ თქვენი მოწყობილობა

აქ არის ჩამონათვალი, რაც გჭირდებათ:

  1. Arduino UNO (ან MEGA)
  2. DS18B20 სენსორი (ები)
  3. 4kOhm - 5kOhm წინააღმდეგობა (მე გამოვიყენე 5k1Ohm)
  4. LCD ეკრანი მნიშვნელობების წასაკითხად (თქვენ ასევე შეგიძლიათ გამოიყენოთ ლეპტოპი და უბრალოდ წაიკითხოთ ისინი სერიულ მონიტორზე)
  5. ესკიზი, რომელიც იყენებს სენსორს და აჩვენებს მნიშვნელობებს

უპირველეს ყოვლისა, თქვენ უნდა დააკავშიროთ თქვენი მოდულები და სენსორი თქვენს კონტროლერს. მე დავტოვებ LCD– ის რთულ ნაწილს, რომ მოძებნოთ ინტერნეტი და მე გეტყვით, თუ როგორ უნდა დააკავშიროთ სენსორი.

ჩვეულებრივ, ამ სენსორებს აქვთ სამი ფერის მავთული: შავი, წითელი, ყვითელი. პირველი ორი ენერგეტიკისთვისაა და მესამე მონაცემებისთვის. შეაერთეთ შავი GNN– სთან, წითელი Vcc– სთან (5V) და ყვითელი ანალოგიურ შეყვანაზე, ვთქვათ A0.

ახლა დააკავშირეთ წინააღმდეგობა ყვითელსა და წითელს შორის, რათა დასრულდეს კავშირები.

შეაერთეთ ასევე LCD (მე ვთავაზობ უბრალო 16x2 LCD- ს i2c კავშირით, სულ 4 მავთულის გამოსაყენებლად) და თქვენ დაამთავრეთ მავთულები და კაბელები.

ახლა ესკიზი არის ძალიან მარტივი:

#მოიცავს "OneWire.h"

#მოიცავს "DallasTemperature.h" #განსაზღვრეთ ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1); #მოიცავს "LiquidCrystal_I2C.h"

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

void setup () {lcd.init (); lcd. განათება (); სენსორი 1.დაწყება (); sensor1.set რეზოლუცია (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

როგორც ხედავთ, ჩვენ ვიყენებთ დალასის ტემპერატურის ბიბლიოთეკას და LCD ეკრანს i2c კავშირით.

დაყენებისას ჩვენ გამოვყოფთ LCD- ს და სენსორს და მარყუჟში ჩვენ უბრალოდ ვითხოვთ ტემპერატურას და ვინახავთ მნიშვნელობას ცვლადი RawValue- ის შიგნით, რომ გამოვაჩინოთ იგი LCD- ზე.

თუ გსურთ უფრო მარტივი გახადოთ, გამოიყენეთ სერიული მონიტორი შემდეგი ესკიზით

#მოიცავს "Wire.h" #მოიცავს "OneWire.h" #მოიცავს "DallasTemperature.h" #განსაზღვრეთ ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1);

float RawValue = 0;

void setup () {

დაგვიანება (1000); სერიული.დაწყება (9600); სენსორი 1.დაწყება (); sensor1.set რეზოლუცია (11);

}

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

ახლა გამომყევით სენსორის დაკალიბრების პროექტის ძირითად ნაწილში.

ნაბიჯი 2: ორი პუნქტის კალიბრაცია

ორი პუნქტიანი კალიბრაცია
ორი პუნქტიანი კალიბრაცია
ორი პუნქტიანი კალიბრაცია
ორი პუნქტიანი კალიბრაცია
ორი პუნქტიანი კალიბრაცია
ორი პუნქტიანი კალიბრაცია

რაღაც უნდა იცოდე ჯერ

თერმო-სენსორის დასაკალიბრებლად, თქვენ უნდა გაზომოთ ის, რისი ტემპერატურაც იცით. მარტივი გზა ამის გაკეთება სახლში არის მდუღარე წყლის და დნობის ყინულის აბაზანის გამოყენება, რომელსაც ასევე უწოდებენ "სამმაგი წერტილის" აბაზანას. ამ შემთხვევებში ჩვენ ვიცით, რომ ზღვის დონიდან წყალი ადუღდება 100 ° C ტემპერატურაზე. გაითვალისწინეთ, რომ ზუსტი გაზომვისთვის თქვენ უნდა იცოდეთ თქვენი სიმაღლე და გამოთვალოთ დუღილის შესაბამისი ტემპერატურა იქ.

შეგიძლიათ შეამოწმოთ აქ!

მართალი გითხრათ, თქვენ უნდა შეამოწმოთ ატმოსფერული წნევა და არა სიმაღლე. მაგრამ ეს გზა საკმაოდ ზუსტია.

სამმაგი წერტილოვანი აბაზანა, ან ყინულის აბაზანა, არის ტემპერატურა, რომლის დროსაც წყალი არსებობს სამ მდგომარეობაში მყარი, თხევადი და გაზის, რომ ტემპერატურა 0, 01 ° C. ჩვენ გამოვიყენებთ, გასამარტივებლად, 0 ° C- ს.

სენსორის წაკითხვის მნიშვნელობისა და მნიშვნელობის შესახებ ჩვენ ვიცით, რომ ჩვენ შეგვიძლია DS18B20- ის ნედლეულის ღირებულება შეცვალოთ რაღაც უფრო სწორად.

შენიშვნა: თქვენ ასევე შეგიძლიათ გამოიყენოთ მეტი ტემპერატურა სენსორის დასაკალიბრებლად, უბრალოდ ჩასვით იგი სხვა ნივთიერებაში, რომლის დუღილის წერტილიც იცით, როგორიცაა ეთერი (35 ° C), პენტანი (36, 1 ° C), აცეტონი (56 ° C) ან ეთანოლი (78, 37 ° C), მაგრამ ეს მდუღარე ნივთიერებები წარმოქმნიან მაღალ აალებად აირებს! ასე რომ ნუ გააკეთებ!

მდუღარე წყალი:

ჩაასხით წყალი ქვაბში და გაათბეთ სანამ არ ადუღდება (გაზის ბუშტუკები ვითარდება და წყალი თავისთავად აგიჟებს). ჩაუშვით სენსორი იქ, სადაც ის არაფერს ეხება წყლის გარდა. დაელოდეთ რამდენიმე წუთს და წაიკითხეთ LCD ან სერიული მონიტორი

ტემპერატურა უნდა დარჩეს იგივე მინიმუმ ერთი წუთის განმავლობაში. თუ ასეა, ჩაწერეთ ეს მნიშვნელობა. ეს არის თქვენი: მაღალი ღირებულება.

სამადგილიანი აბაზანა:

ახლა აიღეთ დიდი ჭიქა (თქვენ არ გჭირდებათ არაფერი უზარმაზარი და არც ქოთანი) და შეავსეთ იგი საზღვრამდე ყინულის კუბებით. შეეცადეთ გამოიყენოთ მცირე ზომის ყინულის კუბურები. ახლა შეავსეთ ჭიქის 80% ცივი წყლით. შეავსეთ ყინული, თუ ბერკეტი ცდილობს დაცემას.

ახლა ჩადეთ სენსორი წყლის/ყინულის ნივთში და დაელოდეთ ერთნახევარი წუთი. წაიკითხეთ ტემპერატურა, რომელიც უნდა დარჩეს იგივე მინიმუმ 30 წამის განმავლობაში. თუ ასეა, ჩაწერეთ, რომ ეს თქვენი RawLow ღირებულებაა.

ნაბიჯი 3: გამოიყენეთ ღირებულებები, რომლებსაც მიიღებთ სწორი გზით

ასე რომ, ახლა თქვენ გაქვთ რამდენიმე მნიშვნელოვანი მნიშვნელობა:

  • ნედლი მაღალი
  • RawLow
  • მითითება მაღალი
  • ReferenceLow

მითითებების მნიშვნელობა აშკარად არის 99.9 ° C მდუღარე წყალში (ჩემს სიმაღლეზე 22 მ) და 0 ° C დნობის ყინულის აბაზანისთვის. ახლა გამოთვალეთ ამ მნიშვნელობების დიაპაზონი:

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

ახლა თქვენ მზად ხართ გამოიყენოთ ეს სენსორი ნებისმიერ სხვა პროექტში, დარწმუნებული ხართ, რომ ის სწორ გაზომვას მოგცემთ. Როგორ? იმ მნიშვნელობის გამოყენებით, რაც აქ მიიღეთ პროექტში თქვენ შექმნით ამ სენსორით.

თქვენს მომავალ პროექტში თქვენ უნდა გამოიყენოთ ის ღირებულებები, რომლებიც წაიკითხეთ ამ ერთში და მე გირჩევთ ამის გაკეთებას იგივე სახელების გამოყენებით, რაც მე აქ გამოვიყენე.

გამოაცხადეთ ცვლადები void setup () განყოფილებამდე ზუსტად ასე:

float RawHigh = 99.6; float RawLow = 0.5; float ReferenceHigh = 99.9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

გარდა ამისა, ყოველ ჯერზე, როდესაც გამოიყენებთ სენსორს, შეგიძლიათ გამოიყენოთ შემდეგი ფორმულა CorrectedValue- ს გამოსათვლელად:

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

RawValue აშკარად არის სენსორის კითხვა.

Ის არის!

ახლა თქვენ იცით, როგორ დააკალიბროთ თქვენი DS18B20 სენსორი ან ნებისმიერი სხვა სენსორი, რომელსაც გამოიყენებთ! Გაერთე!

გირჩევთ: