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

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

به نام خدا

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

خب اول بگم زبان برنامه نویسی آردوینو 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 رو به عنوان ورودی در نظر گرفته که میشه به اون یک کلید وصل کرد

مطلب پیشنهادی:  شروع به کار با بورد آردوینو

نکته : اگر وضعیت را  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 که رو بردتون هست بدید . با تقسیم ولتاژ مقاومتی

مطلب پیشنهادی:  آردوینو – توابع مثلثاتی

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

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

دستور analog write

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20 دیدگاه

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

    • میلاد جهاندیده

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

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

  3. سلام.
    آیا تمام آموزش ها به صورت pdf موجود هست که بتوان دانلود کرد.
    تشکر

  4. سلام خسته نباشید
    اگه ادوین برنامه ریزی کنم میتونیم برنامه رو پاک کنم

  5. سلام میخوام یه برنامه اردوینو بنویسم یسری مشکلات داره میخواستم بدونم شما میتوند کمک کنید ؟؟؟

  6. سلام ببخشید اردوینو بیشتر مرتبط با چه گرایشی از مهندسی برق هست ؟ به درد گرایش قدرت هم میخوره یا نه؟

  7. دم شما گرم

  8. سلام من از سال 2022 میام سوالم این بود که ایا ممکن با این برد ها دستگاه های تمام اتوماتیک جوجه کشی در ابعاد متوسط ساخت و ایا جوابگو هست من زبان های سی و سیپلاس رو بلدم ولی هنوز وارد الکترونیک نشدم باید از جه دوره های شروع کنم تا با پایه اشنا بشم.ممنونم

    • میلاد جهاندیده

      سلام و وقت بخیر، اگر برنامه نویسی بلد هستین مسیر زیر بنظرم میاد.

      مبانی برق و الکترونیک ( دوره رایگان روی سایت هست.)
      مبانی مدارمنطقی یا الکترونیک دیجیتال
      یادگیری آردوینو

  9. خیلی خوب بود.ممنون

  10. با سلام شما پروژه هم انجام میدید جناب

  11. سلام . متشکرم از اموزشهاتون که بصورت ساده و قابل فهم است .