چرا در آردوینو از مقاومتها همراه با دکمههای فشاری و کلیدها استفاده کنیم؟
این آموزش توضیح میدهد چرا استفاده از مقاومت همراه با دکمههای فشاری و کلیدهایی که به آردوینو متصلاند برای عملکرد قابلاطمینان حیاتی است. درک این مفهوم برای هر پروژه آردوینو که شامل ورودی کاربر است اساسی است. این دانش از رفتار غیرمنتظره جلوگیری کرده و تضمین میکند پروژههای شما بهدرستی کار کنند. در اینجا چند ایده پروژه آورده شده است که در آنها این دانش ضروری است:
- کلید ساده روشن/خاموش برای یک LED
- دسته بازی تعاملی
- ریموت کنترل برای لوازم خانگی
- سیستم امنیتی با فعالسازی از طریق فشار دادن دکمه
بیایید دلایل استفاده از مقاومتها در این مدارها را بررسی کنیم.

سختافزار/قطعات
اجزای اصلی مورد نیاز برای این پروژه حداقلی هستند: یک برد آردوینو، یک کلید فشاری و یک مقاومت (بیشتر از 300 اهم). مقدار مقاومت چندان حیاتی نیست؛ مقادیری مانند 1kΩ، 10kΩ یا حتی 100kΩ معمولاً به خوبی کار میکنند (در ویدئو در 00:41).
راهنمای سیمکشی
دو پیکربندی اصلی برای سیمکشی وجود دارد (در ویدئو، در 00:30):
- پیکربندی 1:دکمه فشاری را بین پایه آردوینو و +5V وصل کنید. سمت دیگر دکمه فشاری از طریق یک مقاومت به زمین متصل است. وقتی دکمه فشرده میشود، پایه مقدار HIGH را میخواند؛ وقتی رها شود، مقدار LOW را میخواند.
- پیکربندی 2:دکمه فشاری را بین پایه آردوینو و زمین متصل کنید. سمت دیگر دکمه فشاری از طریق یک مقاومت به +5V متصل است. وقتی دکمه فشاری فشرده میشود، پایه مقدار LOW را میخواند؛ وقتی رها میشود، مقدار HIGH را میخواند.

در اینجا یک نمودار سیمکشی تصویری مفید خواهد بود.
توضیح شِفر (کود)
شِفر (کود) آردوینو از ... استفاده میکندpinMode()تابعی برای پیکربندی پایه بهعنوان ورودی. نکتهٔ کلیدی استفاده ازINPUT_PULLUP(در ویدئو در 04:06، 04:23). این مقاومت پول-آپ داخلی نیاز به مقاومت خارجی را در برخی پیکربندیها حذف میکند و سیمکشی را ساده میکند. اینdigitalRead()این تابع وضعیت پایه را میخواند، و یک سادهif-elseاین دستور تعیین میکند که آیا دکمه فشار داده شده است (LOW) یا خیر (HIGH) (در ویدیو در 08:34).
pinMode(2, INPUT_PULLUP); // Configures pin 2 as input with internal pull-up resistor
int pushButton = digitalRead(2); // Reads the state of pin 2
if (pushButton == LOW) {
// Button is pressed
} else {
// Button is not pressed
}
پروژه/نمایش زنده
ویدئو هر دو پیکربندی سیمکشی و رفتار متناظر هر یک را نشان میدهد. آن مشکلاتی را که در صورت حذف مقاومت ممکن است رخ دهد، مانند خوانشهای نامنظم ناشی از اغتشاش (نویز) و کوپلینگ خازنی، برجسته میکند (در ویدئو در 06:18، 06:39، 07:21). نمایش بهوضوح عملکرد پایدار و قابلاطمینانی را که با قرار گرفتن مقاومت حاصل میشود نشان میدهد (در ویدئو در 08:08).
فصول
- [00:00] مقدمه
- [00:30] پیکربندیهای سیمکشی
- [04:12] توضیح شِفر (کود) با استفاده از INPUT_PULLUP
- [05:36] برداشتن مقاومت: نمایش عملی
- [08:33] توضیح شِفر (کود)
تصاویر
/*
* This is an Arduino Sketch for a tutorial video
* explaining why a resistor is needed to be used with a push button
* with Arduino.
*
* Written by Ahmad Shamshiri on July 17, 2018 at 23:11 in Ajax, Ontario, Canada
* For Robojax.com
* Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
*/
void setup() {
// Robojax.com push button tutorial
pinMode(3,INPUT_PULLUP);
Serial.begin(9600);
Serial.println("Robojax Push Button Tutorial");
}
void loop() {
// Robojax.com push button tutorial
int pushButton = digitalRead(3);
if(pushButton == LOW)
{
Serial.println("Pin 3 LOW");
}else{
Serial.println("Pin 3 HIGH");
}
delay(500);
}
/*
* This is an Arduino Sketch for a Tutorial video
* explaining why a resistor is needed to be used with a push button
* with an Arduino to connect the pin to Ground (GND)
*
* Written by Ahmad Shamshiri on July 18, 2018 at 17:36 in Ajax, Ontario, Canada
* For Robojax.com
* Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
*/
void setup() {
// Robojax.com push button tutorial
pinMode(2,INPUT_PULLUP);
Serial.begin(9600);
Serial.println("Robojax Push Button Tutorial");
}
void loop() {
// Robojax.com push button tutorial
int pushButton = digitalRead(2);
if(pushButton == LOW)
{
Serial.println("Button is pushed.");
}else{
Serial.println("Button is NOT pushed.");
}
delay(500);
}
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
منابع و مراجع
هنوز هیچ منبعی موجود نیست.
فایلها📁
هیچ فایلی موجود نیست.
