آموزش مثال ها | اطلاعات پایه | فوت وفن ها | پیوندها
Examples > Digital
این مثال استفاده از پارامتر INPUT_PULLUP را با دستور pinMode() شرح می دهد. این پارامتر با برقرار کردن یک ارتباط سریال بین آردوینو و کامپیوتر شما از طریق USB وضعیت یک سوییچ را بررسی می کند.
به علاوه، زمانی که ورودی HIGH است، LED متصل به پین 13 که بر روی برد موجود است، روشن خواهد شد؛ وقتی ورودی LOW است، LED خاموش خواهد شد.
این تصویر با استفاده از نرم افزار Fritzing ایجاد شده است. برای مثال های بیشتر مدار به صفحه پروژه های Fritzing مراجعه نمایید.
دو عدد سیم را به برد آردوینو متصل کنید. سیم مشکی زمین را به یکی از پایه های کلید فشاری متصل می کند. سیم دوم از پین دیجیتال 2 به پایه دیگر کلید فشاری می رود.
کلیدهای فشاری یا سوییچ ها، زمانی که آنها را می فشارید، دو نقطه را در مدار به یکدیگر وصل می کنند. زمانی که کلید فشاری باز(فشرده نشده) است، هیچ اتصالی بین دو پایه کلید فشاری وجود ندارد. چون pull-up داخلی روی پین 2 فعال است و به 5 ولت متصل است، زمانی که کلید باز است، ورودی HIGH را می خوانیم. وقتی کلید بسته شد، آردوینو LOW را می خواند، چون اتصال کامل به زمین برقرار است.
در برنامه زیر، اولین کاری که باید انجام دهید، شروع یک ارتباط سریال بین آردوینو و کامپیوترتان، با سرعت 9600 بیت در ثانیه، در تابع Setup خواهد بود. این عمل با دستور زیر انجام می پذیرد:
Serial.begin(9600);
سپس پین 2 را به عنوان ورودی همراه با مقاومت pull-up داخلی تعریف می کنید.
pinMode(2,INPUT_PULLUP);
خط زیر، پین 13 را که به LED موجود روی برد متصل است، به عنوان خروجی تعریف می کند.
pinMode(13, OUTPUT);
اکنون که تابع Setup شما کامل شد، به تابع Loop برنامه بروید. زمانی که کلید شما فشرده نیست، مقاومت pull-up داخلی، به 5 ولت متصل می گردد. این موجب می شود که آردوینو "1" یا HIGH را گزارش کند. زمانی که کلید فشرده شده است، پین آردوینو به زمین متصل می شود و این مسئله موجب می شود که آردوینو یک "0" یا LOW را گزارش کند.
اولین کاری که باید در تابع Loop برنامه خود انجام دهید، تعریف یک متغیر جهت نگهداری اطلاعاتی است که از سوییچ می آید.
زمانی که اطلاعات سوییچ "1" یا "0" باشد، می توانید از نوع داده ای
int
استفاده کنید.
این متغیر را sensorValue
بنامید و آن را برابر آنچه که از پین 2 دیجیتال می خوانید قرار دهید. شما می توانید
کلی این عملیات را تنها با یک خط کد زیر انجام دهید.
int sensorValue = digitalRead(2);
زمانی که آردوینو ورودی را می خواند، آن را به عنوان یک مقدار دهدهی در کامپیوتر چاپ می کند. شما می توانید این کار را در خط آخر کد، با دستور Serial.println() انجام دهید:
Serial.println(sensorValue, DEC);
حال، زمانی که در محیط برنامه نویسی آردوینو، Serial Monitor را باز می کنید، رشته ای از "0" ها را در زمان بسته بود سوییچ، و یا رشته ای از "1" ها را در زمان باز بودن سوییچ خواهید دید.
LED متصل به پین 13 زمانی که سوییچ HIGH است روشن و زمانی که سوییچ LOW است، خاموش می شود.