آموزش آردوینو UNO ( کنترل LED با کلید )

به آموزش آردوینو (قسمت هفتم – کنترل LED با کلید) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۱ انجام شد!

مقاومت های Pull Up و Pull Down

وقتی که ما بخواهیم برد را به کلید وصل کنیم آن را پول آپ یا پول دان میکنیم. چون درغیر این صورت نویزهای موجود در اطراف بر روی پایه میکروکنترولر تاثیر میگذارند.

نکته : معمولا مقاومت پول آپ و دان بین ۴٫۷ تا ۱۰ کیلو اهم انتخاب می شوند زیرا اگر مقدار مقاومت کمتر از ۴٫۷ کیلو اهم باشد، ممکن است باعث اتصال کوتاه شود و اگر هم بیشتر از ۱۰ کیلو اهم باشد، ممکن است دیگر نویز ها را از بین نبرد .

پیاده سازی عملی پروژه

برای این پروژه مدار خود را مانند شکل زیر ببندید. پایه آند LED را به پایه مورد نظر خود در برد آردوینو متصل کنید و پایه کاتد آن را نیز به یکی از GND های برد وصل کنید.سپس پایه آند کلید را به یک مقاومت با مقدار مناسب وصل کرده ، مقاومت را به Vcc و یکی از پایه های ۲ یا ۳ متصل کنید و پایه کاتد کلید آن را نیز به یکی از GND های برد وصل کنید.

نکته : دلیل اینکه برای کلید از پایه های ۲ یا ۳ استفاده میکنیم تابع اینتراپتی است که در ادامه با آن آشنا میشویم . در صورتی که از این تابع استفاده نکنیم آند کلید را به هر پینی میتوانیم متصل کنیم.

شبیه سازی پروژه در نرم افزار پروتئوس

یک برد آردوینو ، یک LED ، یک Button و یک مقاومت بین ۴.۷K تا ۱۰K اهم را در پروتئوس از قسمت Devices به صفحه بیافزایید و آنها را مانند شکل وصل کنید.

تابع attachInterrupt

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

تابع وقفه دارای سه ورودی است .

digitalPinToInterrupt(pin) : شماره وقفه است .

function : نام تابعی است که در هنگام وقفه فراخوانی میشود.

mode : حالت وقفه که دارای چهار حالت LOW ، CHANGE ، RISING و FALLING است.

LOW : برای فعال کردن وقفه هنگامی که پین روی حالت LOW است.

CHANGE : برای فعال کردن وقفه هنگامی که مقدار پین تغیر می کند.

RISING :برای فعال کردن وقفه هنگامی که پین از مقدار LOW به HIGH می رود.

FALLING:برای فعال کردن وقفه هنگامی که پین از مقدار HIGH به LOW می رود.

نکـته : در آردوینو UNO پین های شماره ۲ و ۳ برای ایجاد وقفه قابل استفاده هستند .پین ۲ وقفه ۰ و پین ۳ وقفه ۱ را ایجاد میکند.

//attachInterrupt(digitalPinToInterrupt(pin), function, mode);

کد های دستوری

ابتدا پین های مربوط به LED و کلید را مشخص کنید .سپس متغیری از نوع int برای حالت LED تعریف میکنیم.

int LED = 9;
int Button = 2;
int state = LOW;

در تابع setup پین مود LED و Button (کلید به صورت پول آپ ) را مشخص میکنیم . سپس وقفه ایی با شماره وقفه مورد نظر ، تابع تغیر وضعیت و حالت state ایی که از قبل تعریف کردیم ایجاد می کنیم.

void setup()
{
  pinMode(LED, OUTPUT);
  pinMode(Button, INPUT_PULLUP);
  attachInterrupt(0, ChangingState, CHANGE);
}

در تابع loop وضعیت ال ای دی را با تابع digitalWrite تعیین کرده و سپس delay کمی را اعمال میکنیم.

void loop()
{
  digitalWrite(LED, state);
  delay(10);
}

در آخر تابعی که میخواهیم در وقفه اجرا شود مینویسیم.در این تابع با هر بار فشار دادن کلید وضعیت ال ای دی که در ابتدا LOW تعریف شده نقیض میشود.

نکته : در صورتی که در vs code کد مینویسید باید تابع را قبل از attachInterrupt تعریف کنید.

void ChangingState()
{
  state = !state;
}

پایان آموزش آردوینو (قسمت هفتم – کنترل LED با کلید) 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...