آی پی امداد
آی پی امداد
آریا الکترونیک parcham تکشو

شروع برنامه نویسی در محیط اردوینو

ali833

کاربران vip(افتخاری)
vip افتخاری
کاربر
2009-10-03
20
156
teh
با نگاهی به ساختار کلی برنامه های نوشته شده در محیط اردوینو مشاهده میکنید برنامه از حداقل دو تابع اصلی تشکیل شده که این دو تابع در تمامی برنامه های که در اینده خواهید نوشت وجود خواهند داشت.

تابع اول تابع setup() می باشد این تابع هنگامیکه برنامه اجرا میشود به منظور مقدار دهی اولیه به متغیرها تعیین جهت پینها فراخوانی کتابخانه ها و غیره استفاده می شود این تابع بعد از ریست برد یا اتصال تغذیه تنها یکبار اجرا خواهد شد.

تابع بعدی تابع loop() همان طور که از نام تابع مشخص است یک حلقه بی نهایت می باشد که معادل دستور while در محیط های برنامه نویسی دیگر است این تابع همیشه در حال اجرا می باشد و به شما امکان تغییر و پاسخ را می دهد از این تابع برای کنترل برد به صورت پویا استفاده میگردد و برنامه اصلی شما در درون این تابع باید نوشته شود.
خوب قبل از اینکه به ادامه اموزش بپردازیم چند نکته دیگه که لازم است درمورد ساختار این بردها بدونید رو میگم.

ساختار سخت افزاری اردوینو بدین صورت است که به عنوان مثال شما تعدادی ورودی ،خروجی دیجیتال دارید و این ورودی و خروجی ها روی برد با شماره های 0 تا 13 مشخص شده اند(اینجا برد mega2560 ) و هنگام استفاده از یک پین در برنامه دیگر شما به اینکه این پین متعلق به کدام پورت میکرو و کدام پین هست کاری ندارید!!!! و تنها با استفاده از شماره پین مورد نظر عملیاتهای مورد نیازتون رو انجام میدید مثلا با دستور pinMode(3,INPUT) پین شماره 3 شما به صورت ورودی در میاد می بینید که احتیاجی به تنظیم رجیسترهای DDR و غیره نیست و یکی از مزایای پلتفرم اردوینو حداقل کردن درگیری کاربر با رجیسترهای میکرو می باشد.
البته این نکته را هم بگم که در صورت نیاز هم میتوانید مستقیما با رجیسترها درمحیط اردو کار کنید.

خوب برای روشنتر شدن موضوع یک مثال ساده رو تحلیل می کنیم
کد:
int buttonPin = 3;


// setup initializes serial and the button pin


void setup()


{
Serial.begin(9600); 
pinMode(buttonPin, INPUT);
}




// loop checks the button pin each time,
// and will send serial if it is pressed 


void loop()


{
if (digitalRead(buttonPin) == HIGH) 
Serial.print('H'); 
else Serial.print('L');


delay(1000);
}

خط اول برنامه عبارت int buttonPin=3; رو مشاهده میکنید با استفاده از این عبارت و به منظور راحتی و خوانایی برنامه اسم پین دیجیتال شماره 3 رو که قصد داریم در برنامه ازش استفاده کنیم buttonPin میگذاریم البته هر نامی که شما دلخواهتون هست میتونین استفاده کنید.

می رسیم به تابع Setup() همونطور که قبلا گفته بودیم داخل این تابع مقادیر اولیه و تنظیمات مورد نیازمون رو انجام میدیم (اکثرا بردهای اردوینو بدون هیچ سخت افزار اضافی قابلیت ارسال و دریافت داده از طریق پورت usb به صورت سریال مجازی را دارند)

تابع اول مربوط به تنظیمات پورت سریال مجازی ما می باشد که برای راه اندازی ان تنها یک پارامتر نیاز است و ان سرعت انتقال داده است(همین حالت را با راه اندازی پورت سریال در میکرو AVR در پلتفرمهای دیگه مقایسه کنید)
تابع بعدی تابع pinMode می باشد که از این تابع برای تعیین جهت پین به صورت ورودی خروجی استفاده می شود INPUT به صورت ورودی OUTPUT به صورت خروجی.
buttonPin هم نام درنظر گرفته شده برای پین 3 هست .میتوان نامی هم انتخاب نکرد و مستقیما از شماره پین استفاده کرد.

می رسیم به تابع loop در این تابع برنامه اصلی ما قرار دارد که یک دستور if..else سادست بنابراین فقط به توضیح توابع استفاده شده میپردازیم.
تابع اول digitalRead می باشد این تابع برای خواندن وضعیت یک پین دیجیتال مورد استفاده قرار می گیرد. مقدار برگشتی این تابع وضعیت پین را مشخص می کند اگر پین 1 بود مقدار HIGH اگر صفر بود LOW رو بر میگرداند.
تابع بعدی Serial.print می باشد این تابع برای ارسال یک کاراکتر از طریق پورت سریال مورد استفاده قرار میگیرد.
عملکرد کلی برنامه:
در این مثال با اتصال یک کلید به پین دیجیتال شماره 3 برد درصورتیکه با فشار کلید ولتاژ 5 به پین اتصال یابد کلمه H و در غیر اینصورت کلمه L از طریق پورت سریال به کامپوتر ارسال میشود.
Untitled.jpg

به همین راحتی...............:99::99:

سوالی بود در خدمتم
:approve::approve::approve::approve:
 

ali833

کاربران vip(افتخاری)
vip افتخاری
کاربر
2009-10-03
20
156
teh
سلام....
قبلا جایی دیده بودم که بردهای اردو رو توی پروتیوس شبیه سازی کردن میگردم پیدا کردم اطلاع میدم همینجا
 

ali833

کاربران vip(افتخاری)
vip افتخاری
کاربر
2009-10-03
20
156
teh
داخل این لینکی که گذاشتم توضیح داده شده که چطور میشه اردو رو داخل پروتئوس شبیه سازی کرد
Arduino Simulator: Simulate Arduino in Proteus Using Arduino Protius library

البته کلا شبیه سازها دقت کافی ندارن و در اکثر موارد برنامه در شبیه ساز درست کار میکنه ولی در عمل نه به خاطر اینکه شبیه ساز ها از یکسری موارد و خطاها عبور می کنند ولی خوب در عمل اینطور نیست کوچکترین اشکالی در برنامه و یا سخت افزار بعث میشه سیستم کار نکنه
 

soroosh1384

کاربر
2012-02-03
10
27
سلام
من در محیط برنامه نویسی آردوینو هر تغییری در برنامه میدم بلافاصله SAVE میشه
چطور میتونم این گزینه را غیر فعال کنم
ممنون
 

bahramikhah

VIP+ افتخاری
کاربر
2008-09-15
434
1,111
55
کبودراهنگ همدان
داخل این لینکی که گذاشتم توضیح داده شده که چطور میشه اردو رو داخل پروتئوس شبیه سازی کرد
Arduino Simulator: Simulate Arduino in Proteus Using Arduino Protius library

البته کلا شبیه سازها دقت کافی ندارن و در اکثر موارد برنامه در شبیه ساز درست کار میکنه ولی در عمل نه به خاطر اینکه شبیه ساز ها از یکسری موارد و خطاها عبور می کنند ولی خوب در عمل اینطور نیست کوچکترین اشکالی در برنامه و یا سخت افزار بعث میشه سیستم کار نکنه

با سلام
همانطور که واقفید برنامه پروتئوس برای شبیه سازی به فایل .HEX نیازمند است ، من از روش زیر برای آدرس دهی به پروتئوس استفاده می کنم
الف - دکمه START ویندوز را زده و در بخش جستجو عبارت %temp% را تایپ نمود دکمه Enter را می زنم
PIC1.png

ب - پنجره Temp ویندوز باز می شود


PIC2.png

بالطبع ممکن است تعداد فایل های داخل این پنجره خیلی زیاد باشد !!!
توصیه اساتید مجرب رایانه اینه که شما برای کارکرد بهتر کامپیوتر، لازمه که این فایل ها را هر ماه یکبار همه را پاک کنید
و برنامه آنالیز و چکاب هارد دیسک (درایو C:) و برنامه یکپارچه سازی را اجرا نمایید


ج - دنبال پوشه ای بنام arduino_build_950767 باشید ، شماره ذکر شده در هربار اجرای پروژه جدید آردینو عوض می شود

د- پوشه را باز نموده ، فایل هگز در این بخش قرار دارد

PIC4.png

در این مثال اسم پروزه من DS1307_74595.ino است .

و - روی نوار آدرس کلیک کرده و مسیر فایل را کپی نموده و در پروتئوس به میکروی مورد نظر یا برد آردینو معرفی نمایید

PIC5.png

با این روش ، اگه اصلاحیه و ویرایشی در فایل آردینو انجام بدید ، تغییرات در این فایل صورت گرفته و بروز رسانی می شود

و اگر پروژه شما کامل شده و می خواهید فایل هگز را در پوشه ای مستقل برای خودتان داشته باشید.
می توانید فایل را از اینجا cut یا copy نموده و در کنار فایل شماتیک و سورس برنامه آردینو قرار دهید

موفق باشید
 
آخرین ویرایش:

bahramikhah

VIP+ افتخاری
کاربر
2008-09-15
434
1,111
55
کبودراهنگ همدان
توصیه اساتید مجرب رایانه اینه که شما برای کارکرد بهتر کامپیوتر، لازمه که این فایل ها را هر ماه یکبار همه را پاک کنید
و برنامه آنالیز و چکاب هارد دیسک (درایو Cشروع برنامه نویسی در محیط اردوینو و برنامه یکپارچه سازی را اجرا نمایید

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

چرا که این پوشه حاوی فایل های موقت بوده که متاسفانه در دراز مدت، حجم زیادی از هارد دیسک را اشغال می کند
 

پیوست‌ها

  • 35.9 کیلوبایت بازدیدها: 134
آخرین ویرایش:
بالا