Სარჩევი:

ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით: 8 ნაბიჯი
ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით: 8 ნაბიჯი

ვიდეო: ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით: 8 ნაბიჯი

ვიდეო: ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით: 8 ნაბიჯი
ვიდეო: სიცხის გაზომვა 2024, ივლისი
Anonim
ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით
ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით

გაზომეთ სითხის ტემპერატურა XinaBox– დან ანალოგიური შეყვანის xChip– ისა და თერმისტორის ზონდის გამოყენებით.

ნაბიჯი 1: ნივთები, რომლებიც გამოიყენება ამ პროექტში

აპარატურის კომპონენტები

  • XinaBox SX02 x 1 xChip ანალოგური შეყვანის სენსორი ADC– ით
  • XinaBox CC01 x 1 xChip ვერსია Arduino Uno- ს საფუძველზე ATmega328P
  • რეზისტორი 10k ohm x 1 10k რეზისტორი ძაბვის გამყოფი ქსელისთვის
  • Thermistor Probe x 1 10k 25 ° C NTC წყალგაუმტარი თერმისტორის ზონდი
  • XinaBox IP01 x 1 xChip USB პროგრამისტი დაფუძნებული FT232R From FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 პიქსელიანი OLED ჩვენება
  • XinaBox XC10 x 4 xChip ავტობუსის კონექტორები
  • XinaBox PU01 x 1 xChip USB (ტიპი A) კვების წყარო
  • 5V USB კვების ბლოკი x 1 დენის ბანკი ან მსგავსი

პროგრამული უზრუნველყოფის პროგრამები და ონლაინ სერვისები

Arduino IDE

ხელის იარაღები და დამზადების მანქანები

Flathead Screwdriver გამკაცრება ან loosen ხრახნიანი ტერმინალის clamp

ნაბიჯი 2: ისტორია

შესავალი

მინდოდა თხევადი ტემპერატურის გაზომვა მარტივი თერმომეტრის შექმნით. XinaBox xChips– ის გამოყენებით მე შემეძლო ამის გაკეთება შედარებით სიმარტივით. მე გამოვიყენე SX02 ანალოგი xChip, რომელიც იღებს 0 - 3.3V, CC01 xChip დაფუძნებულია ATmega328P და OD01 OLED ეკრანზე xChip, რომ დავინახო ჩემი ტემპერატურის შედეგები.

თერმისტორი გაზომავს წყლის ტემპერატურას ჭიქაში

ნაბიჯი 3: ჩამოტვირთეთ საჭირო ფაილები

თქვენ დაგჭირდებათ შემდეგი ბიბლიოთეკები და პროგრამული უზრუნველყოფა:

  • xSX0X- ანალოგური შეყვანის სენსორების ბიბლიოთეკა
  • xOD01 - OLED ჩვენების ბიბლიოთეკა
  • Arduino IDE - განვითარების გარემო

დააწკაპუნეთ აქ, რომ ნახოთ როგორ დააინსტალიროთ ბიბლიოთეკები.

მას შემდეგ რაც დააინსტალირეთ Arduino IDE, გახსენით იგი და შეარჩიეთ "Arduino Pro ან Pro Mini" როგორც დაფა თქვენი პროგრამის ასატვირთად. ასევე დარწმუნდით, რომ არჩეულია ATmega328P (5V, 16MHz) პროცესორი. იხილეთ სურათი ქვემოთ.

შეარჩიეთ Arduino Pro ან Pro Mini დაფა და ATmega328P (5V, 16MHz) პროცესორი

ნაბიჯი 4: შეკრება

დააწკაპუნეთ პროგრამისტი xChip, IP01 და ATmega328P დაფუძნებული CC01 xChip ერთად XC10 ავტობუსის კონექტორების გამოყენებით, როგორც ნაჩვენებია ქვემოთ. იმისათვის, რომ ატვირთოთ CC01– ზე, თქვენ უნდა განათავსოთ კონცენტრატორები შესაბამისად „A“და „DCE“პოზიციებზე.

IP01 და CC01 დააწკაპუნეთ ერთად

შემდეგი, აიღეთ თქვენი 10kΩ რეზისტორი და ერთი ბოლო დაახურეთ ტერმინალში "IN" და მეორე ბოლო მიწურ ტერმინალში, "GND", SX02- ზე. მიჰყევით თერმისტორის ზონდს და შეაერთეთ ერთი ბოლო Vcc- ით, "3.3V", ხოლო მეორე ბოლო "IN" ტერმინალში. იხილეთ გრაფიკა ქვემოთ.

SX02 კავშირები

ახლა შეაერთეთ OD01 და SX02 CC01– თან, უბრალოდ დააწკაპუნეთ მათ ერთად XC10 ავტობუსის კონექტორების გამოყენებით. Იხილეთ ქვემოთ. ვერცხლის ელემენტი სურათზე არის თერმისტორის ზონდი.

სრული განყოფილება პროგრამირებისთვის

ნაბიჯი 5: პროგრამა

ჩადეთ მოწყობილობა კომპიუტერის USB პორტში. ჩამოტვირთეთ ან დააკოპირეთ და ჩასვით ქვემოთ კოდი თქვენს Arduino IDE- ში. შეადგინეთ და ატვირთეთ კოდი თქვენს დაფაზე. ატვირთვის შემდეგ თქვენმა პროგრამამ უნდა დაიწყოს მუშაობა. თუ ზონდი ოთახის ტემპერატურის პირობებშია, OLED ეკრანზე უნდა დაიცვან ± 25 ° C, როგორც ქვემოთ მოცემულია.

ატვირთვის შემდეგ დააკვირდით ოთახის ტემპერატურას OLED ეკრანზე

ნაბიჯი 6: პორტატული თერმომეტრი

ამოიღეთ მოწყობილობა კომპიუტერიდან. დაიშალეთ დანაყოფი და ხელახლა დააინსტალირეთ PU01 გამოყენებით IP01 ნაცვლად. ახლა აიღეთ თქვენი 5V USB პორტატული კვების ბლოკი, როგორიცაა დენის ბანკი ან მსგავსი და ჩადეთ მასში ახალი ასამბლეა. ახლა თქვენ გაქვთ საკუთარი მაგარი პორტატული თერმომეტრი კარგი სიზუსტით. იხილეთ ყდის სურათი, რომ ნახოთ ის ოპერაციაში. ჭიქაში გავზომე ცხელი წყალი. ქვემოთ მოყვანილი სურათები აჩვენებს თქვენს სრულ ერთეულს.

სრული ერთეული, რომელიც შეიცავს CC01, OD01, SX02 და PU02.

ნაბიჯი 7: დასკვნა

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

ნაბიჯი 8: კოდი

ThermTemp_Display.ino Arduino კვლევის თერმისტორები, რათა გაიგოს გამოთვლები კოდში.

#მოიცავს // შეიცავდეს ძირითად ბიბლიოთეკას xCHIP– ებისთვის

#მოიცავს // მოიცავს ანალოგური შეყვანის სენსორების ბიბლიოთეკას #მოიცავს // მოიცავს OLED ჩვენების ბიბლიოთეკას #მოიცავს // მოიცავს მათემატიკის ფუნქციებს #განსაზღვრეთ C_Kelvin 273.15 // კელვინიდან ცელსიუსზე გადასაყვანად #განსაზღვრეთ სერიები_res 10000 // სერიის რეზისტორის მნიშვნელობა ოჰმში #განსაზღვრეთ B 3950 // B პარამეტრი თერმისტორისთვის #განსაზღვრეთ ოთახის_ ტემპერატურა K 298.15 // ოთახის ტემპერატურა კელვინში #განსაზღვრეთ ოთახი_res 10000 // წინააღმდეგობა ოთახის ტემპერატურაზე ohms #განსაზღვრეთ vcc 3.3 // ძაბვის მიწოდება xSX01 SX01 (0x55); // დააყენეთ i2c მისამართი float ძაბვა; // ცვლადი, რომელიც შეიცავს გაზომილ ძაბვას (0 - 3.3 ვ) float therm_res; // თერმისტორის წინააღმდეგობა float act_tempK; // ფაქტობრივი ტემპერატურა kelvin float act_tempC; // ფაქტობრივი ტემპერატურა ცელსიუსში void setup () {// განათავსეთ თქვენი კონფიგურაციის კოდი აქ, ერთხელ გასაშვებად: // ცვლადების ინიციალიზაცია 0 ძაბვაზე = 0; თერმული_რეს = 0; act_tempK = 0; act_tempC = 0; // სერიული კომუნიკაციის დაწყება Serial.begin (115200); // დაიწყოს i2c საკომუნიკაციო Wire.begin (); // დაიწყეთ ანალოგური შეყვანის სენსორი SX01. დაწყება (); // OLED ჩვენების დაწყება OLED.begin (); // ეკრანის გასუფთავება OD01.clear (); // დაგვიანების ნორმალიზების დაგვიანება (1000); } void loop () {// განათავსეთ თქვენი მთავარი კოდი აქ, განმეორებით გასაშვებად: // წაიკითხეთ ძაბვა SX01.poll (); // შეინახეთ არასტაბილური ძაბვა = SX01.getVoltage (); // გამოთვალეთ თერმისტორის წინააღმდეგობა therm_res = ((vcc * series_res) / ძაბვა) - სერიის_res; // გამოთვალეთ ფაქტობრივი ტემპერატურა კელვინში act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // გადააქციე კელვინი ცელსიუსზე act_tempC = act_tempK - C_Kelvin; // დაბეჭდვის ტემპერატურა OLED ეკრანზე // ხელით ფორმატირება ცენტრში OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01. ბეჭდვა (act_tempC); OD01. ბეჭდვა ("C"); OD01.println (""); დაგვიანება (2000); // ჩვენების განახლება ყოველ 2 წამში}

გირჩევთ: