توضیحات

icon فایل هایی که با لینک مستقیم در سایت قرار گرفته اند بدون پسورد می باشند.

راه اندازی SMT160 با Bascom AVR

 راه اندازی SMT160 با Bascom AVR

در این پروژه یک دماسنج دیجیتال با استفاده از سنسور SMT160 و میکروکنترلر AVR توسط کامپایلر Bascom AVR و به زبان بیسیک راه اندازی شده است.

 

توجه: این پروژه به تنهایی جنبه کاربردی ندارد بلکه هدف از این پروژه ارائه روش راه اندازی سنسور دمای SMT160  می باشد تا بتوان از این سورس ها برای پروژه های کاربردی مانند ترمومتر و ترموستات استفاده کرد.

 

در این پروژه از میکروکنترلر ATMega32 استفاده شده است.

 

توصیه می شود که برای میکروکنترلرها یک کلید ریست نیز در نظر گرفته شود تا در صورت هنگ کردن میکروکنترلر بتوان از آن استفاده کرد. برای این کار از یک تک سوییچ مطابق شکل زیر استفاده شود:

اگر پایه ریست رها بماند ممکن است به علت نویز محیط، میکروکنترلر خود به خود ریست شود. برای جلوگیری از این حادثه آن را با یک مقاومت ۱۰K اهم به مثبت وصل می کنیم. حتی اگر قصد استفاده از کلید ریست را هم نداشته باشید، استفاده از این مقاومت الزامی است.

 

برای برنامه نویسی این پروژه مجبور به استفاده از تایمرهای داخلی میکروکنترلر هستیم. برای داشتن یک زمان دقیق نمی توان به اسیلاتور داخلی میکروکنترلر اعتماد کرد. برای همین از یک کریستال خارجی ۱۰MHz برای اسیلاتور میکروکنترلر استفاده شده است.

Crystal2

 

سنسور دمای استفاده شده در این پروژه SMT160 می باشد. مشخصات این سنسور از قرار زیر است:
تلورانس : ۰٫۷  درجه
توان مصرفی : کمتر از ۱ میلی وات
میزان خطی بودن خروجی ۰٫۲ درجه
سنسور دما – حرارت با خروجی دیجیتال
سهولت در استفاده همرمان از چند سنسور
رنج کاری دما : ۴۵- تا ۱۵۰+ درجه سانتی گراد
قابلیت اتصال مستقیم به مبکروکنترلرها بدون نیاز به مبدل A/D

SMT160

مزیت این سنسور نسبت به سنسورهای آنالوگ دما نظیر LM35 این است که خروجی سنسور SMT160 دیجیتال و به صورت مدولاسیون عرض پالس (PWM) است و نیازی به مبدل آنالوگ به دیجیتال ندارد و همچنین خروجی CMOS آن باعث شده تا بتوان سنسور را با کابلی به طول ۲۰ متر به میکرو وصل کرد.
خروجی این سنسور از نوع پالس است و توسط اندازه گیری نسبت ۱ بودن پالس به عرض کل پالس می توان دما را به دست آورد (اندازه گیری عرض پالس توسط تایمرها انجام می شود).

 

برنامه این پروژه به روش ساب روتین نوشته شده است و جنبه آموزشی سورس این پروژه شامل نحوه کد نویسی نیز می شود.

جهت مشاهده سورس این پروژه اینجا کلیک کنید.

 

تابع های این پروژه از قرار زیر است:

۱٫ Display_lcd_start_text:
۲٫ Read_SMT160:
۳٫ Display_lcd_1:

 

۱٫ نمایش یک متن دلخواه بر روی LCD در زمان شروع به کار سیستم.

۲٫ خواندن مقدار دما از سنسور SMT160

۳٫ نمایش مقدار دما بر روی LCD

 

اهداف آموزشی:

.        • آشنایی با LCD کاراکتری و نحوه راه اندازی آن

.        • آشنایی با توابع مربوط به LCD

.        • آشنایی با سنسور SMT160 و نحوه راه اندازی آن

 

محتویات فایل دانلود:

.        • سورس برنامه با کامپایلر Bascom AVR

.        • شماتیک رسم شده با نرم افزار پروتیوس

 

توجه: به علت عدم وجود سنسور SMT160 در پروتیوس، امکان شبیه سازی این پروژه در پروتیوس وجود نداشت.

 

جهت دانلود فایل های این پروژه اینجا کلیک کنید. ( ۱۷۸KB )

جهت دانلود دیتاشیت سنسور SMT160 اینجا کلیک کنید. ( ۲۵۳KB )

 

 

تهیه و تنظیم: علیرضا جودی

 

لینک منبع:

http://projects.m32.ir/2073/

 

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

 

 

فروردین ۳۱ام, ۱۳۹۲ | 16,123 views | دسته: Alphanumeric LCD، Bascom AVR
برچسب ها: ، ، ، ، ، ، ، ، ، ، ،


نظرات دیگران در مورد این مطلب:
hossein :

ممنون که لطف کردید و این پست رو گذاشتید ،خیلی خوب و کامل و جمع و جور بود.

عليرضا :

سلام
از بابت مدار و توضیحاتی که قرار دادید ممنونم .

طبق توضیحات دیتاشیت :تا ۲۰ متر طول کابل باشه مشکلی نداره .ولی من تا ۲۵ متر هم کایل کشیدم مشکلی نداشته .دوستان گفتند چون خروجی smt دیجیتال هست شما جهت اطمینان از ۷۴۱۴ که اشمیت تریگر هست استفاده کن که اگر کابل نویز گرفت ۷۴۱۴ اعوجاج ها رو برطرف کنه .ولی من ۷۴۱۴ بهش متصل کردم ۳۰ درجه اختلاف دمائی پیدا کرد .چرا؟
اصلا ۷۴۱۴ برای smt جواب میده .؟؟

Reza Asgharian :

با سلام

جواب برای علیرضا خان عزیز

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

دانلود متن آهنگ :

مرسی از سایت معرکتون…..عالیه

سحر :

سلام آقای مهندس
این مدار مثل lm35 پرش داره یا دقیق نشون میده؟
راستی واسه وصل کریستال خارجی در پروگرم کردن کاری لازم است انجام بدم یا عادی پروگرم کنم بعد دو پایه کریستال رو به میکرو وصل کنم؟
من تا حالا با کریستال کار نکردم-اگه ممکنه راهنماییم کنید
ممنونم

 

پاسخ:

در این سیستم از سنسور SMT160 استفاده شده است که نسبت به LM35 خروجی پایدار تری دارد.

نحوه اتصال کریستال خارجی در شماتیک رسم شده است. ولی بعد از پروگرم کردن باید فیوز بیت های میکروکنترلر را نیز روی کریستال خارجی تنظیم کنید. در حالت پیش فرض، میکروکنترلر های خام بر روی فیوز بیت داخلی با فرکانس ۱MHz قرار دارند که بسته به نیاز میتوان فرکانس کاری میکروکنترلر را تغییر داد. برای استفاده از این سیستم، میکروکنترلر باید بر روی کریستال خارجی با حداکثر فرکانس کاری تنظیم شود.

در کامپایلر بیسکام با اضافه کردن خط زیر در برنامه، این تنظیمات به صورت اتوماتیک در زمان پروگرم کردن برنامه بر روی فیوز بیت های میکروکنترلر اعمال میشود:

$prog &HFF , &HFF , &HD1 , &H00

 

ولی در صورتی که تمایل دارید فیوز بیت ها را به صورت دستی تنظیم کنید. تصویر فیوز بیت مربوطه در کامپایلر بیسکام از قرار زیر است:

1

و در کامپایلر کدویژن و … از قرار زیر:

21

علی :

سلام استاد
مدار فوق رو بستم
دما حدود ۰٫۵ درجه نوسان داره
برای پایداری راهنماییم کنید
باتشکر

علی :

لازم به ذکر ست که با کریستال خارجی ۱۶ مگاهرتز نوسان تا ۰٫۳ کاهش یافت
اما پایدار نشد

علی :

استاد پایدارش کردم
فقط اگه ممکنه بهترین راه برای تبدیل ولتاژ ۵ به ۱۲ بهم بگید
مرسی

 

پاسخ:

این شماتیک در Datasheets رگولاتور ۷۸۰۵ توصیه شده است:

7805

علی :

سلام
من این مدار رو یستم ولی روی ال سی دی یه سری حروف قر و قاطی بعضی وقتا به صورت نویز میاد یا مدار بعضی وقتا ریست میشه.
لطفا راهنماییم کنید
باتشکر
 
پاسخ:
لطفا وضعیت فیوز بیت ها و تغذیه مدار را چک کنید.
تغذیه مدار باید ۵ ولت و کاملا صاف باشد.
وضعیت فیوز بیت ها در بالا شرح داده شده.

باقر :

خیلی ممنون از آموزش

سحر :

خدا خیرتون بده
به خاطر آموزشها و مدارهای خوبتون ممنون

کارگر :

با سلام خدمت شما دوستان و اساتید گرامی
من یک مدار جوجه کشی کامل با این سنسور پیدا کردم اما در این زمینه مبتدی هستم و درخواست تکمیل اون توسط سایت شما رو داشتم

حالا بریم سراغ یک مدار دیگه
من تو یک وبلاگ یک مدار کامل رو پیدا کردم ولی وقتی میخوام نقشه اون رو به pcb تبدیل کنم ارور میده و برخی قطعات رو که اکثرا دیود هستن نمیشناسه
نکته بعدی سنسور دمای اون هست که smt160 هست میخواستم بدونم این سنسور برای کنترل دما هست؟ یا کنترل دما و رطوبت به صورت همزمان؟
عملکرد اون چه جور بوده و قابل اطمینان
در ضمن این مدار رطوبت رو هم نشون میده ولی من سنسور اون رو پیدا نکردم؟
دوستان من بعلت عدم تجربه من در برنامه نویسی زیاد به طراحی مدار اشنا نیستم
ایا امکان داره یک فن به مدار اضافه کنید تا با افزایش دما بیش از دمای تنظیم شدا شروع به کار کنه؟
از شما اساتید گرامی میخواستم کمک کنید و در صورت امکان اون رو تست کرده و لیست قطعات مورد نیاز و نقشه های pcb اون رو برام به صورت عکس در اورده و دراختیار من و دیگر دوستان قرار دهید

اینم مدار
http://s5.picofile.com/file/8109873968/jooje_keshi_avr.zip.html
و یا
http://micro-projects.blogsky.com/1392/10/30/post-30/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D8%AF%D8%A7%D8%B1-%D8%AF%D8%B1%D8%A7%DB%8C%D9%88%D8%B1-avr-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D8%B3%D8%AA%DA%AF%D8%A7%D9%87-%D8%AC%D9%88%D8%AC%D9%87-%DA%A9%D8%B4%DB%8C

همونطور که گفتم این مدار خیلی برام ضروری هست و خودم هم هیچی در مورد برنامه نویسی مدار نمیدونم ممنون میشم اگر بهم کمک کنید و تغییرات رو برام انجام بدین
با تشکر فراوان از شما

بهرام :

سلام خیلی ممنون خوب بود امکانش هست برنامه رو با زبان c هم بزارید .با تشکر

صادقی :

با سلام .
بسیار بسیار ممنونم . موفق و موید باشید .


افزودن نظر: