Სარჩევი:
ვიდეო: DIY ტემპერატურის სენსორი ერთი დიოდის გამოყენებით: 3 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ასე რომ, როგორც ერთი ფაქტი 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
გირჩევთ:
TMP36 ტემპერატურის სენსორი და LCD ეკრანი Arduino– ს გამოყენებით (Tinkercad): 7 ნაბიჯი
TMP36 ტემპერატურის სენსორი და LCD ეკრანი Arduino– ს გამოყენებით (Tinkercad): გამარჯობა ყველას! ჩვენ ვართ უნივერსიტეტი Tun Hussein Hussein Onn მალაიზიიდან (UTHM), რომელიც ახორციელებს პროექტს იმის დემონსტრირებისთვის, თუ როგორ შეგვიძლია გამოვხატოთ ტემპერატურის სენსორი, LCD და Arduino Tinkercad– ის გამოყენებით UQD0801 (Robocon 1) ჩვენი სასწავლო გეგმის ნაწილად
გაკვეთილი: როგორ გააკეთოთ მარტივი ტემპერატურის სენსორი DS18B20 და Arduino UNO გამოყენებით: 3 ნაბიჯი
გაკვეთილი: როგორ გააკეთოთ მარტივი ტემპერატურის სენსორი DS18B20 და Arduino UNO გამოყენებით: აღწერა: ეს გაკვეთილი გაჩვენებთ რამდენიმე მარტივ ნაბიჯს, თუ როგორ გახადოთ ტემპერატურის სენსორი ფუნქციონალური. სულ რამდენიმე წუთი დასჭირდება, რომ ის თქვენს პროექტზე იყოს ჭეშმარიტი. Წარმატებები ! DS18B20 ციფრული თერმომეტრი უზრუნველყოფს 9-ბიტიანი და 12-ბიტიანი ცელსიუს ტემპერატურას
ტემპერატურის კითხვა LM35 ტემპერატურის სენსორის გამოყენებით Arduino Uno– ით: 4 ნაბიჯი
ტემპერატურის კითხვა LM35 ტემპერატურის სენსორის გამოყენებით Arduino Uno– ით: გამარჯობა ბიჭებო ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ LM35 არდუინოსთან ერთად. Lm35 არის ტემპერატურის სენსორი, რომელსაც შეუძლია წაიკითხოს ტემპერატურის მნიშვნელობები -55 ° C– დან 150 ° C– მდე. ეს არის 3 ტერმინალური მოწყობილობა, რომელიც უზრუნველყოფს ტემპერატურის პროპორციულ ანალოგიურ ძაბვას. მაღალი
ტემპერატურის სენსორი თერმისტორის გამოყენებით Arduino Uno– ით: 4 ნაბიჯი
ტემპერატურის სენსორი თერმისტორის გამოყენებით Arduino Uno: გამარჯობა ბიჭებო ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ თერმისტორი არდუინოსთან ერთად. თერმისტორი არის ძირითადად რეზისტორი, რომლის წინააღმდეგობაც იცვლება ტემპერატურის ცვალებადობით. ასე რომ, ჩვენ შეგვიძლია წავიკითხოთ მისი წინააღმდეგობა და მივიღოთ ტემპერატურა მისგან & თერმისტორი მე
შექმენით Apple HomeKit ტემპერატურის სენსორი (DHT22) მოწყობილობა RaspberryPI და DHT22 გამოყენებით: 11 ნაბიჯი
ააშენეთ Apple HomeKit ტემპერატურის სენსორი (DHT22) მოწყობილობა RaspberryPI და DHT22 გამოყენებით: მე ვეძებდი დაბალი ფასის ტემპერატურის / ტენიანობის სენსორს, რომელიც შემეძლო გამომეყენებინა იმის მონიტორინგი, რაც ხდება ჩემს მცოცავ სივრცეში, რადგან აღმოვაჩინე, რომ ამ გაზაფხულზე ძალიან სველი იყო. , და ბევრი ნესტიანი იყო. ამიტომ ვეძებდი გონივრულ ფასად სენსორს, რომლის პოვნა შემეძლო