میخواهیم چند تابع پایه مربوط به راهاندازی آردوینو و GPIO که پیوسته در IDE آردوینو استفاده میشوند را با هم مرور کنیم.
توابع شروع به کار
- ()setup
- این تابع در آغاز اسکچ فراخوانی میشود.
- این تابع برای آغاز و مقداردهی اولیه متغیرها، مد پینها و … استفاده میشود.
- این تابع تنها یک بار و هنگام روشن شدن و یا ریست شدن بورد اجرا میشود.
- ()loop
- زمانی که تابع setup تکمیل شد، تابع loop به صورت بی وقفه بارها و بارها اجرا میشود.
توابع مورد استفاده GPIO
- تابع (pinMode(pin,mode
- Pin: پینی که قرار است مد آن را انتخاب کنیم.
- Mode: مدی که قرار است برای پین انتخاب کنیم. این مد میتواند INPUT ،INPUT_PULLUP یا OUTPUT باشد.
- این تابع برای پیکربندی رفتار پین به کار میرود، پین میتواند به صورت ورودی (INPUT)، ورودی با مقاومت پول آپ (INPUT_PULLUP) و یا خروجی (OUTPUT) رفتار کند.
- مثال (pinMode(3,INPUT پین دیجیتال شماره ۳ را به عنوان پین ورودی تعریف میکند.
- تابع (digitalRead(digital_pin
- Digital_pin: پین دیجیتالی که قرار است خوانده شود.
- این تابع برای خواندن سیگنال دیجیتال از یک پین دیجیتال مشخص (digital_pin) به کار میرود.
- بورد آردوینو UNO دارای ۱۴ پین دیجیتال از صفر تا ۱۳ میباشد.
- این تابع مقدار HIGH یا LOW را برمیگرداند.
- مثال (digitalRead(5 مقدار پین ۵ را میخواند.
- تابع (digitalWrite(pin,value
- Pin: پین دیجیتالی که قرار است در آن چیزی نوشته شود.
- Value: میتواند HIGH یا LOW باشد.
- این تابع برای نوشتن مقدار HIGH یا LOW در یک پین دیجیتال استفاده میشود.
- مثال: (digitalWrite(4, HIGH پین شماره ۴ را HIGH میکند.
چشمک زن کردن 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 */ }
- تابع (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 */ }
- تابع (analogWrite(pin,value
- Pin: پین آنالوگی که قرار است چیزی در آن نوشته شود.
- Value: میتواند هر مقداری بین صفر تا ۲۵۵ باشد. صفر به معنی duty cycle صفر درصد و ۲۵۵ به معنی duty cycle صد درصد میباشد.
- مثال (analogWrite(3, 128 یک موج PWM با duty cycle پنجاه درصد (٪50) روی پین ۳ تولید میکند.
تغییر دادن شدت نور 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 آردوینو (توابع پایه)» براتون مفید واقع شده ما را نیز دعا کنید و اگر خواستین میتوانید از محتوای رایگان آموزشی حمایت مالی کنید. همچنین نظرات، پیشنهادات و درخواستهای خود را در کامنتها ⇓ بنویسید. همچنین دیگر آموزشهای آردوینو و پروژههای آردوینو را هم مطالعه کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.