مهندس موفق الکترونیک

توابع 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 می‌کند.
مطلب پیشنهادی:  آموزش FreeRTOS در آردوینو: اجرای پروژه‌ی ساده‌ی LED چشمک زن در بورد Arduino uno با استفاده از FreeRTOS task

چشمک زن کردن 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) روی پین ۳ تولید می‌کند.
مطلب پیشنهادی:  راه اندازی I2C در آردوینو

تغییر دادن شدت نور 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 آردوینو (توابع پایه)» براتون مفید واقع شده ما را نیز دعا کنید و اگر خواستین می‌توانید از محتوا‌ی رایگان آموزشی حمایت مالی کنید. همچنین نظرات، پیشنهادات و درخواست‌های خود را در کامنت‌ها ⇓ بنویسید. همچنین دیگر آموزش‌های آردوینو و پروژه‌های آردوینو را هم مطالعه کنید.

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

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

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

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