راهی نوین در تولید سوراخ مربعی شکل
۱۲ دی ۱۳۹۷۲-۳ نحوهی راهاندازی ورودیهای میکروکنترلرهای AVR
۱۲ دی ۱۳۹۷برای آشنایی با مفهوم ورودی در میکروکنترلرهای AVR لازم است ابتدا در مورد انواع ورودیها کمی بحث کنیم. بهطور کلی منظور از ورودی به یک میکروکنترلر سیگنالی است که به یک پایهی خاص از میکروکنترلر اعمال میشود و ما انتظار داریم میکروکنترلر پس از دریافت این سیگنال از طریق پایهی ذکر شده عملی که از قبل ما برای آن تعریف کرده ایم را انجام دهد. اما در محیط اطراف ما انواع و اقسام سیگنالها وجود دارند که در زیر تعدادی از آنها را میبینید. مثلا در شکل زیر یک سیگنال را مشاهده میکنید که مقادیر آن بر حسب زمان در کنار هم گذاشته شدهاند و شکل زیر ساخته شده است.
اما در الکترونیک میکروکنترلرها بیشتر با یک سری سیگنالهای خاص که دارای نامهای مخصوص به خود و همچنین ویژگیهای منحصر به فرد هستند بیشتر سر و کار داریم. مثلا در شکلهای بعد به معرفی چند نوع سیگنال خاص میپردازیم.
سیگنال مربعی:
شکل ۲: یک سیگنال مربعی
به سیگنالهایی شبیه سیگنال بالا سیگنالهای مربعی میگویند. این سیگنالها تنها از دو سطح ولتاژ بالا (High) و پایین (Low) تشکیل شدهاند. منظور از سطح بالا مثلا میتواند ولتاژی معادل ۵+ ولت و منظور از سطح پایین مثلا میتواند ولتاژی برابر ۰ ولت باشد. این که سطح بالا و یا پایین یک سیگنال مربعی را چه بگیریم امری کاملا قراردادی است و بسته به نیاز و محدودیتهای ما تعریف میشود. همان طور که در شکل ۲ میبینید فاصلهی بین دو سطح پایین و یا بالای متوالی با عنوان T که همان دورهی سیگنال است نشان داده شده است.
سیگنال سینوسی:
به سیگنالهایی مشابه با سیگنال شکل زیر سیگنالهای سینوسی میگویند. سیگنالهای سینوسی همانند سیگنالهای مربعی دارای تنها دو سطح ولتاژ نیستند، بلکه در حالت پیوسته از بینهایت ولتاژ که بازهم بین دو سطح ماکسیمم و مینیمم سیگنال قرار دارند تشکیل شدهاند. یک سیگنال مربعی خود نوعی سیگنال سینوسی تبدیل یافته است.
سیگنال مثلثی:
سیگنال دندان ارّهایی:
حال که کمی با سیگنالهای اطراف خود بیشتر آشنا شدید نوبت به کار با این سیگنالها میرسد. اما در اینجا سر و کار ما تنها با سیگنالهای مربعی است. در ادامه سعی میکنیم سطحهای یک سیگنال مربعی را به وسیلهی میکروکنترلر تشخیص دهیم و متناسب با هر سطح عمل خاصی را انجام دهیم.
قبل از ورود به مبحث اختصاصی این فصل دو مفهوم اساسی در هنگام راه اندازی میکروکنترلرها را بررسی میکنیم. این مبحث مربوط به (مقاومتهای Pull Up) یا همان مقاومت بالاکش و (مقاومت Pull Down) یا همان مقاومت پایینکش است. این مقاومتها به پایههای ورودی میکروکنترلرهای AVR متصل میشوند و باعث تشخیص نوع ورودی توسط میکرو میشوند.
مقاومت Pull Up (بالاکش)
مقاومت بالاکش در اصطلاح به مقاومتی گفته میشود که یک سر آن به VCC و سر دیگر آن به پایهی ورودی میکروکنترلر متصل میشود. این مقاومت باعث میشود بر سر پایهی ورودی میکروکنترلر همواره یک ولتاژ نزدیک به VCC وجود داشته باشد. این ولتاژ برای یک میکروکنترلر به عنوان سطح بالا در نظر گرفته میشود.
بنابراین بر سر پایهی ورودی همواره مقدار ۱ دیجیتال وجود دارد. اما این اتفاق تا زمانی است که سطح پایینی از ولتاژ به پایهی ورودی میکروکنترلر اعمال نشده باشد که در این صورت پایهی ورودی از سطح ۱ به سطح پایین یا صفر رفته و میکرو مقدار دیجیتال ۰ را بر سر پایهی خود میبیند. مقدار مقاومت بالاکش باید مقداری در نظر گرفته شود که افت ولتاژ در دو سر آن آنقدر کم باشد که به سطح ولتاژ ما آسیبی وارد نکند. معمولا این مقامت بین ۲۷۰ تا ۳۳۰ اهم در نظر گرفته میشود.
شکل زیر یک (مقامت Pull Up) را نشان میدهد که پایهی A.0 را که به عنوان ورودی در نظر گرفته شده است را به سطح ولتاژ High کشانده است.
مقاومت Pull Down (پایینکش)
مقاومت پایینکش برخلاف مقاومت بالاکش به مقاومتی گفته میشود که یک سر آن به GND و سر دیگر آن به پایهی ورودی میکروکنترلر متصل میشود. این مقاومت باعث میشود بر سر پایهی ورودی میکروکنترلر همواره یک ولتاژ نزدیک به صفر ولت وجود داشته باشد. این ولتاژ برای یک میکروکنترلر به عنوان سطح پایین یا ۰0 دیجیتال در نظر گرفته میشود. بنابراین بر سر پایهی ورودی همواره مقدار صفر دیجیتال وجود دارد مگر این که سطح بالایی از ولتاژ به این پایه اعمال شود که در این صورت میکروکنترلر این تغییر را احساس کرده و مقدار ۱ دیجیتال بر روی پایهی ورودی خود تشخیص خواهد داد. مقدار مقاومت پایین کش معمولا در رنج 1K تا 10K اهم در نظر گرفته میشود.
در شکل زیر پایهی A.0 که قبلا به عنوان ورودی تعریف شده است به وسیلهی یک مقاومت پایین کش به سطح ولتاژ صفر برده شده است.
حال که با مفهوم مقاومتهای Pull Up و Pull Down آشنا شدید، باید بدانید که هرجا که نیاز به خواندن سطح ولتاژ ۱ داریم باید پایهی ورودی میکروکنترلر را Pull Down کرده باشیم و هرجا نیاز به خواندن سطح ولتاژ ۰ داریم باید پایهی ورودی میکروکنترلر را Pull Up کرده باشیم. پرواضح است که اگر میکرو در حالتی که یک پایهی ورودیاش Pull Up شده باشد، قرار گرفته باشد تنها مقادیری نزدیک به ۰ میتوانند باعث احساس کردن ۰ توسط میکرو شوند و بقیهی مقادیر به عنوان ۱ در نظر گرفته میشوند.
1 Comment
با سلام
اگر سیگنال ورودی ما بین -۸ تا +۸ ولت بود برای نمونه برداری آن توسط میکرو کنترلر ARM باید چه کار کرد؟؟