وبلاگ اختراعات

موارد فنی و مطالب موردنیاز مخترعین

۳ مطلب با موضوع «AVR» ثبت شده است

تعریف فوریه، کاربرد آن

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

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

گفت اگر تابع   ( f(x  یک تابع متناوب و انتگرال آن در دوره تناوب محدود باشد و تعداد مینیمم و ماکزیممها و ناپیوستگی های آن محدود باشد، می توان آن را با یک سری توابع پایه (سینوسی و کسینوسی) نوشت ( ای کاش به جای کلمه "نوشت"، کلمه "ساخت" را به کار ببریم.)، به گونه ای که ضرایب a و b از فرمول های زیر بدست می آید. اگر تابع فرد باشد ضرایب a صفر می شوند، اگر تابع زوج باشد..، اگر تابع این باشد...، اگر تابع آن باشد...، ...
بعد هم چند شکل مثلثی, دندانه اره ای، مربعی و... کشید و ضرایب a و b را بدست آورد و چند تمرین هم به ما معرفی کرد تا ما هم از فیض محاسبه a و b ها بی نصیب نباشیم. خلاصه یک ساعت و نیم او می گفت و می نوشت و ما روی صندلی ها نشسته بودیم و هر از گاهی از خستگی، خود را جابجا می کردیم. هیچ کس نمی دانست این ها به چه دردی می خورد. به فکرش هم نمی رسید که می توان با آن ها صاحب آب و نان شد و راحت زندگی کرد. بچه ها سرکلاس که یا نمی فهمیدند ( که احتمالاً بعید است، چون مطلب ساده ای است و قوانین ماکسول و محاسبه انتگرال روی سطوح کروی نیست ) و یا با قضاوت اینکه این ها نان و آب نمی شود، هر کدام توی رویای خودشان بودند.
اما یکی از بچه ها شنیده بود، که تبدیل فوریه اگر پر کاربردترین موضوع ریاضی نباشد، حداقل جزو پرکاربردترین مباحث ریاضی در مهندسی، فیزیک، پزشکی، هواشناسی، مخابرات، پردازش سیگنال و... است.
واقعاً فوریه چه می گوید: ( اگر کمی دقت کنید همان قضیه لگو بچگی و بردار دبیرستان است.)
وقتی ما صحبت از سیگنال می کنیم،  همان f(x) ریاضیدان ها است.  سیگنال ها در واقعیت مانند مثال های درس مدار و الکترونیک یک  موج  سینوسی تر و تمیز نیستند، حالا بهتر است بگویم یک تک فرکانس نیستند. بلکه شامل چندین سینوسی با دامنه و فازهای مختلف هستند، که با هم ترکیب شده اند و ظاهرشان شبیه یک موج سینوسی نیست.  شکل زیر دو نما از یک سیگنال را نشان می دهد. نمای راست سیگنال را در حوزه زمان نشان می دهد. همان طور که می بینید، با نگاه کردن آن چیزی دستگیرمان نمی شود. حال بیایید، این ببینیم این سیگنال از چه ساخته شده است. بله خواهیم دید که از ترکیب ( جمع ) چند سیگنا سینوسی ساخته شده است. فوریه نشان می دهد که همه توابع متناوب ( با چند شرط ) را می توان از ترکیب توابع پایه سینوسی ساخت. فرمول های بالا طرز بدست آوردن این توابع پایه هستند. البته برای اینکه سیگنال های غیر متناوب و گسسته را نیز بتوان بر اساس توابع پایه بیان کرد، تبدیل فوریه و تبدیل فوریه گسسته به کمک ما می آید.
حال بیایید سیگنال بالا را از نمای چپ، که نشان دهنده توابع پایه سینوسی موجود در سیگنال است ببینیم. ، واقعاً جالب است. این سیگنال شامل سه تابع سینوسی پایه است. نگاه چپ اطلاعات زیادی به ما می دهد. نگاه چپ، نگاه در حوزه فرکانس است، و محور افقی همانطور که می بینید، فرکانس است و زمان نیست.  باور می کنید که با ترکیب این سه فرکانس می توان سیگنال اولیه را ساخت. پس از تبدیل فوریه برای پردازش و ساخت سیگنال ها می توان استفاده کرد.
فوریه

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

حالا فرمول بالا برایتان زیباتر نشد؟!
بیایید صدای خودمان را  روی اسیلوسکوپ مشاهده کنیم، چیز زیادی دستگیرمان نمی شود، شاید فقط بتوان از حداقل و حداکثر دامنه آن حرف زد.  شکل موجهای زیر فقط دو آوای 'ee' و 'oh' هستند.
آنالیز صوت صدا تبدیل فوریهما در رشته مهندسی به کمک اسیلوسکوپ این سیگنال ها را می بینیم. همانطور که در شکل بالا می بینید، در اسیلوسکوپ، محور افقی زمان و محور عمودی اندازه است. بیایید  از زاویه دیگری به این سیگنال ها نگاه کنیم و ببینیم این سیگنال از ترکیب چه فرکانس هایی ( شکل موج های سینوسی ) تشکیل شده است.
حال بیایید، طیف فرکانسی شکل موج های بالا را ببینیم.
آنالیز صوت صدا تبدیل فوریه

بله آوای 'oh' شامل فرکانس های F1 تا F5 با دامنه های مشخص شده است و با فرکانس های آوای 'ee' فرق می کند. ما با مقایسه این فرکانس ها می توانیم، این آوا ها را از یکدیگر تمیز دهیم. تازه اگر بخواهیم می توانیم با ترکیب این فرکانس ها، آواهای فوق را ایجاد و از بلندگوی کامپیوتر ( سیستم میکروکنترلر AVR ) پخش کنیم.
امیدوارم با این مقدمه کمی ارزش و کاربرد سری فوریه را نشان داده باشم.

کاربردهای تبدیل فوریه : ( از نظر من همه چیز )
-         پردازش سیگنال ( صوت، تصویر، قلب، مغز و...)
-         طراحی فیلترها و کنترل کننده ها
-         تبدیل ها، کدینک و انکدینگ
-         پردازش و آنالیز داده
-         طراحی فرستنده، گیرنده و آنتن ها
-         شناسایی سیستم ها
-         همبستگی توابع
-         پزشکی
-         

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



منبع: lclass.ir
۰ نظر موافقین ۱ مخالفین ۰
ابوالفضل ظهوریان

مقاومت Pull up چیست و چه کاربردی دارد؟

مقدمه
مقاومت Pull up  در الکترونیک یه چیز خیلی عمومی و معمولی هست  به خصوص وقتی که از میکروکنترلرها یا قطعات منطقی دیجیتال استفاده میکنیم. ما میخوایم در این آموزش بگیم که کی و کجا باید از این مقاومت استفاده کنیم. در ضمن یه سری محاسبات کوچک هم انجام میدیم تا بفهمیم که چرا اصلا این مقاومت Pull up اینقدر مهمه.مت Pull up چیست؟
فرض کنید یه میکروکنترلر داریم و یکی از پایه هاش رو به صورت ورودی تعریف کردیم. اگه هیچی به این پایه وصل نباشه و کد شما جوری باشه که وضعیت این پایه رو بخونه. حالا موقعی میخونیم این پایه 1 هست یا 0 ؟  معلوم نیست. ممکنه یه لحظه یک باشه ممکنه یه لحظه صفر. برای این که از این وضعیت ها جلوگیری کنیم از مقاومت Pull up یا Pull down استفاده میکنیم تا مطمین بشیم که یا صفره اون پایه و یا یک. ضمن این که جریان بسیار کمی هم این مقاومت مصرف میکنه. 
در این نوشته ما بیشتر روی مقاومت Pull up تمرکز میکنیم چون معمول تر از مقاومت Pull down هست. البته مفاهیمشون کاملا یکسانه و تنها تفاوتشون اینه که مقاومت Pull up وصل میشه به VCC ( معمولا یا 5 ولت هست و یا 3.3 ولت) و مقاومت Pull down وصل میشه به GND ( زمین)
مقاومت های Pull up اغلب با سوییچ ها و کلیدها استفاده میشن.
با مقاومت Pull up موقعی کلید رو فشار نداده باشیم  پایه ورودی در وضعیت منطقی 1 یعنی سطح ولتاژ VCC که 5 ولت یا 3.3 ولت میتونه باشه قرار میگیره. به عبارت دیگه یه مقدار جریان بین پایه VCC و پایه ورودی جا به جا میشه بنابراین پایه ورودی وقتی کلید فشار داده نشده مقداری نزدیک به VCC رو میخونه اما وقتی که کلید رو فشار بدیم مستقیم وصل میشه به زمین و یه مقدار جریان جاری میشه از طریق مقاومت به زمین و پایه ورودی مقدار GND رو میخونه. حتما یادتون باشه که اگه این مقاومت نباشه VCC مستقیم به GND وصل میشه و باعث میشه مدارتون اتصال کوتاه بشه و بعدش چه اتفاقای بدی میتونه بیفته. 
مقدار مقاومت Pull up چقدر باید باشد؟
اگه بخوایم یه جواب کوتاه و سریع بگیم اینه که مقدار مقاومت باید یه چیزی در حدود 10KΩ باشه. ولی اگه می خواید خیلی کامل بدونید مقدارش چقدر باید باشه پس ادامه مطلب رو بخونید:
نکته:
اگر مقدار مقاومت انتخاب شده کوچک باشد، چون مقدار زیادی جریان جاری میشود به آن مقاومت Pull up قوی ( Strong Pull up ) و اگر مقدار مقاومت بزرگ باشد چون جریان کمی جاری میشود به آن مقاوم Pull up ضعیف (weak pull up) گفته میشود.
 شکل زیر رو که در زیر اومده ببینید چون بعدا یه خورده باهاش کار داریم. در این شکل مقاومت R1 مقاومت Pull up و مقاومت R2 امپدانس داخلی یه پین هست. 
برای انتخاب یه مقاومت Pull up مناسب باید دو تا شرط زیر ارضا بشن:
موقعی کلید فشرده شد پایه ورودی مستقیما به زمین وصل میشه. مقدار مقاومت R1 تعیین میکنه که چه جریانی بین VCC و GND از طریق کلید جاری میشه .
موقعی کلید فشار داده نشده پایه ورودی در سطح منطقی 1 قرار میگیره. مقدار مقاومت Pull up ، ولتاژی که روی پایه ورودی میفته رو کنترل میکنه.
برای شرط 1 ما نباید از یه مقاومت خیلی کوچک استفاده کنیم، مقاومت خیلی کوچیک باعث میشه توان بیشتری مصرف بشه وقتی کلید رو میزنیم. شما معمولا به یه مقاومت با اندازه بزرگ احتیاج دارید(مثلا 10KΩ). همچنین نمیتونیم یه مقاومت خیلی بزرگ هم انتخاب کنیم چون باعث بشه ولتاژ روی پایه ورودی اونقدر کم بشه که نزدیک به صفر برسه و در واقع در تضاد با شرط 2 باشه. مثلا یه مقاومت 4MΩ  برای Pull up خوب نیست. چون باعث میشه اصلا ولتاژی روی پایه ورودی نیفته موقعی کلید بازه.
قانون عمومی برای شرط 2 اینه که مقدار مقاومت Pull up ای که انتخاب میکنیم (R1) باید کمتر از 1/10 امپدانس داخلی پایه مورد نظر ما باشه. امپدانس داخلی پایه ها در میکروکنترلرهای مختلف چیزی حدود 100 کیلو تا 1 مگا اهم هست.
وقتی کلیدی رو فشار ندادیم یه جریان خیلی کمی از VCC به سمت پایه ورودی از طریق مقاومت R1 جاری میشه. مقاومت R1 که Pull up هست و مقاومت R2 که امپدانس داخلی پایه مورد نظر ما هست تشکیل یه مقسم ولتاژ میدن و ولتاژی که روی پایه ایجاد میشه باید به اندازه کافی بزرگ باشه که پایه مقدار سطح ولتاژ 1 رو بخونه.
مثلا اگه مقاومت Pull up که انتخاب میکنید مقدارش 1M اهم باشه و امپدانس داخلی پایه مورد نظر ما هم 1M اهم باشه. در این حالت طبق فرمول مقسم ولتاژ، ولتاژی حدود 1/2 ولتاژ  VCC میفته روی پایه ورودی که معلوم نیست پایه مورد نظر ما بتونه اون رو به صورت سطح منطقی 1 تشخیص بده. مثلا اگه میکرو با 5 ولت کار کنه آیا 2.5 ولت رو سطح منطقی 1 تشخیص میده یا سطح منطقی 0 ؟ ولی اگه ما بیاییم و یه مقاومت 10 کیلو یا 100 کیلو بذاریم دیگه این مشکل رو نداریم.
چون مقاومت Pull up خیلی کاربرد داره اکثر میکروکنترلرها مثل Atmega328  که در بردهای arduino هم استفاده میشه خودشون یه Pull up داخلی دارن که میتونه فعال یا غیر فعال بشه. برای این که این مقاومت Pull up داخلی رو در پایه های آردوینو فعال کنید میتونید از کد زیر در تابع Setup استفاده کنید:

pinMode(5, INPUT_PULLUP); // Enable internal pull-up resistor on pin 5 
نکته دیگه ای  که باید به اون اشاره کنیم اینه که هر چه مقاومت پولاپ بزرگتر باشه پین مورد نظر به تغییرات ولتاژ کندتر پاسخ می ده. و این بخاطر اینه که سیستمی که کار تغذیه پین ورودی را به عهده داره لزوما یک خازنه که با یک مقاومت Pull up کوپل شده است بنابراین تشکیل یک فیلتر RC می ده و فیلتر RC هم نیاز به یک زمان دارد تا شارژ و دشارژ انجام بشه. اگر شما یک تغییر سیگنال پرسرعت(همانند USB) دارید یک مقاومت پولاپ بزرگ می تونه سرعت رو در تغییر حالت پین محدود بسازه. و به این دلیله که شما اغلب یک مقاومت 1 تا 4.7کیلواُهم را روی خطوط سیگنال USB مشاهده می کنید.
محاسبات مقاومت Pull up
شکل اول صفحه رو یه بار دیگه در نظر بگیرید و به مساله ی زیر فکر کنید:
مساله: حالا فرض کنید در مدار بالا وقتی کلید فشار داده میشه میخوایم جریان جاری شده رو به 1mA محدود کنیم. اگه مقدار VCC برابر 5 ولت باشد. مقدار مقاومت Pull up چقدر است؟
کار زیادی سختی نیست. باید از قانون اهم استفاده کنیم.

منبع: http://robouav.ir

۰ نظر موافقین ۱ مخالفین ۰
ابوالفضل ظهوریان

مقاومت های Pull-up ، کاربرد و محاسبه

استفاده از مقاومت های Pull-up در مدارات میکروکنترلری بسیار رایج است و شاید شما هم از این مقاومت ها در مدارات خود استفاده می کنید. در این پست نگاهی تخصصی تر به دلایل استفاده از این مقاومت ها و نحوه ی محاسبه آنها می اندازیم.

بیشترین کاربرد این مقاومت ها در زمانی است که پایه ای از میکروکنترلر به عنوان ورودی تعریف شود، در این حالت اگر این پایه به تغذیه یا زمین متصل نباشد، اگر مقدار این پایه را در برنامه بخوانیم، این پایه چه مقداری خواهد داشت؟ یک یا صفر؟

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

برای جلوگیری از این شرایط از مقاومت های Pull-up یا بالاکش یا مقاومت های Pull-down یا پایین کش استفاده می شود. مقاومت های بالاکش بین تغذیه مدار و پایه میکروکنترلر وصل می شوند و مقاومت های پایین کش بین پایه میکروکنترلر و زمین وصل می شوند. با وجود شباهت هر دو، استفاده از مقاومت های بالاکش در مدارات رایج تر است.

Pull-Up Res

در شکل بالا، در حالتی که کلید در وضعیت باز قرار دارد، جریان کمی (با توجه به مقاومت ورودی پایه میکروکنترلر) از مقاومت به درون پایه میکروکنترلر وارد می شود و وضعیت منطقی این پایه در حالت یک قرار می گیرد. با فشرده شدن کلید، جریان مقاومت از طریق کلید به زمین منتقل می شود و وضعیت منطقی پایه در حالت صفر قرار می گیرد.

نکته 1 : از مقاومت برای جلوگیری از اتصال کوتاه شدن تغذیه به زمین هنگام متصل وصل شدن کلید استفاده می شود، در غیر اینصورت میتوان پایه میکروکنترلر را مستقیما به تغذیه متصل نمود.

نکته 2 : استفاده از مقاومت بالاکش به دلیل افزایش جریان، مقدار توان مصرفی مدار را کمی افزایش می دهند.

نکته 3 : معمولا در میکروکنترلرها مقاومت بالاکش در همه ی پایه ها یا برخی پایه ها به صورت داخلی قرار داده شده است و با نوشتن مقدار مناسب در رجیسترهای مربوطه، در وضعیتی که پایه به عنوان ورودی تعریف شده است، این مقاومت بالاکش فعال می شود. در برخی کاربردها لازم است علاوه بر مقاومت بالاکش داخلی، برای افزایش مصونیت پایه های میکروکنترلر در برابر نویزهای محیطی، مقاومت بالاکش به صورت خارجی نیز قرار داده شود.

 

محاسبه مقدار مقاومت بالاکش :

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

  • زمانی که کلید فشرده می شود، مقاومت میزان جریان کشی از منبع تغذیه را با توجه به قرار گیری ولتاژ تغذیه در دو سر آن تعیین می کند.
  • در زمان باز بودن کلید، مقاومت بالاکش ولتاژ روی پایه میکروکنترلر را تعیین می کند.

 

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

طبق مورد دوم، مقاومت نباید آنقدر بزرگ باشد تا ولتاژ مورد نیاز برای پایه ی میکروکنترلر برای تشخیص سطح منطقی یک کافی نباشد. در واقع با توجه به شکل زیر، در ورودی پایه میکروکنترلر یک مقاومت با مقدار 100K اهم تا 1M اهم وجود دارد (R2) که ولتاژ تغذیه بر روی این دو مقاومت تقسیم می شود. اگر مقدار مقاومت بالاکش (R1) بزرگتر از حد مجاز باشد، ولتاژ روی پایه میکروکنترلر طبق رابطه تقسیم ولتاژ کمتر از حد مورد نیاز میکروکنترلر برای تشخیص سطح منطقی یک می شود و عملا وضعیت پایه مشابه حالت شناور می شود.

Input uc Res

معمولا برای رعایت این نکته باید سعی شود که مقاومت بالاکش برای ایجاد سطح ولتاژ کافی برای ورودی از 1/10 مقاومت ورودی پایه میکروکنترلر (R2) بزرگتر نباشد.

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

مقدار مقاومت بالاکش برای جریانی مشخص طبق قانون اهم، از تقسیم ولتاژ تغذیه  بر جریانی که می خواهیم از تغذیه کشیده شود (هنگام اتصال کلید) به دست می آید. به عنوان مثال با در نظر گرفتن تغذیه 5v و جریان  1mA :


Ohm's Law

منابع :

learn.sparkfun.com

melec.ir

۰ نظر موافقین ۱ مخالفین ۰
ابوالفضل ظهوریان