Სარჩევი:

გაუმართავი ტემპერატურის სენსორის ქსელის კონტროლერი: 8 ნაბიჯი
გაუმართავი ტემპერატურის სენსორის ქსელის კონტროლერი: 8 ნაბიჯი

ვიდეო: გაუმართავი ტემპერატურის სენსორის ქსელის კონტროლერი: 8 ნაბიჯი

ვიდეო: გაუმართავი ტემპერატურის სენსორის ქსელის კონტროლერი: 8 ნაბიჯი
ვიდეო: გატეხილი თერმოსტატი - რა სიმპტომები ახასიათებს? ძრავა არ აღწევს სამუშაო ტემპერატურა 90° C 2024, ივლისი
Anonim
გაუმართავი ტემპერატურის სენსორის ქსელის კონტროლერი
გაუმართავი ტემპერატურის სენსორის ქსელის კონტროლერი

ეს ინსტრუქცია გიჩვენებთ თუ როგორ გადააკეთოთ Arduino Uno დაფა ერთ დანიშნულების კონტროლერად DS18B20 ტემპერატურის სენსორების კომპლექტისთვის, რომელსაც შეუძლია გაუმართავი სენსორების ავტომატური იზოლაცია.

კონტროლერს შეუძლია მართოს 8 -მდე სენსორი Arduino Uno– ით. (და ბევრად უფრო Arduino Mega– სთან ან მცირე პროგრამული მოდიფიკაციით.)

ნაბიჯი 1: ისტორია უკან…

რამდენიმე წლის წინ მე შევქმენი DS18B20 ტემპერატურის სენსორების ქსელი მამაჩემის სათბურში ჩემი pi- ზე დაფუძნებული გათბობის კონტროლერისთვის. სამწუხაროდ, კონტროლერის საიმედოობა სუსტი იყო სენსორების ხშირი გათიშვის გამო. მე ვცადე მრავალი დაყენება - პარაზიტული ძალა, პირდაპირი ენერგია, ქსელის დაკავშირება pi– სთან და ასევე დაკავშირება Atmega– ზე დაფუძნებულ პერსონალურ დაფაზე (რომლის მთავარი მიზანი იყო სარქველების ძრავების მართვა).

რაც უფრო უარესია, სენსორული ქსელის საიმედოობა ძირითადად ზამთრის ღამეს დაეცა, ხოლო ზაფხულში თითქმის არანაირი პრობლემა არ იყო! რა ჯანდაბა ხდება აქ?

იმის გასარკვევად, თუ რომელი სენსორი იწვევს პრობლემას, გაჩნდა საჭიროება მათი ჩართვა/გამორთვა სათითაოდ ან მათი ნებისმიერი კომბინაციის ჩართვის საჭიროება.

ნაბიჯი 2: როგორ მუშაობს

DS18B20 (ტემპერატურის სენსორი) იყენებს საკუთრების 1 მავთულის პროტოკოლს, რომელიც საშუალებას აძლევს მრავალ სენსორს გაუზიაროს საერთო მონაცემთა ბმული (ეს ერთი მავთული). ეს საერთო მონაცემთა ბმული დაკავშირებულია Arduino– ს GPIO– ს ერთ-ერთ პინთან და + 5 V– თან გამწევ რეზისტორის საშუალებით-არაჩვეულებრივი, ბევრი ინსტრუქცია ფარავს ამ კონფიგურაციას.

ხრიკი იმაში მდგომარეობს, რომ თითოეული სენსორის დენის დენები დაკავშირებულია საკუთარ (გამოყოფილი) GPIO ქინძისთავებთან, ასე რომ მათი ცალკე ჩართვა და გამორთვა შესაძლებელია. მაგალითად, თუ სენსორს აქვს Vcc ტყვიის მიერთება პინ #3 -თან და GND პინ #2 -თან, პინ #3 -ის HIGH- ზე დაყენება უზრუნველყოფს სენსორის სიმძლავრეს (გასაკვირი არ არის), ხოლო პინ #2 -ის LOW- მდე მიწას უზრუნველყოფს (მცირეოდენი სიურპრიზი მე). ორივე ქინძისთავის შეყვანის რეჟიმში დაყენება (თითქმის) მთლიანად გამოყოფს სენსორს და მის გაყვანილობას - რაც არ უნდა მოხდეს მისი მარცხი (მაგ. მალსახმობი) მის შიგნით, ის არ შეუშლის ხელს სხვებს.

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

გაითვალისწინეთ, რომ DS18B20 მოიხმარს 1, 5 mA– მდე, ხოლო ერთ Arduino pin– ს შეუძლია 40 mA– მდე წყაროს / ჩაძირვა, ამიტომ სრულიად უსაფრთხოა სენსორების ჩართვა პირდაპირ GPIO ქინძისთავებით.

ნაბიჯი 3: მასალა და ინსტრუმენტები

მასალა

  • 1 Arduino UNO დაფა
  • 3 ქალი ქინძისთავები: 1 × 4, 1 × 6 და 1 × 6 (ან უფრო გრძელი - მე დავჭრა მათ ერთი 1 × 40 სათაურიდან)
  • წებო
  • კუპერის მავთულის ნაჭერი (მინიმუმ 10 სმ)
  • საიზოლაციო ლენტი
  • გასაყიდი სახარჯო მასალები (მავთული, ნაკადი …)

ინსტრუმენტები

  • შედუღების მოწყობილობა (რკინა, დამჭერები, …)
  • მცირე ზომის ჭურჭელი

ნაბიჯი 4: ერთად გაასწორონ ყველაფერი

ერთად გაასწორონ ყველაფერი
ერთად გაასწორონ ყველაფერი

მიამაგრეთ მდედრი ქინძისთავები Arduino დაფის სათაურებზე:

  1. 1 × 4 სათაური "ანალოგური" პინის სათაურის გვერდით, გვერდით-გვერდით ქინძისთავებით A0 – A4
  2. 1 × 6 სათაური პირველი ციფრული პინის სათაურის გვერდით, გვერდითი გვერდითი ქინძისთავებით 2-7
  3. 1 × 6 სათაური მეორე ციფრული პინის სათაურის გვერდით, გვერდითი გვერდითი ქინძისთავებით 8–13

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

ნაბიჯი 5: მავთულის ნივთები ერთად

მავთულის ნივთები ერთად
მავთულის ნივთები ერთად
მავთულის ნივთები ერთად
მავთულის ნივთები ერთად

1 მავთულის ავტობუსის ხაზის გაყვანილობა:

  1. შეაერთეთ წებოვანი სათაურების ყველა ლიდერი "ციფრულ" მხარეს (2-13 ქინძის მიმდებარედ) მათზე შიშველი მავთულის ნაჭრის შედუღებით
  2. შეაერთეთ ამ მავთულის ბოლო SCL pin ტყვიასთან (A5- თან დაკავშირება)
  3. შეაერთეთ წებოვანი სათაურის ყველა ლიდერი "ანალოგურ" მხარეს (ქინძისთავები A0 – A3) მათზე შიშველი მავთულის ნაჭრის შედუღებით
  4. შეაერთეთ ამ მავთულის ბოლო A4 და A5 ლიდერებზე (მე გამოვიყენე A5 და A6, რადგან მაქვს დაფა, რომელსაც აქვს A6 და A7)
  5. შეაერთეთ 4k7 რეზისტორი ამ მავთულის მეორე ბოლოსა და +5 V ქინძისთავს შორის

შენიშვნები:

  • ქინძისთავები A0 – A5, მიუხედავად იმისა, რომ აღინიშნება „ანალოგი“, შეიძლება გამოყენებულ იქნას როგორც GPIO ციფრული ქინძისთავებიც.
  • SCL პინი "ციფრული" მხარის შიგნით არის დაკავშირებული A5 "ანალოგურ" მხარეს; დაკავშირებულია სათაურებთან, ეს ქმნის 1 მავთულის ავტობუსის ხაზს
  • A4 (გამოიყენება როგორც ანალოგური შეყვანა) ზომავს ავტობუსის ძაბვას დიაგნოსტიკური მიზნებისათვის. ეს არის მიზეზი, რის გამოც ის პირდაპირ არის დაკავშირებული ავტობუსთან.
  • მე გამოვიყენე A6 A4– ის ნაცვლად, რადგან მაქვს დაფა, რომელსაც აქვს A6 & A7; თავდაპირველად მინდოდა A7 გამოვიყენო, როგორც 1 მავთულის ავტობუსის სამაგისტრო, მაგრამ ეს ორი პინი არ შეიძლება იყოს ციფრული GPIO.
  • სენსორული კონექტორების არასწორი კავშირის თავიდან ასაცილებლად, თქვენ შეგიძლიათ გამოტოვოთ / გაწყვიტოთ გამოუყენებელი კონტაქტი (არ არის დაკავშირებული მავთულხლართებთან) თითოეული მამრობითი კონექტორიდან და ჩასვათ იგი შესაბამის ხვრელში წებოვანი სათაურის თავში.

ნაბიჯი 6: სენსორების დაკავშირება

სენსორების დაკავშირება
სენსორების დაკავშირება

თქვენ უბრალოდ შექმენით რვა 2 × 2 სოკეტი. თქვენ შეგიძლიათ შეაერთოთ და ააწყოთ 2 × 2 Dupont კონექტორი სენსორულ კაბელებზე და დააკავშიროთ ისინი ამ სოკეტებთან. პროგრამული უზრუნველყოფა ახდენს ქინძისთავების კონფიგურაციას ისე, რომ თუნდაც ქინძისთავები იყოს GND ქინძისთავები და უცნაური ქინძისთავები იყოს Vcc ქინძისთავები. თითოეული სენსორისთვის, Vcc pin არის მხოლოდ GND pin + 1. 2 × 2 სოკეტის დანარჩენი ორი ქინძისთავიდან (ერთ – ერთი იმ ორიდან წებოვანი და შედუღებული სათაურში) არის სენსორის მონაცემთა მავთულისთვის. არ აქვს მნიშვნელობა რომელი გამოიყენო.

ნაბიჯი 7: კონტროლერის პროგრამა

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

SerialThermometer ესკიზი მართავს კონტროლერს. მისი ნახვა შეგიძლიათ github– ზე. გახსენით და ატვირთეთ Arduino IDE გამოყენებით.

Ნაბიჯ - ნაბიჯ:

  1. გახსენით თქვენი Arduino IDE და დააინსტალირეთ DallasTemperature ბიბლიოთეკა და მისი ყველა დამოკიდებულება Sketch | ბიბლიოთეკის ჩართვა | მართეთ ბიბლიოთეკები.
  2. კლონირება git საცავი. თუ არ იცნობთ git- ს, გადმოწერეთ და გახსენით ეს zip ნებისმიერ ადგილას თქვენს კომპიუტერში.
  3. გახსენით SerialThermometer ესკიზი თქვენს Arduino IDE– ში.
  4. შეაერთეთ თქვენი შეცვლილი Arduino დაფა თქვენს კომპიუტერს USB კაბელის საშუალებით (სტანდარტული გზა)
  5. ატვირთეთ ესკიზი თქვენი Arduino IDE გამოყენებით
  6. გახსენით სერიული მონიტორი ინსტრუმენტების საშუალებით სერიული მონიტორი
  7. თქვენ უნდა ნახოთ დიაგნოსტიკური გამომავალი, რომელიც შეიცავს რამდენიმე ფიზიკურ გაზომვას, რასაც მოჰყვება ტემპერატურის მაჩვენებლები - თითოეული სენსორის სოკეტი ერთ ხაზზე. თუ სენსორების რაოდენობა განსხვავდება ცალკე ჩართვისას და ყველა ერთად ჩართვისას), დიაგნოსტიკური მარყუჟები მოგვარებამდე. მაგრამ არ ინერვიულოთ, ასევე დიაგნოსტიკა უზრუნველყოფს ტემპერატურის გაზომვას!

იხილეთ ანოტირებული სურათი უფრო დეტალური დიაგნოსტიკური გამომავლის შესახებ.

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

მე მაქვს ძლიერი შეგრძნება, რომ ჩემი სენსორული ქსელის გაუმართაობა გამოწვეული იყო ჩემი გრძელი გაყვანილობის მაღალი ტევადობით - თითოეული სენსორისთვის LIYY 314 (3 × 0, 14 მმ²) კაბელის დაახლოებით 10 მ. ჩემმა ექსპერიმენტებმა აჩვენა, რომ კომუნიკაცია იშლება, თუ 1 მავთულის ავტობუსსა და მიწას შორის არის 0.01 μF ტევადობა ან უფრო მაღალი, მე ვფიქრობ, რომ 4k7 გამწევ რეზისტორს არ შეუძლია ავტობუსი + 5 V– მდე სწრაფად გაიყვანოს პროტოკოლის ლიმიტების შესასრულებლად. რა

ჩემს კონფიგურაციაში ეს ხდება მაშინ, როდესაც 3 -ზე მეტი სენსორი ერთმანეთთან არის დაკავშირებული. შემდეგ, კონტროლერი შემოდის დიაგნოსტიკურ ციკლში, გაზომავს ტემპერატურის სენსორ-სენსორს (რაც ძალიან მაგარია …)

მაგრამ ასევე მე -5 სენსორი (28: ff: f2: 41: 51: 17: 04: 31) საკმაოდ ცუდად გამოიყურება (შესაძლოა არასწორი შედუღება), ასე რომ მე შემიძლია შემდგომი გამოკვლევა!

გირჩევთ: