Სარჩევი:

DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით: 3 ნაბიჯი
DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით: 3 ნაბიჯი

ვიდეო: DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით: 3 ნაბიჯი

ვიდეო: DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით: 3 ნაბიჯი
ვიდეო: 12v 90 ამპერიანი მანქანის ალტერნატორი თვითაღელვებულ გენერატორამდე დიოდის გამოყენებით 2024, ივლისი
Anonim
DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით
DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით
DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით
DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით

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

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

უბრალოდ დიოდის წინა ძაბვის ვარდნა (რომელიც არის ერთი PN- კავშირი) იცვლება მასში მიმდინარე დენის ოდენობის ცვლილებით, ასევე დიოდური ტემპერატურის ცვლილებისას ძაბვის ვარდნა შეიცვლება (ტემპერატურის მატებასთან ერთად, წინ ვარდნა მცირდება მნიშვნელობით (1.0 მილივოლტი 2.0 მილივოლტამდე სილიციუმის დიოდებისთვის და 2.5 მილივოლტი გერმანიუმის დიოდებისთვის).

ასე რომ, დიოდის მეშვეობით მუდმივი დენის გავლით წინსვლის ძაბვის ვარდნა ახლა მხოლოდ დიოდური ტემპერატურის მიხედვით უნდა განსხვავდებოდეს. ჩვენ უბრალოდ ახლა უნდა გავზომოთ დიოდის ძაბვის ძაბვა, გამოვიყენოთ რამდენიმე მარტივი განტოლება და ვოილი - აქ არის თქვენი ტემპერატურის სენსორი !!!

მარაგები

1 - 1n4007 დიოდი #12 - 1 კომის რეზისტორი #13 - არდუინოს დაფა

ნაბიჯი 1: წრიული დიაგრამა

Წრიული დიაგრამა
Წრიული დიაგრამა

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

1 კილოგრამიან Ohm რეზისტენტმა 5V მიწოდებით უნდა გამოიწვიოს 4 მილიამპერიანი დიოდური დენი, რაც საკმარისია ამ მიზნისთვის. მე (დიოდი) = VCC / (სერია + რდიოდი)

ნაბიჯი 2: კოდირება

ჩვენ უნდა გვახსოვდეს, რომ არსებობს რამდენიმე მნიშვნელობა, რომელიც უნდა შეიცვალოს კოდში უკეთესი შედეგების მისაღებად, როგორიცაა:

1 - VCC_Voltage: როგორც analogRead () მნიშვნელობა დამოკიდებულია ATmega ჩიპის VCC- ზე, მაშინ ჩვენ უნდა დავამატოთ ის განტოლებას არდუინოს დაფაზე გაზომვის შემდეგ.

2 - V_OLD_0_C: გამოყენებული დიოდის წინამორბედი ძაბვის ვარდნა 4 mA დენზე და ტემპერატურა 0 გრადუსი ცელსიუსზე

3 - ტემპერატურის_კოეფიციენტი: თქვენი დიოდის ტემპერატურის გრადიენტი (უმჯობესია მიიღოთ მონაცემთა ცხრილიდან) ან შეგიძლიათ გაზომოთ იგი ამ განტოლების გამოყენებით: Vnew - Vold = K (Tnew - ნათქვამი)

სად:

Vnew = ახლად გაზომილი ვარდნის ძაბვა დიოდის გათბობის შემდეგ

ვოლდი = იზომება ვარდნის ძაბვა ოთახის ზოგიერთ ტემპერატურაზე

Tnew = ტემპერატურა, სადაც დიოდი გაცხელდა

მითხრა = ძველი ოთახის ტემპერატურა, რომელზეც ვოლდი იზომებოდა

K = ტემპერატურა_კოეფიციენტი (უარყოფითი მნიშვნელობა მერყეობს -1.0 -დან -2.5 მილივოლტამდე) საბოლოოდ ახლა შეგიძლიათ ატვირთოთ კოდი და მიიღოთ ტემპერატურის შედეგები.

#განსაზღვრეთ Sens_Pin A0 // PA0 STM32F103C8 დაფისთვის

ორმაგი V_OLD_0_C = 690.0; // 690 mV წინსვლა ძაბვა 0 ცელსიუსზე 4 mA საცდელი დენის დროს

ორმაგი V_NEW = 0; // ახალი წინსვლის ძაბვა ოთახის ტემპერატურაზე 4 mA საცდელი დენის ორმაგი ტემპერატურა = 0.0; // ოთახის გამოთვლილი ტემპერატურა ორმაგი ტემპერატურა_კოეფიციენტი = -1.6; //-1.6 მვ ცვლა ცელსიუს გრადუსზე (-2.5 გერმანიუმის დიოდებისთვის), უკეთესია დიოდის მონაცემთა ფურცლიდან ორმაგი VCC_Voltage = 5010.0; // არდუინოს 5V რკინაზე არსებული ძაბვა მილივოლტებში (საჭიროა უკეთესი სიზუსტისთვის) (3300.0 stm32- ისთვის)

void setup () {

// განათავსეთ თქვენი დაყენების კოდი აქ, ერთხელ გასაშვებად: pinMode (Sens_Pin, INPUT); სერიული.დაწყება (9600); }

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

// განათავსეთ თქვენი მთავარი კოდი აქ განმეორებით გასაშვებად: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // გაყავით 4.0 -ზე თუ იყენებთ 12 ბიტიან ADC ტემპერატურას = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

Serial.print (ტემპერატურა); Serial.println ("C");

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

}

ნაბიჯი 3: უკეთესი ღირებულებების მიღება

უკეთესი ღირებულებების მიღება
უკეთესი ღირებულებების მიღება
უკეთესი ღირებულებების მიღება
უკეთესი ღირებულებების მიღება

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

თქვენ ხედავთ, რომ შესამჩნევი შეცდომაა კითხვებში, რომელსაც შეუძლია მიაღწიოს 3 ან 4 გრადუს ცელსიუსს, საიდან მოდის ეს შეცდომა?

1 - შეიძლება დაგჭირდეთ წინა ნაბიჯში ნახსენები ცვლადების შეცვლა

2 - არდუინოს ADC რეზოლუცია უფრო დაბალია, ვიდრე ჩვენ გვჭირდება მცირე ძაბვის სხვაობის გამოსავლენად

3 - არდუინოს ძაბვის მითითება (5V) ძალიან მაღალია დიოდის ამ მცირე ძაბვის ცვლილებისთვის

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

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

1 - დაამატეთ რამდენიმე გამაძლიერებელი და გაფილტვრის ეტაპი op -amps გამოყენებით, როგორც ამ ბმულში 2 - გამოიყენეთ ქვედა შიდა ანალოგური საცნობარო კონტროლერი, როგორც STM32F103C8 დაფები 3.3 ვოლტის ანალოგური საცნობარო ძაბვით (იხ. პუნქტი 4) 3 - გამოიყენეთ შიდა 1.1 V ანალოგური მითითება arduino მაგრამ გაითვალისწინეთ, რომ 1.1 ვოლტზე მეტს ვერ შეაერთებთ arduino– ს ნებისმიერ ანალოგიურ ქინძისთავთან.

თქვენ შეგიძლიათ დაამატოთ ეს ხაზი დაყენების ფუნქციაში:

analogReference (INTERNAL);

4 - გამოიყენეთ მიკროკონტროლი, რომელსაც აქვს უმაღლესი რეზოლუციის ADC, როგორც STM32F103C8, რომელსაც აქვს 12 ბიტიანი ADC გარჩევადობა.

STM32F103C8 დაყენება მოგცემთ საკმაოდ ზუსტ შედეგს, რადგან მას აქვს უმაღლესი 12-ბიტიანი ADC და დაბალი 3.3V ანალოგური საცნობარო მნიშვნელობა (დაახლოებით 0.8 მვ/კითხვა)

აბა, ესაა !!: D

გირჩევთ: