مهندسی برق و کامپیوتر

 

در بیست و هفتمین پست آموزشی،به بررسی مد PWM میپردازیم.

 

پس با ما در ادامه مطلب همراه باشید…

 

سلام

برگشتم با یه پست جذاب دیگه !

 

پیشتر از این گفتیم که تایمر/کانتر چیه ؟

به چه دردی میخوره ؟

انواع تایمر/کانترها ؟

انواع مدهای کاری ؟

و …

 

مدهای Normal و CTC رو هم بررسی کردیم و در حال حاضر رسیدیم به بررسی مد PWM.

 

پس اگه بر مطالب قبلی اشراف ندارید،این پستو نخونید که ممکنه درست مطالبو متوجه نشید ! ==> پس فحش هم به من ندید !!! laugh

 

PWM مخفف عبارت Pulse Width Modulation بوده و هست ! wink

مدولاسیون پهنای پالس !

مدولاسیونی که طبق اون میشه یک موج مربعی داشت که پهنای هر پالس و زمان های on و off بودنو میشه کنترل کرد.
از این مدولاسیون میشه جهت تولید موج سینوسی هم استفاده کرد که کاربردهای خاص خودشو در صنعت داره.

بیشتر از اینکه بخوایم به PWM به چشم یک مد خشک و خالی تایمر/کانتر نگاه کنیم،بهتره که به چشم یک تکنیک در مباحث کنترل ولتاژ،کنترل سرعت و حتی مخابرات نگاهش کنیم.

 

خب بریم با یه مثال طبق معمول قضیه رو بررسی کنیم و پیش ببریم !

 

در اینجا فرض میکنیم که یک موتور DC معمولی ۵ ولت (آرمیچر ۵ ولت) داریم.

فعلا فرض میکنیم که میکروکنترلری در کار نیست ! (آزمایش دوران دبستان cheeky)
میخوایم به این بابا (آرمیچر) ور بریم ؛

سه وضعیت داریم :

 

۱٫ولتاژ صفر بدیم ==> روشن نمیشه !

۲٫ولتاژ ۵ ولت بدیم ==> روشن میشه و با بیشترین زوری که بهش فشار نیاد میچرخه !

۳٫ولتاژ بیشتر از ۵ ولت بدیم ==> روشن میشه و با نهایت زوری که داره میچرخه و دیگه دست خودش نیست که بهش فشار بیاد یا نه! بسته به اون ولتاژی که اعمال میکنیم شروع به چرخش میکنه و دیگه حتما میدونین که احتمال آسیب دیدنش خیلی زیاد میشه در این حالت !

۴٫ولتاژ کمتر از ۵ ولت بدیم ==> ؟؟؟

 

صبر کنید …

 

بزارید این یه تیکه رو با شکل و نمودار هم بگیم :

 

 

شکل بالا یعنی ۰ ولت خالص DC بدون ریپل !

 

این یکی هم یعنی ۵ ولت خالص !

 

این هم ۲٫۵ ولت !

 

حالا وقتشه که یه سوال مطرح کنم.

در مورد این یکی شکل نظرتون چیه ؟؟؟

 

 

Whats Your Idea? cool

 

اصلا مبحث ما هم در همین مورده !

 

اگه به شکل دقت کنید دیوتی سایکل ۵۰ درصد مشاهده میشه !

یعنی در یک دوره،نصف دوره مقدار ۵ ولت و نصف دوره مقدار صفر ولت را داریم !

 

 

حالا تصور کنید که بیایم این ولتاژ رو بدیم به موتورمون !

با فرض اینکه یک دوره برابر ۱۰ میکروثانیه باشه (فرضه،،،،فـــــــــــرض !!!! indecision)

۵ میکرو ثانیه ولتاژ ۵ ولت و ۵ میکروثانیه ولتاژ صفر ولته.

سوالم اینه که تکلیف موتور بدبخت ما این وسط چیه ؟!

بالاخره بچرخه یا نچرخه ؟frown

جواب اینه که موتور با وصل شدن ۵ ولت شروع به چرخش میکنه،اما به محض صفر شدن ولتاژ،در همون لحظه از حرکت واینمیسته !

یعنی قبل از اینکه چرخش موتور بخواد قطع بشه مجددا وصل میشه و این چرخه همینطور ادامه پیدا میکنه …

در واقع تا موتور یه مقدار سرعتش افت کرد،مجددا ولتاژ بهش میرسه و …

خلاصه اینکه؛با دیوتی سایکل ۵۰ درصد،مثه اینه که ولتاژ ۲٫۵ ولت به موتور برسه و بنابراین موتور با نصف سرعت نامی اش میچرخه.

 

دیوتی سایکل میتونه هر مقداری باشه،اینجا برای مثال ۵۰ درصد انتخاب شده.

مثلا اگه دیوتی سایکل ۳۰ درصد باشه،سرعت موتور به ۳/۱۰ (سه دهم) سرعت نامی میرسه و …

 

اصلا کاری به میکروکنترلر هم نداریم !

بریم ببینیم اگه خواستیم یه موج PWM بسازیم باید از چه راهکاری استفاده کنیم ؟!

 

چگونه یک موج PWM بسازیم ؟ :

 

ساده ترین راهی که برای تولید موج PWM وجود داره،استفاده از یک شکل موج مشخص و مقایسه اون با یک سطح ولتاژ ثابته !

شکل زیرو ببینید :

 

 

در شکل بالا یک سطح ولتاژ ثابت داریم که با یه موج دندان اره ای در حال مقایسه شدنه !

اما حاصل این مقایسه رو میشه در سه حالت جمع بندی کرد :

 

۱٫حالت Inverted ؛ حالت معکوس : در این حالت تا زمانی که موج دندان اره ای ما زیر خط سطح Compare هست،مقدار خروجی صفر و زمانی که موج بالاتر از سطح Compare قرار میگیره،خروجی ما یک میشه !

۲٫حالت Non-Inverted؛حالت غیر معکوس : دقیقا عکس حالت Invert است.

۳٫حالت Toggle : در این حالت خروجی Toggle میشه.یعنی وقته صفره میشه یک و وقتی یکه میشه صفر !

 

فعلا اینا رو در حد تعریف گوشه ذهنتون داشته باشید تا تو عمل بهتر باهاشون آشنا بشیم.

 

مدهای کاری PWM :

 

۱٫Fast PWM

۲.Phase Correct PWM

۳.Frequency and Phase Correct PWM

 

 

۱٫Fast PWM :

 

به این مد میگن،مد سریع !

چرا ؟!

 

حالا میبینید چرا …

 

به شکل زیر نگاه کنید :

 

 

برید تو کف شکل ! laugh

 

یه دونه موج دندون اره ای داریم،و دو سطح مقایسه ای !

سطح A و سطح B

لازم به تذکره که این سطوح کاملا دلخواه و تصادفی انتخاب شده اند،در ضمن برای اینکه بهتر متوجه مطلب بشید از دو سطح A و B استفاده شده وگرنه یه سطحش کافیه ! wink

موج های مربعی هم که معلومه چجوری تشکیل داده شدند !

این همه توضیح دادم بالا !!!

 

در این مد،به محض رسیدن به سطح مقایسه ای ، سریعا سطح سیگنال خروجی عوض میشه(اگه خروجی یکه میشه صفر و اگه صفره میشه یک !)

 

حالا به شکل موج های خروجی نگاه کنید.

اگه دقت کنید نقاط پایانی شکل های A و B در یک دوره،دقیقا در یک مکان هستند.(هم فازند !)

اصلا مهم نیست که از کجا شروع شده اند اما در یه نقطه تموم شده اند ! (جل الخالق !!! laugh) == > این نکته رو داشته باشین تا بهتون بگم !

 

۲٫Phase Correct PWM :

 

به اینم میگن حالت تصحیح فاز !

 

چرا  ؟!

 

به شکل زیر نگاه کنید :

 

 

اینجا دیگه خبری از موج دندون اره ای نیست !

اینجا موج مثلثی داریم.
 

همه چیز مثله قبله !

اما اینجا نقاط پایانیمون مثل مد قبلی مکان یکسانی نداره !

مزیت این مد نسبت به مد قبلی،احاطه ای هست که روی فاز موج خروجی داریم.

 

نمیدونم تا الان رسیدین به اون چیزی که من دنبالش بودم یا نه !

PWM رو دیدینش ؟؟؟؟

تونستین تشخیصش بدین ؟

 

اگه نه،یعنی از موضوع پَرتِ پَرتییییید !!!! indecisionsurpriselaughcheeky

 

با توجه به این نکته که دوره با فرکانس نسبت معکوس داره،اگر دقت کنید متوجه میشید که فرکانس مد Fast ، دو برابر فرکانس مد Phase Correct است.(هر چه دوره کمتر بشه،فرکانس بیشتر میشه و بالعکس)

 

حالا با یه معضل دیگه مواجه شدیم،اونم فرکانسه !!!

 

۳٫Phase and Frequency Correct PWM :

 

این مد،دقیقا مشابه مد Phase Correct PWM بوده و تنها تفاوتش اینه که دارای نقاط TOP متغیره !

یعنی چه ؟!

 

یعنی اینکه اگه به شکل مد Phease Correct نگاه کنید،موج مثلثی ما از یک نقطه BOTTOM شروع میکنه و به یه نقطه TOP میرسه و همین روند مرتبا تکرار میشه …

اما حالا فرض کنید که بتونیم هر سیکل نقطه TOP متفاوتی نسبت به سیکل های قبلی یا بعدیش داشته باشیم !

 

شکل زیرو ببینید تا دستتون بیاد چی به چیه :

البته من فقط برای دو سیکل این روند رو ادامه دادم.

 

 

شکل کاملا گویاست.

مثل قبل برای دو سطح مقایسه ای دلخواه A و B دو شکل موج خروجی مربعی شکل داریم.

موج مربعی B نکته جالبی داره که اگه یه کم دقت کنید متوجهش میشید.

 

همه چی مشخصه (همه چی آرومـــــه !!! cheeky)

 

تا اینجا صحبتی راجع به میکروکنترلر نکردیم و فقط گفتیم که چجوری میشه یه چنین موج مربعی را در خروجی داشت !

 

حالا اگه موج PWM مونو به یه LED بدیم،میتونیم نورشو کنترل کنیم.

مثلا اگه یه LED با ۳ ولت کار کنه،با دادن ولتاژ ۱ ولت بهش نور کمتری داره و نور ۲ ولت نور بیشتری نسبت به ۱ ولت داره و …

و استفاده های دیگه ای که میشه از این تکنیک کرد …

 

خب …

 

هدفم از این بحث این بود که یاد بگیرین اصلا PWM چی هست و به چه دردی میخوره !

با توجه به اینکه PWM یکی از مدهای کاری تایمر/کانتر هست،و ما هم قبلنا خیلی راجع به تایمر/کانترها بحث کردیم،از توضیحات مربوط به تایمر/کانتر میکروکنترلر AVR صرفنظر کردم،چون فقط کافیه که تایمر/کانتر مونو مثل قبل برنامه ریزی کنیم و مُدشو  مد PWM رو انتخاب کنیم !

 

پس در پست بعدی که کارگاه عملی مبحث PWM خواهد بود،هم یه سری به تایمر/کانترها میزنیم و هم یه برنامه براش مینویسیم که دوباره کاری هم نشه !

 

نظر فراموش نشه دوست عزیزی که داره مطالبو میخونی و احیانا ازش استفاده ای میبری !

 

موفق باشید.

فعلا …

ادامه مطلب

راه اندازی سنسور BMP-280 با استفاده از آردوینو

به این نوشته رای دهید

راه اندازی سنسور BMP-280

 

راه اندازی سنسور BMP-280 با استفاده از آردوینو:

یکی از پارامترهای مهم در پرواز کوادکوپتر ارتفاع کوادکوپتر از سطح زمین است.برای داشتن اتفاع از سطح زمین به یک سنسور نیاز دارید.یکی از سنسورهایی که برای این مقصود اسنتفاده می شود سنسور BMP-280  است. BMP-280  یک سنسور فشار سنج هوا است که با اندازه گیری این فشار می توان به ارتفاع از سطح زمین پی برد.این سنسور در چند نوع مختلف ارائه می شود BMP-085 , BMP-180  و BMP-280 سه نوع متفاوت از این نوع هستند که اصول کاری یکسانی دارند اما BMP-280 از بقیه کاملتر است.ماژول های مختلقی نیز با این آیسی از شرکت های مختلف وجود دارد که با یکدیگر متفاوت هستند.بعضی از ماژل ها داری قطعات بیشتری بر روی برد هستند و بعضی دیگر مثل CJMCU-280 فقط خود آیسی به همراه دو خازن بر روی برد دارد.

راه اندازی BMP-280 با آردوینو

از کاربردهای این سنسور می توان به موارد زیر اشاره کرد:

– گوشی های موبایل، تبلت ها، دستگاهای دارای GPS

– سیستم های ناوبری

– ایستگاهای هواشناسی

– مولتی روتورها

– ساعت های هوشمند و …

 

سنسور  BMP-280 علاوه بر اندازه کیری فشارهوا می تواند دما را نیز برای شما اندازه گیری نماید.دقت اندازه گیری این سنسور برای استفاده در کوادکوپتر نسبتاً مناسب است به طوری که دما را با دقت ۰٫۰۱ درجه سانتی گراد و فشار را با دقت ۰٫۱۶Pa ± که معادل یک متر است را اندازه گیری می کند.

در این آموزش قصد داریم نحوه راه اندازی این سنسور را با استفاده از آردوینو به شما آموزش دهیم. پروتکل ارتباطی این سنسور SPI و I2C است.در واقع این امکان وجود دارد که این آیسی را هم با ۴ سیم در پروتکل SPI  وهم با دو سیم در پروتکل I2C راه اندازی کرد.

توصیف پایه های سنسور:

راه اندازی سنسور CJMCU-280

VCC: پایه تغذیه مدار است و باید به ولتاژ ۳٫۳V وصل شود.

GND:پین زمین سنسور و باید به GND برد آردوینو وصل شود.

SDI:پایه ورودی دیتا است و در صورتی که از پروتکل SPI استفاده شود باید به MOSI و در صورتی که از پروتکل I2C استفاده شود باید به پایه SDA وصل شود.

SDO: پین دیتای خروجی است و فقط در مد SPI استفاده می شود و باید به پایه MISO وصل شود.

SCK: پین کلاک آیسی است .درصورتی که از پروتکل SPI استفاده شود به پایه SCK در آردوینو و در صورت استفاده در مد I2C به پین SCL باید وصل شود.

CSB:پین انتخاب آیسی است.در صورت استفاده از پروتکل SPI به یکی ازپین های IO  آردوینو و در صورت استفاده از I2C باید به پایه VCC وصل شود.در واقع این پین آیسی را از مد SPI به مد I2C می برد.

در این پروژه ما از یک ماژول CJMCU-280 استفاده می کنیم.

مدار خود را مانند شکل زیر ببندید:

 

راه اندازی BMP-280 با آردوینو

 

پایه VCC را به  ۳٫۳v – پایه GND را به پایه GND – پایه SDI را به پایه A4 وپایه SCK را به پین  A5از برد آردوینو UNO و CSB و SDO را به پایه ۳٫۳V وصل کنید.همچنین از دو مقاومت ۴٫۷K برای PULL-UP کردن SDA و SCL استفاده کنید.

-کدهای برنامه:

برای راه اندازی سنسور BMP-280 در محیط آردوینو ابتدا باید کتابخانه نوشته شده برای این مازول را به اردوینو اضافه کنید.(نحوه نصب کتابخانه در آردوینو)

این کتابخانه را می توانید از BMP280.zip دانلود کنید.پس از نصب فایل برنامهmeasurment.zip را  بر روی آردوینو بارگزاری نمایید.ازمنوی  Tools->Serial Monitor را انتخاب نمایید و نتایج اندازه گیری را مشاهده نمایید.

نکته : در صورتی که ارتفاع را نادرست بر روی صفحه کامپیوتر مشاهده می کنید پارامتر P0 را در قسمت ابتدایی برنامه مقداری(بین ۰٫۲۵ تا ۱٫۰۰ ) کم یا زیاد کنید تا به ارتفاع مطلوب برسید. این عدد به فشار هوا در منطقه شما بستگی دارد و در نقاط مختلف کشور متفاوت خواهد بود.

راه اندازی سنسور BMP-280 با آردوینوl

 


Post Views:
۶۴

ادامه مطلب

این مطلب از وب سایت آپ موزیک رپورتاژ گردید و صرفا جهت اطلاع شما از این آهنگ می باشد...

دانلود آهنگ جدید علیرضا طلیسچی علمدار

هم اکنون براش شما عزیزان ♫ آهنگ علمدار از علیرضا طلیسچی ♫ با متن و دو کیفیت 320 و 128

Download New Song By : Alireza Talischi – Alamdaar With Text And Direct Links In Upmusic

Alireza Talischi Alamdaar دانلود آهنگ جدید علیرضا طلیسچی علمدار

متن آهنگ علمدار علیرضا طلیسچی

♪♪♫♫♪♪♯

تا رسیدم به فرات و بنشستم لب آب تا رسیدم به فرات و بنشستم لب آب
یادم آمد ز کبودی لب طفل رباب یادم آمد ز کبودی لب طفل رباب♪♪♫♫♪♪♯
نبود صبر و قرارم گره افتاده به کارم داداش نبود صبر و قرارم گره افتاده به کارم
من علمدارم علمدار من علمدارم علمدار بر حسینم یار و غمخوار بر حسینم یار و غمخوار
نه سری مانده نه دستی نه سری مانده نه دستی کمرم را تو شکستی کمرم را تو شکستی♪♪♫♫♪♪♯
چه بگویم به سکینه چو سراغت گیرد چه بگویم به سکینه چو سراغت گیرد
گر بفهمد تو شدی کشته بدان میمیرد گر بفهمد تو شدی کشته بدان میمیرد
نبود صبر و قرارم گره افتاده به کارم داداش نبود صبر و قرارم گره افتاده به کارم♪♪♫♫♪♪♯
من علمدارم علمدار من علمدارم علمدار بر حسینم یار و غمخوار بر حسینم یار و غمخوار
نه سری مانده نه دستی نه سری مانده نه دستی کمرم را تو شکستی کمرم را تو شکستی

♪♪♫♫♪♪♯

علیرضا طلیسچی علمدار

برای دانلود بر روی لینک روبرو کلیک کنید : دانلود آهنگ جدید علیرضا طلیسچی علمدار

ادامه مطلب

این مطلب از وب سایت آپ موزیک رپورتاژ گردید و صرفا جهت اطلاع شما از این آهنگ می باشد...

دانلود آهنگ جدید آمین شفا

هم اکنون براش شما عزیزان ♫ آهنگ شفا از آمین ♫ با متن و دو کیفیت 320 و 128

شعر و آهنگسازی : مجید تک

Download New Song By : Aamin – Shafa With Text And Direct Links In Upmusic

Aamin Shafa دانلود آهنگ جدید آمین شفا

متن آهنگ شفا آمین

♪♪♫♫♪♪♯

تو که عباس منی همه احساس منی بگو چی صدات کنم
تو که مولای منی همه دنیای منی بی تو من چیکار کنم♪♪♫♫♪♪♯
تو که عباس منی همه احساس منی بگو چی صدات کنم
تو که مولای منی همه دنیای منی بی تو من چیکار کنم
یا ابوفاضل تو که علمداری یا ابوفاضل پناه دردایی♪♪♫♫♪♪♯
یا ابوفاضل تو مرد مردایی یا ابوفاضل خدای احساسی
یا ابوفاضل عطر گل یاسی یا ابوفاضل تویی که عباسی
یا ابوفاضل تو سینه غم دارم واسه شفای دل نگاتو کم دارم
میسوزه قلب من عطش به لب دارم ♪♪♫♫♪♪♯
یا ابوفاضل تو شاه مردایی تو آخر عشقی شفای دردایی
تو ماه پر نور شبای یلدایی

♪♪♫♫♪♪♯

آمین شفا

برای دانلود بر روی لینک روبرو کلیک کنید : دانلود آهنگ جدید آمین شفا

ادامه مطلب

سلام به همه دوستان : امروز میخوایم در مورد ” پروژه کنترل و مانیتورینگ دما با ds18b20 و sim800c ” صحبت کنیم، شاید خیلی وقت ها  شده باشه که خارج از خونه باشید و بخواید ببینین دمای اتاقتون یا هال یا پذیرایی چقدره یا اگر دما از یه حدی بالاتر رفت از راه دور به شما خبر بده، اگر دنبال همچین چیزی هستین شاید مطلب امروز مفید باشه؛ روند کاری این سیستم اینجوریه که این سیستم یه سیم کارت میخوره و شما به شماره دستگاه زنگ میزنین، دستگاه تماس شما رو در کمال احترام!!!!!!!!! قطع میکنه و چند ثانیه بعد دمای اندازه گیری شده رو به شما اس ام اس میکنه؛ خیلی سرتون رو درد نیارم و بریم سر اصل مطلب.

پروژه کنترل و مانیتورینگ دما با ds18b20 و sim800c

پروژه کنترل و مانیتورینگ دما با ds18b20 و sim800c

 

اجزای پروژه مانیتورینگ دما با avr

  1. سنسور دمای دیجیتال ds18b20
  2. ماژول sim800c
  3. میکروکنترلر avr atmega16
  4. یه چند تا مقاومت و خازن و دیود و بردبرد!

 

سنسور دمای دیجیتال ds18b20

این سنسور دما یک سنسور دما ی دیجیتال کالیبره شده هست، و ویژگی جالب اون اینه که از یک سیم برای ارسال و دریافت داده استفاده میکنه  و از پروتکل ۱wire یا یک سیمه برای ارسال و دریافت داده استفاده میشه. نکته مهم دیگه اینه که این سنسور سه پایه vcc ,gnd ,data داره که خب پایه vcc برای تغذیس ولی اختیاریه!!!!!!!!!!!!!! ینی این که میتونین وصلش نکنین!!!!!!!!!!!!!!! در این حالت تغذیه اش از همون سیم دیتا که به میکروکنترلر وصله تامین میشه که در این حالت به این تغذیه میگن تغذیه انگلی!!!!!!!!!! ولی من تو این پروژه پایه vcc سنسور رو به تغذیه وصل کردم.

نکته بعدی در مورد این سنور این که این سنسور در یک حالت مثل سنسور lm35 و در حالت دیگه به صورت ضد آب عرضه میشه که من حالت دوم رو انتخاب کردم، و حالت دوم به همراه خودش یک سیم تقریبا نیم متری با پوشش ضد آب داره.

 

ماژول مخابراتی sim800c

این ماژول هم که فکر کنم معرف حضور هستن، یه ماژول خوب و راحت که سیم کارت میخوره و میشه باهاش تماس برقرار کرد و پیام کوتاه فرستاد؛ فقط برای زمانی که میخواد به شبکه وصل شه و پیام بفرسته و بگیره یه جریان لحظه ای ۲ تا ۳ آمپر میکشه که شما باید منبع تغذیتون در این زمینه قوی باشه؛ یه خازن ۱۰۰۰ میکرو فاراد هم که با تغدیه اش موازی کنین که میشه عالی.

توجه مهم : اگر این ماژول و یا هر ماژول مخابراتی دیگه رو که میخواین استفاده کنین که به صورت هدربرد ینی با برد راه انداز تهیه میکنین حتما حتما حتما حتما پایه ri رو خودش داشته باشه. حالا داستان این پایه چیه؟؟؟ الان میگم: داستان این پایه از این قراره که ولتاژ این پایه همیشه برابر ۲٫۸ هست، خب؟؟؟؟ حالا وقتی که اس ام اس میاد این پایه برا مدت ۱۲۰ میلی ثانیه  ۰ میشه که اینجا ازش میگذریم، ولی چیزی که مهمه اینه که زمانی به ماژول زنگ میزنیم ولتاژ از ۲٫۸ به صفر  ولت میرسه و تا زمانی که تکلیف این تماس مشخص نشه ( رد تماس یا تایید تماس یه قطع تماس به به دلیل جواب ندادن ) ۰ ولت میمونه و بعد دوباره به ۲٫۸ تبدیل میشه.

حالا اصن این پایه ri چه ربطی به ما داره که اینقدر براش سخنرانی میکنیم؟؟؟؟؟ الان میگم

ما میتونیم از این پایه استفاده کنیم و بدیمش به یکی از پایه های  وقفه خارجی میکرو وهر وقت که بهش زنگ زدن متوجه بشیم که تماس دریافتی داریم، اینجوری لازم نیست که هی مداوم چک کنیم که ببینیم بهمون زنگ زدن یا نه. اگر بخوایم مداوم چک کنیم بهمون زنگ زدن، باید درنظر داشته باشیم که هنگامی که با ماژول تماس میگیرید، ماژول هی عبارت ring رو برمیگردونه که شما باید بیاین کد بزنین و بگردین دنبال عبارت ring که اینجوری هم کد طولانی میشه و هم توان مصرفی مدار افزایش پیدا میکنه. برای اطلاعات بیشتر تو این زمینه توان مصرفی عبارت power management in embedded systems رو سرچ کنین و مقاله هاش رو بخونین.

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

 

میکروکنترلر

این قسمت دیگه میشه مغز مدارمون، همیشه سیستم های میکروکنترلر ی برام جالب بوده، آخه به نظر من دقیقا مثل اجزای بدن میمونن، الان تو همین مدار ما یه سنسور دما و یه ماژول مخابراتی داریم که هردو این ها عملا بدون میکرو ( مغز ) بی فایده میشن. حالا  اینجا میخوایم عملکرد کلی مدار(بدن) رو تشریح کنیم!!!!!.

جریان از این قراره که میکرو داره براش خودش ول میچرخه ( البته خیلی هم ول نه، داره دما رو چک میکنه )، یهو شما زنگ میزنین به دستگاه، بعد اون پایه  ri صفر میشه، چون این پایه به وقفه خارجی میکرو وصله تو میکرو وقفه ایجاد میشه. همونطور که میدونین زمانی که یه قفه ایجاد میشه، همون لحظه یه تابع ( روتین ) اجرا میشه و هدایت برنامه از هرجایی که هست به این تابع منتقل میشه و دستورات موجود تو این تابع اجرا میشه و بعد که این دستورات تموم شد  به برنامه اصلی بر میگردیم. نکته مهم اینه که ما اینجا باید بیایم اولا تماس تلفنی رو قطع کنیم تا بتونیم دما رو  پیامک کنیم. پس عبارت ath رو به ماژول مخابراتی میدیم و به کمک این عبارت تماس رو قطع میکینم. مسئله ای که حتما باید بهش توجه کنیم اینه که تو تابع ( روتین ) وقفه نمیتونیم از دستورات طولانی استفاده کنیم، باید زود کارمون رو انجام بدیم و بپریم بیرون. بگو خب! گفتی؟؟؟ خب از اونجایی که دستورات ارسال پیامک زمانبر هستن ما میایم بیرون تابع  وقفه پیامک رو میفرستیم. پس تو تابع وقفه چیکار کنیم؟؟؟؟؟ اول میایم یه متغیر عمومی ( global ) تعریف میکنیم، همونطور که میدونین متغیر عمومی متغیری هستش که تمام توابع بهش دسترسی دارن. پس هر زمان که وارد این تابع شدیم مقدار این متغیر رو برابر یک میکنیم، بعد در بیرون از این تابع بررسی میکنیم اگر یک بود این مقدار ابتدا صفرش میکینم تا برای دفعات بعدی قابل استفاده باشه، بعد  دما رو میخونیم و اس ام اس میکینم.

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

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

برای اینکه تو این حالت تماس رو دریافت نکنیم میایم وقفه های میکرو رو با دستور زیر غیر فعال میکینم :

نکته ای که باید در نظر بگیرین این که احتمالا برای اولین بار که دستگاه شروع به کار میکنه دوتا پیامک دریافت کنین یکی به خاطر اینه که لحظه اول راه اندازه ماژول مخابراتی پایه ri ولتاژش ۰ هست و میکرو این ۰ شدن رو به عنوان وقفه قبول میکنه، البته خیلی سریع این پایه تغییر وضعیت میده و ۲٫۸ میشه. دلیل دوم اینه که زمانی که سنسور دما راه میفته برای ار اول عدد ۶۸ رو بر میگردونه و که خب از دمای تعیین شده توسط ما یعنی ۴۵ بیشتره و همین سبب میشه که پیامک بیاد. البته این دو مورد احتمالی هستن و ممکنه هیچ وقت پیش نیان و دست کم یکیشون اتفاق بیفته و فقط هم در ابتدای راه اندازی اتفاق میفتن.

 

پروژه کنترل و مانیتورینگ دما با ds18b20 و sim800c

کد پروژه : 

 

شماتیک پروژه :

پروژه کنترل و مانیتورینگ دما با ds18b20 و sim800c

 

عکس مدار در عمل : در اول مطلب قرارش دادم.

 

فیلم های پروژه : امیدوارم خیلی سرتون رو درد نیاورده باشم، دو تا فیلم از مدار داریم که اولی مربوط به تماس و جواب دستگاه هست و دیگری مربوط به آتش زدن سنسور دما و ارسال پیامک از دستگاه به شماره تعیین شده هست که تو فیلم ابتدا دمای ۴۸٫۵ رو نشون میده و رفته رفته دما زیاد تر میشه و اس ام اس های بیشتری میاد که تو فیلم برای کاهش حجم قرارش ندادم.

http://www.aparat.com/v/hK2kG

http://www.aparat.com/v/SwFq6

 

 

پیشنهاد مطلب : در صورت تمایل میتونید مطلب زیر رو هم بخونید که با همین ماژول sim800c بسته شده :

پروژه دزدگیر با قابلیت شماره گیری sim800c و sr501

ادامه مطلب

ثبت نام آزمون ورودی کارشناسی ارشد سال ۱۳۹۶ از تاریخ ۱ دی شروع شده است و تا سه شنبه ۷ دی ادامه خواهد داشت. طبق برنامه زمان بندی کنکور در روزهای پنج شنبه و جمعه ۷ و ۸ اردیبهشت ۱۳۹۵ برگزار خواهد شد. در ادامه به بررسی تغییر ضرایب دروس در رشته های مهندسی برق و مهندسی کامپیوتر و فناوری اطلاعات خواهیم پرداخت.
نکته حائز اهمیت در کنکور پیش رو افزوده شدن تعدادی گرایش جدید و تغییر ضرایب دروس مختلف برای گرایش های مختلف است. نکته ای که بیشتر از همه جلب توجه می کند اختصاص بیشترین ضریب (۴) به درس تخصصی اصلی همان گرایش و ضرایب کمتر به دروس دیگر است. این موضوع منجر به تفکیک پذیری بیشتر در رتبه بندی گرایش های مختلف نسبت به قبل خواهد شد، یعنی در گذشته برای مثال رتبه های یک شخص در گرایش های الکترونیک، مخابرات و کنترل بسیار شبیه به یکدیگر می شد در حالی که با رتبه قدرت بسیار متفاوت بود و این مسئله دست داوطلب را در انتخاب گرایش بازتر می کرد اما در حال حاضر با شرایط فعلی احتمالا اوضاع فرق خواهد کرد. در این شرایط به داوطلبان توصیه می شود که از همین الان گرایش نهایی مورد علاقه خودشان را انتخاب کنند و بیشترین انرژی را برای درس اختصصاصی اصلی همان گرایش (ضریب ۴) صرف کنند. علاوه بر آن داوطلبانی که تا کنون برای دروسی که سال های قبل ضریب صفر داشتند و امسال ضریب یک دارند وقت نگذاشته اند و وقت کافی برای مطالعه این دروس ندارند از اضافه کردن آنها به برنامه خود صرف نظر کنند. دروس زبان، ریاضیات و مدار های الکتریکی نیز همچون سال های گذشته اما با ضرایبی متفاوت برای همه گرایش ها یکسان هستند.
از تغییرات دیگر می توان به حذف دروسی همچون مدار منطقی و ریز پردازنده و بررسی سیستم های قدرت اشاره کرد که به ترتیب دروس اختصاصی گرایش های مکاترونیک و قدرت بودند. البته به نظر می رسد درس بررسی سیستم های قدرت نیز با ماشین های الکتریکی ترکیب شده و تحت عنوان ماشین های الکتریکی و تحلیل سیستم های انرژی الکتریکی در آمده است.
با وجود تغییرات گسترده در گرایش ها و ضرایب دروس امتحانی رشته مهندسی برق در سال های اخیر، شاهد تغییراتی جزیی در گرایش ها و ضرایب دروس امتحانی رشته مهندسی کامپیوتر و فناوری اطلاعات هستیم.
در ادامه گرایش ها و عناوین دروس امتحانی مجموعه مهندسی برق و مجموعه مهندسی کامپیوتر درج شده است. به منظور مشاهده تصاویر در سایز اصلی بر روی آنها کلیک کنید. به زودی لیست منابع و راهکارهای کنکوری نوشته شده در پست های بهترین مراجع مهندسی برق و منابع ارشد برق و مشاوره برقی بروزرسانی خواهند شد.


ضرایب امتحانی کنکور ارشد مهندسی برق


ضرایب امتحانی کنکور ارشد مهندسی کامپیوتر و فناوری اطلاعات

ادامه مطلب

%d8%aa%d8%b1%d9%85%d9%88%d8%b3%d8%aa%d8%a7%d8%aa-2

ماژول ترموستات دما و رطوبت مناسب دستگاه های جوجه کشی و سالن های پرورش قارچ و….

ترموستات دما و رطوبت

دقت اندازه گیری دما ۰٫۱ درجه سانتی گراد

دقت اندازه گیری رطوبت ۰٫۱ درصد

برای خرید این محصول از طریق لینک زیر اقدام فرمایید

 

ادامه مطلب

پروژه ربات تشخیص مانع با آردوینو و سنسور مافوق صوت

در این پست از پروژه های الکترونیک پروژه ربات تشخیص مانع با آردوینو و سنسور مافوق صوت را برای شما در نظر گرفته ایم.

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

در این مدار از یک حسگر HC-SR04 که یکی از ارزان ترین قیمت ها در این نوع است استفاده شده است. این سنسور دارای ۴ پین است که دوتای آنها تغذیه و دوتای دیگر ورودی و خروجی هستند. مکانیزم آن ساده است؛ ارسال امواج و دریافت پژواک آنها.

تصاویر مدار و مراحل انجام کار کاملاً روشن و گویا هستند. در این ربات از یک آردوینو پرو مینی ۵ ولت و IC L293D جهت درایو موتورها استفاده شده و به منظور زیبا سازی کار، led و اسپیکر هم مورد استفاده قرار گرفته اند.

عملکرد ربات جذابیتهای خاصی دارد؛ مثلاً پس از شروع حرکت، با توجه به توابع random که در کد برنامه استفاده شده است، عملکردهای جالب و اتفاقی مانند توقف یا پخش موزیک انجام می شود؛ همچنین در صورت نزدیک شدن ربات به موانع، حرکت آن متوقف شده و پس از بازگشت ربات، جهت دیگری به صورت تصادفی انتخاب شده و ربات مجدداً در جهت جدید شروع به حرکت می نماید.

قطعات الکترونیکی مورد استفاده در پروژه ربات تشخیص مانع با آردوینو :

  •  ۱ عدد آردوینو پرو مینی
  •  ۴ عدد باطری قلمی + جا باطری
  •  ۱ عدد بلندگوی کوچک ( بیزر )
  •  ۱ عدد LED
  •  ۱ عدد حسگر مافوق صوت SR-04
  •  ۱ عدد مقاومت ۴۷۰ اهم
  •  ۱ عدد آی سی L293D
  •  ۱ عدد سوئیچ
  •  ۲ عدد موتور DC ساده
  •  مقداری پین هدر و کابل

قطعات مکانیکی مورد استفاده در پروژه ربات تشخیص مانع با آردوینو :

  •  ۲ عدد گیربکس اسباب بازی دو چرخ
  •  ۱ جعبه پلاستیکی
  •  چسب فوری

مونتاژ ربات تشخیص مانع با آردوینو

مرحله ۱: مونتاژ بدنه ربات

قطعات مکانیکی ربات

یک جعبه پلاستیکی را پیدا کنید تا بتوانید گیربکس را روی آن سوار کنید. می توانید از جعبه های پلاستیکی گز یا سوهان استفاده کنید. قطعات را همانطور که در تصویر نشان داده شده است به جعبه وصل کنید.

جعبه پلاستیکی برای مونتاژ بدنه ربات

مرحله ۲: مونتاژ قطعات الکترونیکی مدار

طبق نقشه زیر قطعات و سیم کشی مدار را انجام دهید.

مدار ربات تشخیص مانع با آردوینو

برد آردوینو را توسط پین هدر ها به برد سوراخ دار متصل کنید و آی سی L293D را روی برد سوار کنید. سپس سیم کشیهای داخلی و خارجی برد را انجام دهید. در هنگام چیدمان قطعات در بدنه ربات می توانید مطابق سیلقه خود عمل کنید. قطعاتی مثل LED و Buzzer .

مونتاژ قطعات مکانیکی در بدنه ربات

مرحله ۳: کدهای برنامه

کد زیر مثال ساده و مناسبی است از پیاده‌سازی رفتارهای متفاوت در زبان C برای اجرا بر روی Embed System هایی که دارای حافظه و قدرت پردازشی محدود هستند (مانند Arduino). با توجه به محدودیت های موجود، کد مورد استفاده باید تا جای ممکن ساده و دارای پیچیدگی زمانی کمی باشد.

حالات تقسیم state ها و استفاده از متغیرهای selector ، امکان سوئیچ کردن بین رفتارهای متفاوت را به سادگی فراهم می کند.

نکته: کتابخانه NewPing به همراه حسگر sonar ارائه می‌گردد.

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

حجم فایل: ۲ کیلو بایت

دانلود

موفق و پیروز باشید…

 

ادامه مطلب

اگر دنبال یک نمایشگر کوچک و کم هزینه و البته کاربردی هستید و از کارکردن با السیدی های کارکتری معمول خسته شده اید، حتی اگر دانش زیادی ندارید، ما به شما پیشنهاد می کنیم خیلی راحت نمایشگر نوکیا ۵۱۱۰ (LCD NOKIA 5110) که دارای اندازه فیزیکی ۴۵×۴۳ میلیمتر و رزولوشن صفحه نمایش ۴۸*۸۴ پیکسل است، را راه اندازی نمایید.

این LCD در اصل برای گوشی های نوکیا ۳۳۱۰ و ۵۱۱۰ بکار گرفته می شده است لذا شرکت‌های مختلفی از این LCD ماژول آماده کرده و آن را با چیپ PCD8544 راه اندازی نموده اند، به این ترتیب بصورت تجاری برای عموم مردم در دسترس قرار گرفت، LCD NOKIA 5110 یک صفحه نمایش کاربردی است که می توان از آن برای طراحی  پروژه های حرفه ای و تجاری کمک گرفت.

N5110

با توجه به نمایش زیبای تصاویر و متون در این ماژول نمایشگر، در تیم فنی مهندسی برق تصمیم گرفته شد که جهت معرفی آن با استفاده از زبان سی و کامپایلر محبوب CodeVision نمایشگر نوکیا ۵۱۱۰ (LCD NOKIA 5110) را راه اندازی کرده و نمونه کد آن را منتشر نماییم، لذا در ادامه مطلب خواهید دید که از این پس به راحتی می توانید به وسیله آن انواع کارکتر ، اعداد ، علائم ، حروف ، نوشته ، انواع متغییر و تصاویر را در LCD NOKIA 5110 نمایش دهید.

 

ارتباط PCD8544 با میکروکنترلرها ، از طریق یک رابط سریال باس انجام می پذیرد و برای اتصال نمایشگر به میکرو ، تعداد کمتری از پین ها (حداکثر ۵ پین) اشغال میگردد ، همچنین بک لایت نمایشگر باعث می شود استفاده از آن در محیط های با نور نامناسب به راحتی امکان پذیر باشد.

یکی از قابلیت های کاربردی این نمایشگر ، امکان نمایش لوگوی دلخواه شماست که با استفاده از نرم افزار LCD Vision به راحتی می توانید کد Hex لوگو را بدست آورید و در برنامه از آن استفاده کنید.

فایل های مورد نیاز راه اندازی ماژول نمایشگر نوکیا ۵۱۱۰:

دانلود سورس کد کامل کدویژن + شماتیک مدار 

 

فیلم عملکرد LCD Nokia5110 :

 

 

.

موضوعات مرتبط و یا مشابه:

 

تاريخ: ۱۶ دی ۱۳۹۴

۳,۶۵۶ بازدید

ادامه مطلب

WiringPI یک کتابخانه به زبان C است که برای تراشه BCM2835 رزبری پای نوشته شده است ، این کتابخانه عملا توانایی راه اندازی GPIO  را برای رزبری پای مقدور می سازد.

و برای زبان های c و ++c مناسب است.این کتابخانه بگونه ای طراحی شده که  برای افرادی که با Wiring  آردوینو کار کرده اند بسیار آشنا می باشد .

Wiringpi می تواند به راحتی در محیط دستوری ترمینال مورد استفاده قرار گیرد و یا در اسکریپت های مختلف به خواندن و نوشتن پین ها بپردازد.

جهت نصب این کتابخانه بصورت زیر عمل میکنیم.

برای دانلود WiringPi از GIT

اگر برای اولین بار دستور clone را استفاده میکنید مرحله زیر را هم اجرا کنید:

سپس برای نصب دستور زیر استفاده شود:

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

در ادامه برنامه ی یک LED چشمک زن را بررسی کنیم. وارد محیط ترمینال رزبری شوید  و توسط دستور زیر وارد فولدر wiringPi شوید:

سپس دستورات زیر را به ترتیب وارد کنید تا وارد پوشه مثال‌های موجود در کتابخانه wiringPi را مشاهده کنید:

برای دیدن فایل های داخل پوشه از دستور زیر استفاده کنید

هم اکنون لیست مثال‌های موجود درون این کتابخانه را مشاده می‌کنید برای مثال می‌خواهیم مثال LED چشمک زن یعنی blink.c را باز کنیم برای این منظور توسط دستور nano ، فایل مورد مورد نظر خود را در ادیتور nano باز می‌کنیم.پس برای باز کردن blink.c اینگونه عمل می‌کنیم:

بعد از وارد کردن دستور فوق در ترمینال کد‌های مربوط به فایل blink را مشاهده می‌کنید.هم اکنون در کدی که مشاهده می‌کنید درون main برنامه wiringPiSetup را به wiringPiSetupGpio تغییر دهید.

بعد از تغییرات کلید ترکیبی Ctrl+O را فشار دهید تا تغییرات ذخیره شود. و بعد از کلید ترکیبی CTRL +X را فشار دهید تا از محیط ویرایشگر کد خارج شویم.هنوز با ترمینال کار داریم پس آن را باز نگه دارید.

حال LED را مطابق تصویر زیر به رزبری متصل کنید.

 

اکنون می‌بایست پروژه LED را کامپایل کنیم. برای این منظور در ترمینال دستور زیر را وارد می‌کنیم:

اکنون فایل blink.c کامپایل شده است.اکنون می‌خواهیم فایل کامپایل شده را اجرا کنیم، برای این منظور دستور زیر را در ترمینال وارد می‌کنیم:

 

ادامه مطلب