فهرست مطالب:

سنسور دما DIY با استفاده از یک دیود: 3 مرحله
سنسور دما DIY با استفاده از یک دیود: 3 مرحله

تصویری: سنسور دما DIY با استفاده از یک دیود: 3 مرحله

تصویری: سنسور دما DIY با استفاده از یک دیود: 3 مرحله
تصویری: طراحی و ساخت مدار فتوسل با استفاده از مقاومت نوری 2024, جولای
Anonim
سنسور دما DIY با استفاده از یک دیود
سنسور دما DIY با استفاده از یک دیود
سنسور دما DIY با استفاده از یک دیود
سنسور دما DIY با استفاده از یک دیود

بنابراین به عنوان یکی از حقایق در مورد اتصالات PN این است که افت ولتاژ رو به جلو آنها با توجه به جریان عبوری و همچنین دمای اتصال نیز تغییر می کند ، ما قصد داریم از این برای ساخت یک سنسور دمای ارزان ارزان استفاده کنیم.

این تنظیم معمولاً در بسیاری از مدارهای مجتمع برای اندازه گیری دمای داخلی و بسیاری از حسگرهای دما به عنوان LM35 معروف که بر اساس این ویژگی است ، استفاده می شود.

به سادگی افت ولتاژ رو به جلو یک دیود (که یک اتصال PN است) با تغییر مقدار جریان عبوری از آن تغییر می کند ، همچنین با تغییر دمای دیود ، افت ولتاژ نیز تغییر می کند (با افزایش دما ، جلو مقدار کاهش (1.0 میلی ولت به 2.0 میلی ولت برای دیودهای سیلیکون و 2.5 میلی ولت برای دیودهای ژرمانیوم) کاهش می یابد.

بنابراین با عبور یک جریان ثابت از طریق دیود ، افت ولتاژ رو به جلو فقط باید با توجه به دمای دیود تغییر کند. ما فقط برای اندازه گیری ولتاژ جلو دیود نیاز داریم ، برخی از معادلات ساده را اعمال کرده و voilà در اینجا سنسور دما شماست !!!

تدارکات

1 - 1n4007 دیود #12 - 1 مقاومت Kohm #13 - برد آردوینو

مرحله 1: نمودار مدار

مدار
مدار

همانطور که در شماتیک می بینید بسیار ساده است. با اتصال دیود به صورت سری با یک مقاومت محدود کننده جریان و یک منبع ولتاژ پایدار ، می توانیم یک منبع جریان ثابت خام بدست آوریم ، بنابراین ولتاژ اندازه گیری شده در دیود فقط به دلیل تغییر دما متفاوت خواهد بود. مطمئن شوید که مقدار مقاومت بسیار کم است که جریان زیادی از دیود عبور می کند و خود را در دیود گرم می کند ، همچنین مقاومت بسیار بالایی ندارد بنابراین عبور جریان برای حفظ رابطه خطی بین ولتاژ جلو و دما کافی نیست.

یک مقاومت 1 کیلو اهم با منبع تغذیه 5 ولت باید منجر به جریان دیود 4 میلی آمپر شود که مقدار کافی برای این منظور است. I (دیود) = VCC / (Rseries + Rdiode)

مرحله 2: کد نویسی

ما باید به خاطر داشته باشیم که برای به دست آوردن نتایج بهتر ، مقادیری برای تغییر کد وجود دارد مانند:

1 - VCC_Voltage: به عنوان مقدار analogRead () بستگی به VCC تراشه ATmega دارد ، پس از اندازه گیری روی برد آردوینو ، باید آن را به معادله اضافه کنیم.

2 - V_OLD_0_C: افت ولتاژ رو به جلو دیود مورد استفاده در جریان 4 میلی آمپر و دمای 0 درجه سانتیگراد

3 - ضریب دما: گرادیان درجه حرارت دیود شما (بهتر است از برگه اطلاعات دریافت کنید) یا می توانید آن را با استفاده از این معادله اندازه گیری کنید: Vnew - Vold = K (Tnew - Told)

جایی که:

Vnew = ولتاژ افت تازه اندازه گیری شده پس از گرم شدن دیود

ولد = اندازه گیری ولتاژ افت در دمای اتاق

Tnew = دمای محل گرم شدن دیود

گفته شد = دمای اتاق قدیمی که ولد در آن اندازه گیری شده است

K = Temperature_Coefficient (مقدار منفی بین -1.0 تا -2.5 میلی ولت متغیر است) در نهایت اکنون می توانید کد را بارگذاری کرده و نتایج دما را دریافت کنید.

#تعریف Sens_Pin A0 // PA0 برای برد STM32F103C8

دو برابر V_OLD_0_C = 690.0 ؛ // 690 میلی ولت ولتاژ رو به جلو در 0 درجه سانتیگراد در جریان آزمایش 4 میلی آمپر

دو برابر V_NEW = 0 ؛ // ولتاژ جدید رو به جلو در دمای اتاق در 4 میلی آمپر جریان دو برابر دما = 0.0 ؛ // دمای محاسبه شده اتاق دو برابر Temperature_Coefficient = -1.6؛ //-1.6 میلی ولت تغییر در درجه سانتیگراد (-2.5 برای دیودهای ژرمانیوم) ، بهتر است از برگه داده دیود دو VCC_Voltage = 5010.0 دریافت کنید. // ولتاژ موجود در ریل 5 ولت آردوینو بر حسب میلی ولت (برای دقت بهتر لازم است) (3300.0 برای stm32)

void setup () {

// کد راه اندازی خود را در اینجا قرار دهید تا یکبار اجرا شود: pinMode (Sens_Pin، INPUT)؛ Serial.begin (9600)؛ }

حلقه خالی () {

// کد اصلی خود را در اینجا قرار دهید تا بارها اجرا شود: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0 ؛ // اگر از 12 درجه ADC Temperature = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient) بر 4.0 تقسیم می کنید ؛

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 ولت در arduino اما توجه داشته باشید که نمی توانید بیش از 1.1 ولت را به هیچ یک از پین های آنالوگ arduino وصل کنید.

می توانید این خط را در تابع راه اندازی اضافه کنید:

مرجع analog (داخلی) ؛

4 - از یک میکروکنترلر با وضوح بالاتر ADC به عنوان STM32F103C8 که دارای رزولوشن 12 بیت ADC است استفاده کنید. بنابراین ، به طور خلاصه ، این راه اندازی مبتنی بر آردوینو می تواند نمای خوبی از دمای سیستم شما ارائه دهد اما نتایج آنچنان دقیق نیست (تقریباً 4.88 میلی ولت/خواندن)

راه اندازی STM32F103C8 نتیجه بسیار دقیقی را به شما می دهد زیرا دارای ADC 12 بیتی بالاتر و مقدار مرجع آنالوگ 3.3V پایین تر (تقریبا 0.8 میلی ولت/خواندن)

خب همین !!: D

توصیه شده: