ثابت‌ها در آردوینو

blog
۱۳۹۶-۰۳-۰۹
3 دقیقه

 ثابت‌ها در آردوینو عبارات از پیش تعریف‌شده‌ای در زبان آردوینو هستند. از ثابت‌ها برای راحت‌تر خوانده شدن برنامه‌ها استفاده می‌شود. ثابت‌ها را در چند گروه دسته‌بندی می‌کنیم:

تعریف سطح منطقی: true و false (ثابت‌های بولی)

برای نمایش درستی و نادرستی در زبان آردوینو دو ثابت وجود دارد: true و false

false

توضیح false راحت‌تر است.  false به‌عنوان 0 (صفر) تعریف شده است.

true

true معمولاً به‌عنوان 1 تعریف می‌شود؛ که درست است اما true تعریف گسترده‌تری دارد. هر عدد صحیحی (integer) که صفر نباشد، در مفهوم بولی به عنوان true در نظر گرفته می‌شود. پس 1- ، 2 و 200- هم (در مفهوم بولی) true محسوب می‌شوند.

توجه کنید که ثابت‌های true و false برعکس HIGH, LOW, INPUT و OUTPUT، با حروف کوچک نوشته می‌شوند.

تعریف سطح پینی: HIGH و LOW

هنگام خواندن و یا نوشتن یک پین دیجیتالی، فقط دو مقدار وجود دارد که پین می‌تواند بگیرد (به آن ست شود): HIGH و LOW.

HIGH

بسته به اینکه پین به INPUT ست شود یا OUTPUT، معنی HIGH تا حدی متفاوت است. وقتی‌که پین به‌وسیله‌ی ()pinMode به‌عنوان INPUT تعریف می‌شود و با ()digitalRead می‌خواند، آردوینو (Atmega) اگر شرایط زیر باشد، HIGH را گزارش می‌دهد:

  • ولتاژ بیشتر از 3.0V  در پین وجود دارد. (بردهای 5V)
  • ولتاژ بیشتر از 2.0V  در پین وجود دارد. (بردهای 3.3V)

یک پین هم‌چنین ممکن است با ()pinMode به‌عنوان یک INPUT پیکربندی شود و متعاقباً HIGH را با ()digitalWrite بسازد. این عمل ممکن است مقاومت pull up (پول آپ) 20k داخلی را فعال کند. مقاومتی که پین ورودی را به HIGH در خواندن می‌برد، مگر به‌وسیله‌ی مدار خارجی LOW شود. این طرز کارکرد INPUT_PULLUP است که در پایین با جزئیات بیشتر توضیح داده شده است.

وقتی‌که یک پین با ()pinMode به OUTPUT پیکربندی شود و با ()digitalWrite به HIGH تنظیم (ست) شود، پین در حالات زیر است:

  • 5 ولت (بردهای 5V)
  • 3.3 ولت (بردهای 3.3V)

در چنین حالتی، این پین می‌تواند منبع جریان باشد؛ برای مثال روشن کردن یک LED که به‌وسیله‌ی یک سری مقاومت به زمین متصل است.

LOW

معنی LOW نیز بسته به اینکه پین در وضعیت INPUT ست شده یا OUTPUT، متفاوت است. وقتی‌که پین به‌عنوان INPUT با ()pinMode پیکربندی می‌شود و با ()digitalRead می‌خواند، آردوینو (Atmega) اگر شرایط زیر باشد، LOW را گزارش می‌دهد:

  • ولتاژ کمتر از 1.5V در پین وجود دارد. (بردهای 5V)
  • ولتاژ کمتر از 1.0V (تقریبا) در پین وجود دارد. (بردهای 3.3V)

وقتی‌که یک پین با ()pinMode به OUTPUT پیکربندی شود و با ()digitalWrite به LOW تنظیم (ست) شود، پین در حالت 0 ولت است (در بردهای 5V و 3.3V). در چنین حالتی، این پین می‌تواند جریان را کاهش دهد؛ برای مثال روشن کردن یک LED که به‌وسیله‌ی یک سری مقاومت 5+ ولت (یا 3.3+ ولت) متصل است.

تعریف مد پین‌های دیجیتال: INPUT, INPUT_PULLUP, and OUTPUT

از پین‌های دیجیتال می‌توان به‌عنوان INPUT , INPUT_PULLUP, یا OUTPUT استفاده کرد. تغییر یک پین با ()pinMode، رفتار الکتریکی پین را تغییر می‌دهد.

پین‌های تنظیم‌شده به‌عنوان INPUT‌

گفته می‌شود که پین‌های آردوینو (Atmega) که به‌عنوان INPUT با ()pinMode تنظیم‌شده‌اند، در حالت آمپدانس بالا هستند. پین‌های تنظیم‌شده به‌عنوان INPUT‌ جریان بسیار‌کمی از مداری که در حال نمونه‌برداری هستند را می‌‌کشند؛ معادل یک سری از مقاومت‌های 100 مگااهمی در مقابل پین. این امر این‌ها را برای خواندن یک سنسور، مناسب می‌سازد.

اگر شما پین‌تان را به‌عنوان INPUT تنظیم کرده‌اید و در حال خواندن یک سوییچ هستید، وقتی‌که سوییچ در وضعیت باز (open) باشد، پین input شناور خواهد بود و نتیجه‌ای غیرقابل‌پیش‌بینی را خواهد داد. برای مطمئن بودن از انجام صحیح عمل خواندن (read) هنگامی‌که سوییچ open است، یک مقاومت pull-up یا pull-down باید استفاده شود. هدف استفاده از این مقاومت‌ها، قرار دادن پین در وضعیتی شناخته‌شده، هنگامی open بودن سوییچ است. معمولا یک مقاومت 10K اهمی انتخاب می‌شود؛ چراکه مقداری است به‌اندازه‌ی کافی کم (low)، که باعث می‌شود پایه از حالت شناور خارج شود و همزمان مقداری است به‌اندازه‌ی کافی زیاد (high)، که هنگام بسته (close) شدن سوییچ، جریان زیادی از آن عبور نکند. برای اطلاعات بیشتر آموزش Digital Read Serial را ببینید.

اگر از مقاومت pull-down استفاده شود، وقتی‌که سوییچ باز (open) است، پین LOW و وقتی‌که سوییچ بسته (close) است، پین HIGH خواهد بود.

اگر از مقاومت pull-up استفاده شود، وقتی‌که سوییچ باز (open) است، پین HIGH و وقتی‌که سوییچ بسته (close) است، پین LOW خواهد بود.

پین‌های تنظیم‌شده به‌عنوان INPUT_PULLUP

میکروکنترلر Atmega  روی آردوینو مقاومت pull-up درونی دارد (مقاومت‌هایی که به‌صورت داخلی به پاور متصل هستند) که شما می‌توانید به آن دسترسی داشته باشید. اگر شما ترجیح می‌دهید که از این مقاومت‌ها به‌جای مقاومت‌های pull-up خارجی استفاده کنید، از آرگومان INPUT_PULLUP در ()pinMode استفاده کنید.

شاید برای شما مفید باشد: ترانزیستور GaN چیست و چه کاربردی دارد؟

برای مشاهده مثال کاربردی، به آموزش Input Pullup Serial مراجعه کنید.

پین‌های تنظیم‌شده به‌عنوان ورودی، چه با INPUT، چه با INPUT_PULLUP، اگر به ولتاژ منفی (ولتاژ زمین) یا ولتاژ بیش از ولتاژ کاری برد (5V or 3V) وصل شوند، ممکن است آسیب ببینند و یا حتی از کار بیفتند.

پین‌های تنظیم‌شده به‌عنوان Outputs

گفته می‌شود پین‌های که به‌عنوان OUTPUT با ()pinMode تنظیم‌ شده‌اند، در حالت آمپدانس پایین هستند؛ به این معنی که فقط می‌توانند مقدار اساسی جریان را برای مدارهای دیگر تأمین کنند. پین‌های Atmega می‌توانند تا 40mA (میلی‌آمپر) جریان را برای مدار/دستگاه‌های دیگر تأمین(source) و یا جذب(sink) کنند؛ همین باعث می‌شود که این‌ها برای تأمین توان ال‌ای‌دی‌ها مناسب باشند؛ چرا‌که ال‌ای‌دی‌ها معمولاً کمتر از  40mA مصرف دارند.

لود‌های بیشتر از 40mAA (مثل موتورها) به ترانزیستور یا دیگر مدار‌های رابط نیاز خواهند داشت.

پین‌های تنظیم‌شده به‌عنوان Outputs اگر به ولتاژ منفی (ولتاژ زمین) یا ولتاژ بالای ریل پاور وصل شوند، ممکن است آسیب ببینند و یا حتی از کار بیفتند.

تعریف توکارها: LED_BUILTIN

بیشتر بردهای آردوینو در سری‌های شامل مقاومت (رزیستور)، یک پین متصل به یک LED توکار دارند. ثابت LED_BUILTIN شماره‌ی پینی است که LED توکار به آن متصل است. در بیشتر بردها این LED به پین دیجیتال 13 وصل است.

()pinMode در آردوینو

متغیرهای boolean در آردوینو

ثابت‌های عدد صحیح

رفرنس

منبع

اطلاعات
0
0
لینک و اشتراک
profile

Yalda

متخصص الکترونیک

علاقه‌مند به یادگیری چیزهای جدید!

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله