Mundarija:

Bitta diod yordamida DIY harorat sensori: 3 qadam
Bitta diod yordamida DIY harorat sensori: 3 qadam

Video: Bitta diod yordamida DIY harorat sensori: 3 qadam

Video: Bitta diod yordamida DIY harorat sensori: 3 qadam
Video: Elektronika bilan 3 ta oddiy ixtiro 2024, Iyul
Anonim
Bitta diod yordamida DIY harorat sensori
Bitta diod yordamida DIY harorat sensori
Bitta diod yordamida DIY harorat sensori
Bitta diod yordamida DIY harorat sensori

Shunday qilib, PN-ulanishlar haqidagi dalillardan biri shundaki, ularning oldinga kuchlanish pasayishi o'tish oqimiga va o'tish haroratiga qarab o'zgaradi, biz bundan oddiy arzon harorat sensori yasash uchun foydalanamiz.

Ushbu sozlash, odatda, ko'pgina integral mikrosxemalarda, uning ichki harorati va ko'plab harorat sensori o'lchash uchun ishlatiladi, bu xususiyatga asoslangan mashhur LM35.

Faqat diodning oldinga kuchlanish pasayishi (bu bitta PN-ulanish), u orqali o'tadigan oqim miqdori o'zgarganda o'zgaradi, shuningdek diod harorati o'zgarganda kuchlanish pasayishi o'zgaradi (harorat oshishi bilan oldinga tomchi qiymatiga kamayadi (silikon diodlar uchun 1,0 milliVoltdan 2,0 milliVoltgacha va germaniy diodlari uchun 2,5 milliVoltgacha).

Shunday qilib, diod orqali doimiy oqim o'tishi bilan oldinga kuchlanish pasayishi faqat diodning haroratiga qarab o'zgarishi kerak, biz hozir diodning old kuchlanishini o'lchashimiz kerak, ba'zi oddiy tenglamalarni qo'llaymiz va voila bu erda sizning harorat sensori !!!

Ta'minotlar

1 - 1n4007 diod #12 - 1 Kohm qarshilik #13 - Arduino kartasi

1 -qadam: O'chirish diagrammasi

O'chirish diagrammasi
O'chirish diagrammasi

Sxemada ko'rib turganingizdek, bu juda oddiy. diodni oqim cheklovli qarshilik va barqaror kuchlanish manbai bilan ketma -ket ulab, biz doimiy doimiy oqim manbasini olishimiz mumkin, shuning uchun dioddagi o'lchangan kuchlanish faqat harorat o'zgarishi tufayli o'zgaradi. juda past oqim dioddan o'tib ketadi va diodda o'zini o'zi isitadi, bu juda yuqori qarshilik emas, shuning uchun oqim to'g'ridan -to'g'ri kuchlanish va harorat o'rtasidagi chiziqli aloqani saqlab turish uchun etarli emas.

5V kuchlanishli 1 kilo Ohmli rezistor 4 milliAmperli diodli oqimga olib kelishi kerak, bu buning uchun etarli qiymatdir. I (diod) = VCC / (Rseries + Rdiode)

2 -qadam: kodlash

Shuni yodda tutishimiz kerakki, yaxshiroq natijalarga erishish uchun kodni o'zgartirish kerak bo'ladi:

1 - VCC_Voltage: analogRead () qiymati ATmega chipining VCC ga bog'liq bo'lgani uchun, biz uni arduino taxtasida o'lchaganimizdan keyin uni tenglamaga qo'shishimiz kerak.

2 - V_OLD_0_C: ishlatilgan diodning 4 mA tok va 0 Tselsiy harorati bo'yicha oldingi kuchlanish pasayishi

3 - Temperature_Coefficient: sizning diodingizning harorat gradyani (ma'lumotlar jadvalidan olish yaxshiroq) yoki siz uni quyidagi tenglama yordamida o'lchashingiz mumkin: Vnew - Vold = K (Tnew - Told)

qayerda:

Vnew = diodni isitgandan keyin yangi o'lchangan tushish kuchlanishi

Vold = ba'zi xona haroratida tushgan kuchlanish

Tnew = diod qizdirilgan harorat

Told = Vold o'lchagan eski xona harorati

K = Temperature_Coefficient (manfiy qiymat -1.0 dan -2.5 milliVoltsgacha o'zgaradi) Nihoyat siz endi kodni yuklashingiz va harorat natijalarini olishingiz mumkin.

#define Sens_Pin A0 // PA0 STM32F103C8 kartasi uchun

er -xotin V_OLD_0_C = 690.0; // 690 mV Oldinga kuchlanish 0 Selsiyda 4 mA sinov oqimida

er -xotin V_NEW = 0; // Xona haroratida yangi oldinga kuchlanish 4 mA sinov oqimi er -xotin Harorat = 0,0; // Xona hisoblangan harorat ikki baravar Temperature_Coefficient = -1.6; Tselsiy bo'yicha har bir darajaga //-1,6 mV o'zgarishi (germaniy diodlari uchun -2,5), diodli ma'lumotlar varag'idan ikki barobar yaxshiroq VCC_Voltage = 5010.0; // Arduino 5V temir yo'lida milliVolts kuchlanish (aniqroq aniqlik uchun zarur) (stm32 uchun 3300.0)

bo'sh o'rnatish () {

// sozlash kodini bir marta ishga tushirish uchun bu erga qo'ying: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {

// asosiy kodni bu erga qayta -qayta ishga tushirish uchun qo'ying: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // agar siz 12 bitli ADC haroratidan foydalanayotgan bo'lsangiz, 4.0 ga bo'ling = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

Seriyali bosma (harorat); Serial.println ("C");

kechikish (500);

}

3 -qadam: yaxshiroq qadriyatlarga erishish

Yaxshiroq qadriyatlarga ega bo'lish
Yaxshiroq qadriyatlarga ega bo'lish
Yaxshiroq qadriyatlarga ega bo'lish
Yaxshiroq qadriyatlarga ega bo'lish

O'ylaymanki, loyihani amalga oshirayotganda yoningizda ishonchli harorat o'lchash moslamasi bo'lishi maqsadga muvofiqdir.

3 yoki 4 daraja Selsiyga yetishi mumkin bo'lgan o'qishda sezilarli xato borligini ko'rishingiz mumkin, bu xato qayerdan?

1 - oldingi qadamda aytib o'tilgan o'zgaruvchilarni o'zgartirish kerak bo'lishi mumkin

2 - arduino -ning ADC rezolyutsiyasi kichik kuchlanish farqini aniqlashimiz kerak bo'lganidan past

3 - arduino (5V) kuchlanish moslamasi dioddagi kichik kuchlanish o'zgarishi uchun juda yuqori

Agar siz ushbu sozlamani harorat sensori sifatida ishlatmoqchi bo'lsangiz, shuni bilishingiz kerakki, u arzon va qulay bo'lsa -da, bu to'g'ri emas, lekin u sizning tizimingizning harorati haqida juda yaxshi tasavvur berishi mumkin. PCB yoki ishlaydigan dvigatelga o'rnatilgan …

Bu ko'rsatma mumkin bo'lgan eng kam miqdordagi komponentlardan foydalanishni nazarda tutadi, lekin agar siz ushbu g'oyadan eng aniq natijalarni olishni istasangiz, ba'zi o'zgarishlarni amalga oshirishingiz mumkin:

1 - op -amper yordamida ba'zi kuchaytirgichlar va filtrlash bosqichlarini qo'shish2 - pastroq analog analog mos yozuvlar tekshirgichidan STM32F103C8 platalari sifatida 3,3 voltli analog mos yozuvlar kuchlanishli (4 -bandga qarang) 3 - ichki 1.1 V analog mos yozuvlar arduino, lekin shuni bilingki, siz 1,1 voltdan ortiq arduino analog pinlariga ulana olmaysiz.

ushbu qatorni sozlash funktsiyasiga qo'shishingiz mumkin:

analog ma'lumotnoma (Ichki);

4 - 12 bitli ADC piksellar soniga ega bo'lgan STM32F103C8 kabi yuqori aniqlikdagi ADCga ega bo'lgan mikrokontrolderni ishlating Xulosa qilib aytganda, bu arduino -ga asoslangan sozlash sizning tizimingizning harorati haqida yaxshi ma'lumot berishi mumkin, lekin unchalik aniq bo'lmagan natijalar (taxminan 4.88 mV/O'qish)

STM32F103C8 sozlamalari sizga juda aniq natija beradi, chunki u yuqori 12-bitli ADC va pastroq 3,3V analog mos yozuvlar qiymatiga ega (taxminan 0,8 mV/O'qish)

Xo'sh, bu !!: D

Tavsiya: