برای کسانی که تا به حال تجربه ی کار با قطعات الکترونیک را نداشته اند اما در برنامه نویسی ماهر هستند، بزرگترین چالش اتصالات قطعات است. یکی از این قطعات کلید Button است که نقش ورودی و فرمان دهنده را در پروژه ها دارد. در این آموزش روش استفاده از کلید به صورت INPUT_PULLUP داخلی در برنامه، مقاومت خارجی PULLUP و مقاومت خارجی PULLDOWN را یاد خواهیم گرفت. در ادامه برنامه نویسی کلید Button با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
کلید Switch یا Button
کلید یکی از تجهیزات مهم و کاربردی در پروژه های الکترونیک است و میتواند به عنوان ورودی عمل خاصی را انجام دهد. در پروژه چراغ مطالعه با آردوینو به کمک کلید اقدام به روشن و خاموش کردن چراغ مطالعه میکنیم. برای تازه کاران در ابتدا ممکن است کار با کلید با وجود سادگی بسیار پیچیده باشد. به عنوان مثال با یک بار فشردن کلید ممکن است آردوینو چند بار آن را دریافت کند و در خروجی مدام ۰ و ۱ ارسال کند که عملا ایجاد خطا در برنامه نویسی و عملکرد پروژه میکند که برای رفع مشکل بایستی از قابلیت دیبانسینگ در آردوینو استفاده کرد. با اتصال مستقیم بیزر به پایه های آردوینو ممکن است نتیجه ای که در خروجی مشاهده میکنید با وضعیت کلید درآن لحظه تفاوت داشته باشد که برای اینکار از یک مقاومت برای Pullup و Pulldown بیزر استفاده میشود. روش استفاده از کلید بسیار آسان است. در صورتیکه از کلید دو پایه استفاده میکنید یک پایه به صورت دلخواه به پایه دیجیتال آردوینو و پایه دیگر با یک مقاومت بین ۱ تا ۱۰ کیلو Pullup , pulldown به زمین GND و یا VCC متصل میشود. در صورتیکه از کلید های چهار پایه استفاده میکنید، فقط دو پایه متقارن استفاده میشود.
در این تصویر پایه های کلید ۴ پایه مشخص شده است. پایه های ۱ و ۳ به هم متصل و پایه های ۲ و ۴ به هم متصل است.
در کلید دو پایه یکی از پایه ها برای تغذیه و دیگری برای ارسال داده استفاده میشود.
- طبق تصویر دو پایه رو به روی هم به یکدیگر متصل هستند.
- همانند تصویر زیر بر روی برد بورد قرار گرفته میشود.
استفاده از مقاومت داخلی PULLUP پایههای آردوینو
پایههای آردوینو از مقاومت داخلی به صورت Pullup ساخته شدهاند. به اینصورت که در حالت کلید باز به صورت ۱ و فعال و HIGH هستند و به VCC اتصال داده شده است. در این حالت در صورت غیر فعال شدن کلید یعنی بسته شدن خروجی صفر خواهد شد و در صورت کلید باز بودن خروجی یک خواهد بود که ما از این قابلیت با توجه به نیاز پروژه استفاده خواهیم کرد. به عنوان مثال میخواهید در ابتدای برنامه تمامی ورودی ها فعال باشد و پس از فشردن کلیدها غیرفعال باشد. برای این مورد بایستی کلیدها را در وضعیت باز قرار دهید تا خروجی یک باشد. برای اینکار از مقاومت PULLUP بر سر راه مدار استفاده میکنیم.
برای اتصال کلید به آردوینو مطابق تصویر بالا، کلید Button را بر روی برد بورد BreadBoard قرار دهید.
در این تصویر کلید بدون استفاده از مقاومت به آردوینو متصل شده است. اضافه کردن مقاومت باعث میشود زمانیکه کلید فعال نشده است، ورودی به صورت اتوماتیک تشخیص دهد که کدام وضعیت را داشته باشد به عنوان مثال کلید در مرحله ی ۰ یا LOW باشد و یا ۱ و HIGH باشد. اما پایه های آردوینو به صورت پیش فرض از مقاومت Pullup داخلی استفاده میکنند و میتوانیم به صورت نرم افزاری از این ماهیت استفاده کنیم و نیازی به اضافه کردن مقاومت به صورت خارجی به مدار نیست. در تصویر بالا یکی از پایه های کلید به پایه شماره ۲ متصل شده است و پایه دیگر مستقیم به GND وصل است. برای استفاده از مقاومت داخلی پایه شماره ۲ آردوینو باید از مهارت کدنویسی استفاده کنیم. نرم افزار آردوینو را باز کرده و سپس کد را اجرا کنید. اتصالات را مشابه تصویر انجام دهید. پس از آپلود کد برنامه سریال پلاتر Serial Plotter را باز کنید. وضعیت کلید را بررسی کنید.
int button = 2; void setup() { Serial.begin(9600); pinMode(button, INPUT_PULLUP); } void loop() { int Buttondata = digitalRead(button); Serial.println(Buttondata); delay(100); }
استفاده از مقاومت خارجی PULLUP در آردوینو
برای برنامه نویسی کلید Button آردوینو، در حالت خارجی از یک مقاومت برای اتصال به کلید استفاده میکنیم. در کد برنامه ورودی را فقط INPUT مینویسیم. برای اتصال مقاومت به کلید از یک مقاومت رنج ۱۰ کیلواهمی استفاده میکنیم. مطابق تصویر زیر اتصالات را انجام دهید.
در این تصویر یک مقاومت به صورت PULLUP سر راه کلید قرار گرفته شده است. دو پایه سمت راست کلید از یک سمت به پایه شماره ۲ و از سمت دیگر با یک مقاومت به ۵ ولت VCC متصل شده است که کلید را در حالت پیش فرض و بدون فشردن کلید فعال کرده است. از سمت دیگر پایه های کلید با یک سیم به GND زمین متصل شده است. اتصالات را انجام داده و کد زیر را در نرم افزار آردوینو اجرا کنید. سپس سریال پلاتر را باز کنید و با هر بار فشردن کلید وضعیت ورودی را بررسی کنید.
int button = 2; void setup() { Serial.begin(9600); pinMode(button, INPUT); } void loop() { int Buttondata = digitalRead(button); Serial.println(Buttondata); delay(100); }
استفاده از مقاومت خارجی PULLDOWN در آردوینو
و اما مقاومت PULLDOWN که خلاف عملکرد مقاومت PULLUP خواهد بود. در این حالت در صورت بسته شدن و غیرفعال شدن کلید، خروجی مثبت و یک است و در صورت باز بودن کلید خروجی صفر ولت خواهد بود. اگر در پروژه بخواهید ورودی ها به صورت پیش فرض صفر ولت یعنی قطع و غیرفعال باشد، بایستی از مقاومت به صورت اتصال PULLDOWN استفاده کنید. با فشردن کلید، ورودی یک شده و با مجدد فشردن کلید خروجی صفر میشود.
در آموزش برنامه نویسی کلید Button برای انصال مقاومت Pulldown برای کلید در آردوینو همانند تصویر زیر اقدام کنید.
در این تصویر یک مقاومت به صورت Pulldown به کلید متصل شده است. یک سمت مقاومت به GND و از همان پایه مشترک با کلید به شماره ۲ آردوینو متصل شده است. پایه مخالف هم به VCC متصل شده است. بدین صورت که کلید در ابتدا غیرفعال است و ولتاژ آن صفر خواهد بود. با فشردن کلید یک شده و فعال میشود. کد را کپی و به نرم افزار آردوینو انتقال دهید.
به صورت کلی انتخاب مقاومت در مدار وابسته به نیاز پروژه است که بایستی با مفاهیم و روش اتصال آشنایی کامل داشته باشید تا بتوانید برای اتصال قطعات از این روش استفاده کنید. در حالت کلی پیشنهاد میشود از همان ماهیت اصلی پایه های آردوینو که به صورت INPUT_PULLUP است استفاده کنید.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام و وقت بخیر
برای ماهایی که اللکترونیک نخوندیم مفهوم پول آپ و پول دان سخت بود اما شفاف و کامل توضیح دادید، سپاس از وقتی که میگذارید
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
با سلام
بابت انتشار این آموزش ممنونم برای ماهایی که الکترونیکی نیستین تشخیص پول اپ و پول دان بسیار سخت است؟
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم آموزش مفید واقع شده باشد.
سلام
خانم لیدی پای بابت انتشار این آموزش از شما ممنونم کمک بزرگی کردید
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
آیا میتوان یک کلید را به ورودی آنالوگ آردوینو متصل کرد؟
سلام خیر شما نمیتوانید یک کلید را به ورودی آنالوگ آردوینو متصل کنید زیرا ورودیهای آنالوگ آردوینو برای خواندن سیگنالهای آنالوگ مانند سیگنالهای صوتی و نوری طراحی شدهاند.
البته با تشکر از خانم بلورچیان و عرض ارادت
سپاس از همراهی شما
چرا میشود کافی است آنرا بصوری ورودی تعریف کنید.
سپاس از همراهی شما