توابع GPIO آردوینو (توابع پایه)

می‌خواهیم چند تابع پایه مربوط به راه‌اندازی آردوینو و GPIO که پیوسته در IDE آردوینو استفاده می‌شوند را با هم مرور کنیم.

توابع شروع به کار

  1. ()setup
  • این تابع در آغاز اسکچ فراخوانی می‌شود.
  • این تابع برای آغاز و مقداردهی اولیه متغیرها، مد پین‌ها و … استفاده می‌شود.
  • این تابع تنها یک بار و هنگام روشن شدن و یا ریست شدن بورد اجرا می‌شود.
  1. ()loop
  • زمانی که تابع setup تکمیل شد، تابع loop به صورت بی وقفه بارها و بارها اجرا می‌شود.

توابع مورد استفاده GPIO

  1. تابع (pinMode(pin,mode
  • Pin: پینی که قرار است مد آن را انتخاب کنیم.
  • Mode: مدی که قرار است برای پین انتخاب کنیم. این مد می‌تواند INPUT ،INPUT_PULLUP یا OUTPUT باشد.
  • این تابع برای پیکربندی رفتار پین به کار می‌رود، پین می‌تواند به صورت ورودی (INPUT)، ورودی با مقاومت پول آپ (INPUT_PULLUP) و یا خروجی (OUTPUT) رفتار کند.
  • مثال (pinMode(3,INPUT پین دیجیتال شماره ۳ را به عنوان پین ورودی تعریف می‌کند.
  1. تابع (digitalRead(digital_pin
  • Digital_pin: پین دیجیتالی که قرار است خوانده شود.
  • این تابع برای خواندن سیگنال دیجیتال از یک پین دیجیتال مشخص (digital_pin) به کار می‌رود.
  • بورد آردوینو UNO دارای ۱۴ پین دیجیتال از صفر تا ۱۳ می‌باشد.
  • این تابع مقدار HIGH یا LOW را برمی‌گرداند.
  • مثال (digitalRead(5 مقدار پین ۵ را می‌خواند.
  1. تابع (digitalWrite(pin,value
  • Pin: پین دیجیتالی که قرار است در آن چیزی نوشته شود.
  • Value: می‌تواند HIGH یا LOW باشد.
  • این تابع برای نوشتن مقدار HIGH یا LOW در یک پین دیجیتال استفاده می‌شود.
  • مثال: (digitalWrite(4, HIGH پین شماره ۴ را HIGH می‌کند.
مطلب پیشنهادی:  آموزش راه اندازی LCD گرافیکی با آردوینو

چشمک زن کردن LED روبردی متصل به پین ۱۳ آردوینو UNO

/* Blinking on-board LED connected to pin 13 of Arduino UNO */


/* Setup is run once at the start (Power-On or Reset) of sketch */
void setup()
{
    pinMode(13, OUTPUT); /* Pin 13 is defined as Output */
}

/* Loop runs over and over after the startup function */
void loop()
{
    digitalWrite(13, HIGH); /* Make pin 13 High, LED ON */
    delay(1000); /* Wait for 1 second */
    digitalWrite(13, LOW); /* Make pin 13 Low, LED OFF*/
    delay(1000); /* Wait for 1 second */
}
  1. تابع (analogRead(analog_pin
  • analog_pin: پین آنالوگی که قرار است مقدار آن را بخوانیم.
  • این تابع برای خواندن سیگنال آنالوگ از یک پین آنالوگ مشخص (analog_pin) به کار می‌رود.
  • بورد UNO دارای شش کانال ADC از A0 تا A5 می‌باشد.
  • این تابع یک مقدار integer بین صفر تا ۱۰۲۳ برمی‌گرداند.
  • مثال (analogRead(A3 مقدار روی پین آنالوگ A3 را می‌خواند.

خواندن مقدار آنالوگ یک سنسور آنالوگ متصل به پین A1 آردوینو و نمایش مقدار ADC روی سریال مانیتور آردوینو

/* Read analog value on analog pin A1 of Arduino UNO and print the ADC value on Serial Monitor*/


/* Setup is run once at the start (Power-On or Reset) of sketch */
void setup()
{
    Serial.begin(9600); /* opens serial port, sets data rate to 9600 bps */
}

/* Loop runs over and over after the startup function */
void loop()
{
    int adc_val;
    adc_val = analogRead(A1); /* Read analog signal present on pin A1 */
    Serial.print("ADC value is : "); /* Print */
    Serial.println(adc_val); /* Print with \r\n */
    delay(5000); /* Wait for 5 seconds */
}
  1. تابع (analogWrite(pin,value
  • Pin: پین آنالوگی که قرار است چیزی در آن نوشته شود.
  • Value: می‌تواند هر مقداری بین صفر تا ۲۵۵ باشد. صفر به معنی duty cycle صفر درصد و ۲۵۵ به معنی duty cycle صد درصد می‌باشد.
  • مثال (analogWrite(3, 128 یک موج PWM با duty cycle پنجاه درصد (٪50) روی پین ۳ تولید می‌کند.
مطلب پیشنهادی:  ارتباط RS-485 بین STM32 و بورد Arduino Uno

تغییر دادن شدت نور LED متصل به پین ۵ آردوینو با تولید موج PWM با duty cyle متغیر

/* Vary intensity of external LED connected to pin 5 of Arduino UNO  */


/* Setup is run once at the start (Power-On or Reset) of sketch */
void setup()
{
    pinMode(5, OUTPUT);  /* Pin 5 is defined as Output */
}

/* Loop runs over and over after the startup function */
void loop()
{
    for(int i =0; i<256; i++)
     {
        analogWrite(5, i); /* Vary intensity of LED connected externally to pin 5 of Arduino */
        /* Vary the intensity by applying PWM of duty cycle varying from 0 to 100% (writing value 0 to 255) */
        delay(300); /* Wait for 300 milliseconds */
     }
}

منبع: ترجمه از سایت electronicwings.com

اگر آموزش «توابع GPIO آردوینو (توابع پایه)» براتون مفید واقع شده ما را نیز دعا کنید و اگر خواستین می‌توانید از محتوا‌ی رایگان آموزشی حمایت مالی کنید. همچنین نظرات، پیشنهادات و درخواست‌های خود را در کامنت‌ها ⇓ بنویسید. همچنین دیگر آموزش‌های آردوینو و پروژه‌های آردوینو را هم مطالعه کنید.

همچنین لطفا اپلیکیشن اندویدی ما را هم نصب کنید.

دانلود اپلیکیشن میکرو دیزاینر الکترونیک
اگر این نوشته‌ برایتان مفید بود ما را نیز دعا کنید و کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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