به نام خدا
در این قسمت میخواهیم شما رو با زبان برنامه نویسی آردوینو آشنا کنیم و بعضی از دستورات در این زبان رو با هم بررسی کنیم
خب اول بگم زبان برنامه نویسی آردوینو c++ , c هست البته به این معنی نیست که شما فقط با این زبان میتوانید برنامه نویسی کنید
نرم افزار های دیگه ای برای برنامه نویسی آردوینو هستند که در زیر چند نمونه معرفی میکنم
چند نرم افزار و زبان مشهور برنامه نویسی:
1- ardublock
2-snap4arduino
3-python
4- زبان ++C,C
خب میریم سراغ زبان رایج آردوینو که همون c و ++c هست .
شما وقتی نرم افزار آردوینو رو اجرا میکنید دو تابع میبینید.
از اینجا نرم افزار آردوینو را دانلود کنید.
نکته مهم : موارد زیر در جلسات قبلی توضیح داده شده و فقط صرفا جهت مرور است.
setup و loop
void setup() { کد هایی که در این قسمت نوشته میشه یکبار اجرا میشن } void loop()
{ کد هایی که در این قسمت نوشته میشه قسمت اصلی برنامتون هست و تا بینهایت تکرار میشن }
تعیین وضعیت پین ها
در این خط پین شماره 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 هرتز است
از این دستور میتونین در برنامه کم نور و پر نور کردن ال ای دی استفاده کنید یا کنترل سروو موتور !
خب این دستور ها تقریبا دستور های ابتدایی برای شروع برنامه نویسی بود در تصویر زیر تمامی کد هایی که در برنامه نویسی آردوینو مورد استفاده قرار میگیره اومده که پیشنهاد میکنم شکل زیر رو نگاه کنین
برای بزرگ شدن عکس و دیدن عکس با کیفیت اینجا کلیک کنید
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
سلام و ممنون از مطالب خوبتون.
میخواستم ببینم آیا یه همچین کدی میتوان نوشت؟
(digitalwrite(12,13,HIGH
سلام، تا جایی که من دیدم تابع فقط دوتا ارگومان داره و برای کد بالا خطای Syntax میده اگر بنویسید.
اصل تابع بصورت زیر هست :
(digitalWrite(pin, value
اولین ورودی شماره پین و دومی مقدار خروجی هست که LOW یا HIGH میشه نوشت
سلام
فوق العاده ست مطالب شما
امیدوارم موفق باشید.
سلام، خواهش میکنیم. امیدواریم بتوانیم مطالب آموزشی بیشتری در آینده براتون تولید کنیم.
سلام.
آیا تمام آموزش ها به صورت pdf موجود هست که بتوان دانلود کرد.
تشکر
سلام، نه متاسفانه.
سلام خسته نباشید
اگه ادوین برنامه ریزی کنم میتونیم برنامه رو پاک کنم
سلام میخوام یه برنامه اردوینو بنویسم یسری مشکلات داره میخواستم بدونم شما میتوند کمک کنید ؟؟؟
سلام، بله همینجا بپرسید اگر بلد باشیم جواب میدیم. و همچنین سعی کن اموزش های قسمت زیر را اول بخونید.
https://melec.ir/category/microcontrollers/arduino-boards
سلام
میخوایم یه استپر موتور رو با یه سنسور التراسونیک کنترل کنیم درایوی هم که برای استپر داریم l298nهستش
به این صورت که اگه سنسور کمتر از ۱۰ سانت تشخیص داد استپر چپ گرد و اگه بیشتر از ۱۰ تشخیص داد استپر راست گرد بگرده و اگه فاصله برابر ۱۰سانت شد موتور خاموش بشه
سلام، شاید بهتر باشه پروژه ها و مطالب لینک های زیر را ببینید:
پروژه ساخت رادار با آردوینو
استپ موتور
آموزش ساخت ردیاب خورشید با آردوینو و استپر موتور و مقاومت نوری
پروژه های آردوینو
سلام ببخشید اردوینو بیشتر مرتبط با چه گرایشی از مهندسی برق هست ؟ به درد گرایش قدرت هم میخوره یا نه؟
سلام، آردوینو بصورت مختص یک گرایش برق نیست ولی شاید گرایش الکترونیک دیجیتال بیشتر مرتبط است. کلا برای طراحی و ساخت نمونه (Prototype) میتونید از آن استفاده کنید مثلا در حال طراحی یک درایور هستید و شاید آردوینو کمکتون کنه. همچنین امروزه PLC های ساخته شده با آردوینو هم هستن.
دم شما گرم
عالی بود
سلام من از سال 2022 میام سوالم این بود که ایا ممکن با این برد ها دستگاه های تمام اتوماتیک جوجه کشی در ابعاد متوسط ساخت و ایا جوابگو هست من زبان های سی و سیپلاس رو بلدم ولی هنوز وارد الکترونیک نشدم باید از جه دوره های شروع کنم تا با پایه اشنا بشم.ممنونم
سلام و وقت بخیر، اگر برنامه نویسی بلد هستین مسیر زیر بنظرم میاد.
مبانی برق و الکترونیک ( دوره رایگان روی سایت هست.)
مبانی مدارمنطقی یا الکترونیک دیجیتال
یادگیری آردوینو
خیلی خوب بود.ممنون
با سلام شما پروژه هم انجام میدید جناب
سلام . متشکرم از اموزشهاتون که بصورت ساده و قابل فهم است .
با غرض سلام و وقت بخیر
آیا برای ساخت ربات زبان پایتون بهتر هست یا C++ که از آن برای آردوینو استفاده کنیم؟
خیلی ممنون