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