Სარჩევი:

ტემპერატურის მონიტორინგი MCP9808 და Arduino Nano გამოყენებით: 4 ნაბიჯი
ტემპერატურის მონიტორინგი MCP9808 და Arduino Nano გამოყენებით: 4 ნაბიჯი

ვიდეო: ტემპერატურის მონიტორინგი MCP9808 და Arduino Nano გამოყენებით: 4 ნაბიჯი

ვიდეო: ტემპერატურის მონიტორინგი MCP9808 და Arduino Nano გამოყენებით: 4 ნაბიჯი
ვიდეო: მოდული 3 ტემპერატურის მონიტორინგი და დოკუმენტირება 2024, ნოემბერი
Anonim
Image
Image

MCP9808 არის უაღრესად ზუსტი ციფრული ტემპერატურის სენსორი ± 0.5 ° C I2C მინი მოდული. ისინი განასახიერებენ მომხმარებლის მიერ პროგრამირებადი რეგისტრებით, რომლებიც ხელს უწყობენ ტემპერატურის მგრძნობიარე პროგრამებს. MCP9808 მაღალი სიზუსტის ტემპერატურის სენსორი გახდა ინდუსტრიის სტანდარტი ფორმის ფაქტორისა და ინტელექტის თვალსაზრისით, რომელიც უზრუნველყოფს კალიბრირებულ, ხაზოვანი სენსორული სიგნალების ციფრულ, I2C ფორმატში.

ამ გაკვეთილში ნაჩვენებია MCP9808 სენსორული მოდულის ინტერფეისი არდუინო ნანოსთან. ტემპერატურის მნიშვნელობების წასაკითხად, ჩვენ გამოვიყენეთ ჟოლოს პი I2c ადაპტერით. ეს I2C ადაპტერი სენსორულ მოდულთან კავშირს ხდის ადვილი და საიმედო.

ნაბიჯი 1: საჭირო აპარატურა:

საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა

მასალები, რომლებიც ჩვენ გვჭირდება ჩვენი მიზნის მისაღწევად, მოიცავს შემდეგ ტექნიკურ კომპონენტებს:

1. MCP9808

2. არდუინო ნანო

3. I2C კაბელი

4. I2C ფარი არდუინო ნანოსთვის

ნაბიჯი 2: აპარატურის დაკავშირება:

აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება

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

MCP9808 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.

ყუთის გარეშე, დაფა კონფიგურირებულია I2C ინტერფეისისთვის, ამიტომ ჩვენ გირჩევთ გამოიყენოთ ეს კავშირი, თუ სხვაგვარად ხართ აგნოსტიკოსი. ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი მავთული!

მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.

ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.

ნაბიჯი 3: ტემპერატურის გაზომვის კოდი:

ტემპერატურის გაზომვის კოდი
ტემპერატურის გაზომვის კოდი

დავიწყოთ არდუინოს კოდით ახლა.

Arduino– სთან ერთად სენსორული მოდულის გამოყენებისას, ჩვენ მოიცავს Wire.h ბიბლიოთეკას. "მავთულის" ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და არდუინოს დაფას შორის i2c კომუნიკაციას.

მთელი Arduino კოდი მოცემულია მომხმარებლის კომფორტისთვის ქვემოთ:

#ჩართეთ

// MCP9808 I2C მისამართი არის 0x18 (24)

#განსაზღვრეთ Addr 0x18

ბათილად დაყენება ()

{

// I2C კომუნიკაციის ინიციალიზაცია, როგორც MASTER

Wire.begin ();

// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud განაკვეთი = 9600

სერიული.დაწყება (9600);

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// კონფიგურაციის რეგისტრის არჩევა

Wire.write (0x01);

// კონვერტაციის უწყვეტი რეჟიმი, Power-up default

Wire.write (0x00);

Wire.write (0x00);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ რეზოლუციის რეგისტრი

Wire.write (0x08);

// რეზოლუცია = +0.0625 / C

Wire.write (0x03);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

}

ბათილი მარყუჟი ()

{

ხელმოუწერელი int მონაცემები [2];

// იწყებს I2C კომუნიკაციას

Wire.beginTransmission (Addr);

// მონაცემთა რეგისტრაციის არჩევა

Wire.write (0x05);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// მოითხოვეთ მონაცემების 2 ბაიტი

მავთული. მოთხოვნა (Addr, 2);

// წაიკითხეთ 2 ბაიტი მონაცემები

// ტემპი MSB, ტემპი LSB

თუ (Wire. Available () == 2)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

}

// გადააკეთეთ მონაცემები 13 ბიტიანი

int temp = ((მონაცემები [0] & 0x1F) * 256 + მონაცემები [1]);

თუ (ტემპერატურა> 4095)

{

ტემპერატურა -= 8192;

}

float cTemp = temp * 0.0625;

float fTemp = cTemp * 1.8 + 32;

// მონაცემების გამოტანა ეკრანზე

Serial.print ("ტემპერატურა ცელსიუსში:");

Serial.println (cTemp);

Serial.println ("C");

Serial.print ("ტემპერატურა ფარენჰეიტში:");

Serial.println (fTemp);

Serial.println ("F");

დაგვიანება (500);

}

მავთულის ბიბლიოთეკაში Wire.write () და Wire.read () გამოიყენება ბრძანებების დასაწერად და სენსორის გამომავალი წაკითხვისთვის.

Serial.print () და Serial.println () გამოიყენება Arduino IDE– ის სერიულ მონიტორზე სენსორის გამომუშავების საჩვენებლად.

სენსორის გამოსავალი ნაჩვენებია ზემოთ მოცემულ სურათზე.

ნაბიჯი 4: პროგრამები:

პროგრამები
პროგრამები

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

გირჩევთ: