آشنایی با زبان های برنامه نویسی آردوینو

به نام خدا

در این قسمت میخواهیم شما رو با زبان برنامه نویسی آردوینو آشنا کنیم و بعضی از دستورات در این زبان رو با هم بررسی کنیم

خب اول بگم زبان برنامه نویسی آردوینو c++  ,   c  هست البته به این معنی نیست که شما فقط با این زبان میتوانید برنامه نویسی کنید

نرم افزار های دیگه ای برای برنامه نویسی آردوینو هستند که در زیر چند نمونه معرفی میکنم

چند نرم افزار و زبان مشهور برنامه نویسی:

1- ardublock

زبان برنامه نویسی آردوینو

2-snap4arduino

آشنایی با زبان برنامه نویسی آردوینو

3-python

PicsArt_01-16-08.52.20

4- زبان ++C,C

خب میریم سراغ زبان رایج آردوینو که همون c  و ++c  هست .

شما وقتی نرم افزار آردوینو رو اجرا میکنید دو تابع میبینید.

از اینجا نرم افزار آردوینو را دانلود کنید.

نکته مهم : موارد زیر در جلسات قبلی توضیح داده شده و فقط صرفا جهت مرور است.

setup و loop

void setup()

{

کد هایی که در این قسمت نوشته میشه یکبار اجرا میشن

}

void loop()
{

کد هایی که در این قسمت نوشته میشه قسمت اصلی برنامتون هست و تا بینهایت تکرار میشن

}
تعیین وضعیت پین ها
خب برای اینکه یک پین از برد آردینو رو خروجی یا ورودی در نظر بگیریم از دستور زیر استفاده میکنیم 
pinMode( وضعیت , شماره پین );
به بزرگی و کوچکی حروف دقت کنین .
وضعیت : یکی از حالت های INPUT ، OUTPUT ، INPUT_PULLUP  می تواند باشد.
توضیحات در آردوینو با // مشخص میشود  (مثلا برای یک خط برنامه میخواین توضیح بنویسین تا یادتون نره این خط برنامه برا چی بود !)
مثال
 pinMode(13, OUTPUT);
در این خط  پین شماره سیزده رو به عنوان خروجی در نظر گرفت که میتونیم یه ال ای دی به اون وصل کنیم . یا رله . یا چیزهایی که میتونن خروجی باشن
pinMode(2, INPUT);

در این خط پین شماره 2 رو به عنوان ورودی در نظر گرفته که میشه به اون یک کلید وصل کرد

مطلب پیشنهادی:  آموزش نرم افزار Fritzing ، نحوه‌ی عملکرد و استفاده از آن

نکته : اگر وضعیت را  INPUT_PULLUP قرار دهیم . پین به عنوان ورودی در نظر گرفته میشود و پول آپ داخلی فعال میشود . یعنی وضعیت این پایه همیشه یک میشود .(مقاومت بالا کش داخلی )

دستور digital write

برای صفر و یک کردن یک پایه استفاده میشود و دو حالت دارد یا HIGH یا LOW

مثال :

 digitalWrite(13, HIGH);

در اینجا پایه شماره سیزده یک شده است

دستور delay

این دستور برای ایجاد تاخیر زمانی استفاده میشود

delay(مقدار زمان بر حسب میلی ثانیه );

delay(1000);

در این خط برنامه یک ثانیه تاخیر ایجاد میکند

دستور digital read

digitalRead(شماره پین );

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

خواندن مقادیر آنالوگ با دستور analogRead انجام میشود

پین های آنالوگ از A0 تا  A5 است

analogRead(A0);

در این خط برنامه مقدار پین A0 از صفر تا پنج ولت خوانده میشود ولی به این معنی نیست که مثلا 2.5 ولت بود آن را 2.5 نشان دهد

آردوینو بر 0 تا 5 ولت را از 0 تا 1023 نشان میدهد  . مثلا اگر 5 ولت به این پین داده شود مقدار 1023 را نشان میدهد

حالا شما میتونید این بازه ی 0 تا 5 ولت اندازه گیری رو با دستور زیر تغییر بدین

analogReference(EXTERNAL);

وقتی این دستور رو نوشتید باید یک ولثاژ مرجع اندازه گیری به پین Aref که رو بردتون هست بدید . با تقسیم ولتاژ مقاومتی

مطلب پیشنهادی:  راه اندازی I2C در آردوینو

آشنایی با زبان برنامه نویسی آردوینو

این ولتاژی که به این پین میدید میشه آستانه ولتاژ اندازه گیری آنالوگتون . مثلا 1.5 ولت . که اگر 1.5 ولت به پین A0 بدید مقدار 1023 نشان داده میشه

دستور analog write

در حقیقت آردوینو یا همون میکرو کنترلر  نمیتونه یک مقدار آنالوگ رو در خروجی اعمال کنه و این کار رو بصورت موج pwm انجام میده .

پایه هایی که موج pwm رو تولید میکنند 3 و 5 و 6 و 9 و 10 و 11 هستن

analogWrite(مقدار , شماره پایه );

خب این مقدار میتونه از 0 تا 255 باشه این مقدار همون میزان duty cycle هست

 زبان برنامه نویسی آردوینو

pwm یک موج مربعی است که دارای فرکانس ثابتی هست . این فرکانس برای پایه ها 490 هرتز است

از این دستور میتونین در برنامه کم نور و پر نور کردن ال ای دی استفاده کنید یا کنترل سروو موتور !

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

 زبان برنامه نویسی آردوینو

برای بزرگ شدن عکس و دیدن عکس با کیفیت اینجا کلیک کنید

دیگر جلسات این آموزش

مطلب پیشنهادی:  وقفه ها در آردوینو

درباره ی محمد امین امیری

سلام . محمد امین امیری هستم . داشنجوی کارشناسی تکنولوژی کنترل ابزار دقیق و علاقمند به آردوینو . امیدوارم از مطالب بنده استفاده مفید ببرید

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

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

4 دیدگاه

  1. سلام و ممنون از مطالب خوبتون.
    میخواستم ببینم آیا یه همچین کدی میتوان نوشت؟
    (digitalwrite(12,13,HIGH

    • سلام، تا جایی که من دیدم تابع فقط دوتا ارگومان داره و برای کد بالا خطای Syntax میده اگر بنویسید.
      اصل تابع بصورت زیر هست :
      (digitalWrite(pin, value
      اولین ورودی شماره پین و دومی مقدار خروجی هست که LOW یا HIGH میشه نوشت

  2. سلام
    فوق العاده ست مطالب شما
    امیدوارم موفق باشید.