‫مجموعه‬‫آردوینو‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫آموزش‬(Arduino)‫رباتیک‬ ‫های‬ ‫پروژه‬ ‫محوریت‬ ‫با‬
‫مدرس‬:
‫زاهدی‬ ‫تمسکنی‬ ‫ابوذر‬
‫مکاترونیک‬ ‫ارشد‬ ‫کارشناسی‬
‫تهران‬ ‫تحقیقات‬ ‫و‬ ‫علوم‬ ‫واحد‬ ‫اسالمی‬ ‫آزاد‬ ‫دانشگاه‬
‫رباتیک‬ ‫های‬ ‫پروژه‬ ‫محوریت‬ ‫با‬ ‫آردوینو‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫آموزش‬ ‫مجموعه‬
faradars.org/fvrd93011
‫؟‬ ‫چیست‬ ‫نویسی‬ ‫برنامه‬
•‫برنامه‬‫نویسی‬‫یعنی‬
‫فرآیندی‬‫که‬‫محاسبات‬‫ما‬‫را‬‫برای‬‫تحقق‬‫خواسته‬،‫هایمان‬‫به‬‫صورت‬‫برنامه‬‫ای‬‫قابل‬‫اجرا‬‫و‬‫مشهود‬‫تبدیل‬‫می‬‫کند‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫؟‬ ‫چیست‬ ‫نویسی‬ ‫برنامه‬
•‫شاید‬‫این‬‫سوال‬‫پیش‬‫بیاید‬‫که‬‫ما‬‫چه‬‫چیزی‬‫را‬‫برنامه‬‫ریزی‬‫می‬‫کنیم‬‫و‬‫چه‬‫سخت‬‫افزاریست‬‫که‬‫برنامه‬‫های‬‫محول‬‫شده‬‫را‬‫اجرا‬
‫می‬‫کند‬‫؟‬
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫بگیریم؟‬ ‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫باید‬ ‫چرا‬
•‫دنیای‬،‫آینده‬‫متعلق‬‫به‬‫کامپیوتر‬‫ها‬‫و‬‫تکنولوژی‬‫نوین‬‫است‬
‫بگیریم‬ ‫فرا‬ ‫را‬ ‫کشور‬ ‫آن‬ ‫رسمی‬ ‫زبان‬ ‫تا‬ ‫نیازمندیم‬ ،‫کشورها‬ ‫دیگر‬ ‫با‬ ‫نظر‬ ‫تبادل‬ ‫برای‬ ‫ما‬ ‫که‬ ‫طور‬ ‫همان‬...
‫طریق‬ ‫از‬ ‫کار‬ ‫این‬ ‫که‬ ‫گرفت‬ ‫فرا‬ ‫را‬ ‫کامپیوترها‬ ‫با‬ ‫سخن‬ ‫زبان‬ ‫باید‬ ‫نیز‬ ‫آینده‬ ‫در‬‫کامپیوت‬ ‫نویسی‬ ‫برنامه‬‫ر‬‫است‬ ‫میسر‬.
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫گیرید‬ ‫می‬ ‫فرا‬ ‫چیزهایی‬ ‫چه‬ ‫آموزشی‬ ‫فیلم‬ ‫این‬ ‫در‬!‫؟‬
1-‫آموزش‬‫برنامه‬‫نویسی‬‫به‬‫صورت‬‫کاربردی‬‫و‬‫ساخت‬‫انواع‬‫وسایل‬‫مختلف‬‫الکترونیکی‬.
2-‫یادگیری‬‫نوشتن‬‫برنامه‬‫های‬‫ساده‬‫و‬‫کاربردی‬‫که‬‫هرکدام‬‫از‬‫آنها‬‫می‬‫تواند‬‫خود‬‫یک‬‫پروژه‬‫مجزا‬‫باشد‬.
3-‫ساخت‬‫یک‬‫ربات‬‫کوچک‬‫از‬‫همان‬‫پروژه‬‫های‬‫که‬‫در‬‫طول‬‫آموزش‬‫یادگرفته‬‫ایم‬.
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫یادبگیریم‬ ‫است‬ ‫قرار‬ ‫که‬ ‫هایی‬ ‫پروژه‬
‫اصلی‬ ‫های‬ ‫پروژه‬
•‫راهنمایی‬ ‫چراغ‬ ‫ساخت‬ ‫و‬ ‫زن‬ ‫چشمک‬ ‫چراغ‬ ‫اندازی‬ ‫راه‬
•‫سنسور‬ ‫اندازی‬ ‫راه‬(‫حسگر‬)‫و‬ ‫اولتراسونیک‬ ،‫فتوسل‬ ،‫قرمز‬ ‫مادون‬ ‫از‬ ‫اعم‬ ‫مختلف‬ ‫های‬...
•‫موتور‬ ‫درایورهای‬ ‫نویسی‬ ‫برنامه‬DC
•‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•‫های‬ ‫ماژول‬ ‫دیگر‬ ‫و‬ ‫بلندگو‬ ‫اتصال‬ ‫آموزش‬‫صوتی‬
•....
•‫مسیریاب‬ ‫کوچک‬ ‫ربات‬ ‫یک‬ ‫ساخت‬ ً‫ا‬‫نهایت‬ ‫و‬/‫یاب‬ ‫فاصله‬
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬
•‫همانطور‬‫که‬‫قبال‬‫گفتیم‬‫ما‬‫برای‬‫برنامه‬‫نویسی‬‫نیاز‬‫به‬‫یک‬‫سخت‬‫افزای‬‫به‬‫نام‬‫پردازشگر‬(CPU)‫داریم‬‫که‬‫فرامین‬‫مارا‬
‫محاسبه‬‫و‬‫اجرا‬‫کند‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬
•‫حال‬‫فرض‬‫کنیم‬‫اگر‬‫بخواهیم‬‫یک‬‫ماشین‬‫لباس‬‫شویی‬‫را‬‫برنامه‬‫ریزی‬‫و‬‫کنترل‬،‫کنیم‬‫آیا‬‫منطقی‬‫است‬‫که‬‫از‬CPU‫کامپیوتر‬‫و‬
‫امثال‬‫آن‬‫استفاده‬‫شود‬‫؟؟‬
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬
•‫در‬‫این‬‫هنگام‬‫دانشمندان‬‫به‬‫فکر‬‫ساخت‬‫وسیله‬‫ای‬‫افتادند‬‫که‬‫همانند‬‫یک‬،‫کامپیوتر‬‫قابلیت‬‫های‬‫آن‬‫را‬‫داشته‬‫باش‬‫د‬‫اما‬
‫قدرت‬‫پردازش‬‫آن‬‫کم‬‫باشد‬‫و‬‫در‬‫نتیجه‬‫قیمت‬‫آن‬‫بسیار‬‫ارزان‬‫و‬‫مصرف‬‫انرژی‬‫آن‬‫بسیار‬‫پایین‬‫خواهد‬‫بود‬
‫و‬‫اینگونه‬‫شد‬‫که‬،‫میکروکنترلرها‬‫ساخته‬‫شد‬...
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬
•‫آردوینو‬‫یک‬‫برد‬‫آزمایشی‬‫توسعه‬‫پذیر‬(Development Board)،‫است‬‫که‬‫در‬‫هسته‬‫آن‬‫یک‬‫میکروکنترلر‬
‫مدل‬AVR Atmega328pATMEL‫قرار‬‫گرفته‬‫است‬.
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬
•‫آردوینو‬‫چه‬‫مزیت‬‫هایی‬‫دارد‬‫؟‬
1-‫برای‬‫استفاده‬‫از‬‫آن‬‫نیازی‬‫به‬‫لحیم‬‫کاری‬‫ندارید‬
2-‫یک‬‫نرم‬‫افزار‬ً‫ا‬‫ال‬‫کام‬‫رایگان‬‫و‬‫متن‬‫باز‬(open Source)‫به‬‫همراه‬‫سخت‬‫افزار‬‫متن‬‫باز‬‫دارید‬‫که‬‫تمامی‬‫اطالعات‬‫آن‬‫موجود‬‫و‬‫قابل‬
‫اشتراک‬‫است‬
3-‫زبان‬‫برنامه‬‫نویسی‬‫در‬،‫آن‬‫به‬‫صورت‬‫سطح‬‫باال‬(‫به‬‫زبان‬‫انسان‬‫نزدیک‬‫بوده‬)‫و‬‫برنامه‬‫نویسی‬‫آن‬‫با‬‫استفاده‬‫از‬‫نرم‬‫اف‬‫زار‬‫مخصوص‬
‫آردوینو‬(Arduino IDE)‫به‬‫مراتب‬‫ساده‬‫تر‬‫از‬‫دیگر‬‫کامپایلر‬‫های‬‫موجود‬‫است‬
4-‫نیاز‬‫به‬‫سخت‬‫افزار‬‫جانبی‬‫برای‬‫پروگرام‬‫کردن‬‫بورد‬‫خود‬‫ندارید‬.(‫به‬‫دلیل‬‫وجود‬‫رابط‬USB)
5-‫دارا‬‫بودن‬‫کتابخانه‬‫های‬‫غنی‬‫و‬‫کدهای‬‫رایگان‬‫و‬‫آموزش‬‫های‬‫متنوع‬‫در‬‫سطح‬‫بین‬‫المللی‬
‫و‬.....
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫مختلف‬ ‫انواع‬
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫؟‬ ‫کنیم‬ ‫شروع‬ ‫کجا‬ ‫از‬
•‫در‬‫قدم‬‫اول‬‫نیاز‬‫است‬‫یک‬‫برد‬‫آردوینو‬‫خریداری‬‫کنیم‬
Arduino UNO
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫؟‬ ‫کنیم‬ ‫شروع‬ ‫کجا‬ ‫از‬
•‫جهت‬‫خرید‬‫بردهای‬‫آردوینو‬‫و‬‫تجیزات‬،‫جانبی‬‫چند‬‫فروشگاه‬‫اینترنتی‬‫را‬‫معرفی‬‫می‬‫کنیم‬:
www.Shop.aftabrayaneh.com
www.Roboeq.ir
www.Eca.ir
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫شروع‬ ‫برای‬ ‫الزم‬ ‫وسایل‬ ‫حداقل‬ ‫خرید‬...
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫باز‬ ‫متن‬ ‫برد‬ ‫یک‬ ‫آردوینو‬(open source)‫است‬
•‫این‬‫که‬‫می‬‫گوییم‬‫آردوینو‬‫یک‬‫برد‬‫متن‬‫باز‬(open Source)،‫است‬‫یعنی‬‫چه‬‫؟‬
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬‫باز‬ ‫متن‬ ‫برد‬ ‫یک‬(open source)‫است‬
•‫پروگرام‬‫کردن‬‫بوت‬‫لودر‬(Boot loader)‫آردوینو‬‫بر‬‫روی‬‫میکروکنترلر‬ATMEGA328 , ATMEGA168
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫کار‬ ‫انجام‬ ‫شرح‬
2
‫افزا‬ ‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
3
‫کار‬ ‫انجام‬ ‫شرح‬
‫افزا‬ ‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬‫افزار‬ ‫نرم‬ ‫نصب‬ ‫و‬ ‫معرفی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
4
‫کار‬ ‫انجام‬ ‫شرح‬
‫افزا‬ ‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬‫افزار‬ ‫نرم‬ ‫نصب‬ ‫و‬ ‫معرفی‬
‫الکترونیک‬ ‫مدارات‬ ‫بستن‬‫ی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
5
‫کار‬ ‫انجام‬ ‫شرح‬
‫افزا‬ ‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬‫افزار‬ ‫نرم‬ ‫نصب‬ ‫و‬ ‫معرفی‬
‫الکترونیک‬ ‫مدارات‬ ‫بستن‬‫ی‬
‫نهایی‬ ‫اندازی‬ ‫راه‬ ‫و‬ ‫نویسی‬ ‫برنامه‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫پروژه‬LED‫آردوینو‬ ‫با‬ ‫زن‬ ‫چشمک‬
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫نصب‬
•‫سایت‬ ‫به‬ ‫ابتدا‬Arduino.cc‫نسخه‬ ‫آخرین‬ ،‫دانلود‬ ‫قسمت‬ ‫در‬ ‫و‬ ‫کرده‬ ‫مراجعه‬
‫پایدار‬(stable)‫نمایید‬ ‫دریافت‬ ‫را‬ ‫افزار‬ ‫نرم‬
8
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫بندیم‬ ‫می‬ ‫آزمایش‬ ‫برد‬ ‫روی‬ ‫بر‬ ‫را‬ ‫زیر‬ ‫شکل‬ ‫مدار‬
9
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
• Void setup() {
‫دستورات‬‫برنامه‬‫نویسی‬
}
•‫تابع‬ ‫این‬(Function)‫برای‬‫سازی‬ ‫آماده‬‫فقط‬ ‫دستورات‬ ‫تمامی‬ ‫و‬ ،‫رود‬ ‫می‬ ‫کار‬ ‫به‬ ‫برنامه‬‫بار‬ ‫یک‬‫شود‬ ‫می‬ ‫اجرا‬ ‫آن‬ ‫در‬
•‫مانند‬ ‫دستوراتی‬ ‫مثال‬ ‫برای‬pinMode‫تنظیمات‬ ‫و‬Serial‫است‬ ‫قسمت‬ ‫این‬ ‫در‬
• Void loop(){
‫دستورات‬‫برنامه‬‫نویسی‬
}
•‫کند‬ ‫می‬ ‫تکرار‬ ‫را‬ ‫برنامه‬ ً‫ا‬‫دائم‬ ‫و‬ ،‫کند‬ ‫می‬ ‫اجرا‬ ‫دیگری‬ ‫از‬ ‫پس‬ ‫یکی‬ ‫را‬ ‫برنامه‬ ‫خطوط‬ ‫تابع‬ ‫تابع‬ ‫این‬
•‫باشد‬ ‫می‬ ‫تابع‬ ‫این‬ ‫در‬ ‫نویسی‬ ‫برنامه‬ ،‫آردوینو‬ ‫در‬ ‫برنامه‬ ‫اصلی‬ ‫ی‬ ‫هسته‬!!
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫؟‬ ‫سوال‬
‫توابع‬ ‫این‬ ‫جز‬ ‫توانیم‬ ‫می‬ ‫آیا‬,‫؟؟‬ ‫باشیم‬ ‫داشته‬ ‫نیز‬ ‫دیگری‬ ‫تابع‬
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫بله‬!!!‫کنیم‬ ‫ایجاد‬ ‫خود‬ ‫برنامه‬ ‫در‬ ‫تابع‬ ‫دلخواه‬ ‫تعداد‬ ‫به‬ ‫توانیم‬ ‫می‬ ‫ما‬
int sensor(){(‫مثال‬
int sensorValue = analogRead(A0);
‫مقدار‬0-1023‫به‬ ‫را‬0-255‫کند‬ ‫می‬ ‫تبدیل‬sensorValue /= 4; //
}‫نهایی‬ ‫مقدار‬sensorValue‫گرداند‬ ‫بازمی‬ ‫اصلی‬ ‫برنامه‬ ‫به‬ ‫را‬//return sensorValue;
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫برنامه‬ ‫در‬ ‫توضیحات‬ ‫خط‬ ‫چند‬ ‫گذاشتن‬
/*
‫توضیحات‬
*/
•‫خط‬ ‫یک‬ ‫در‬ ‫فقط‬ ‫توضیحات‬ ‫گذاشتن‬
‫خط‬ ‫یک‬ ‫در‬ ‫توضیح‬//
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫متغیرها‬ ‫انواع‬
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫متغیرها‬ ‫انواع‬
‫آرایه‬(Arrays: )
int MyArray[] = {0‫,متغیر‬ ‫متغیر‬1 , ‫متغیر‬2 , … }
‫کنیم‬ ‫می‬ ‫عمل‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫آرایه‬ ‫یک‬ ‫از‬ ‫مقدار‬ ‫خواندن‬ ‫برای‬:
Example  Value = MyArray[2];
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫ریاضی‬ ‫عملیات‬
X++  X=X+1
X--  X=X-1
X+=Y  X=X+Y
X-=Y  X= X-Y
X*=Y  X=X*Y
X /= Y  X=X/Y
‫تقسیم‬ ‫مانده‬ ‫باقی‬X % Y 
8
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬ ‫برنامه‬ ‫برای‬
•‫ای‬ ‫مقایسه‬ ‫عملیات‬
‫مساوی‬X == Y 
‫نامساوی‬X != Y 
x‫از‬ ‫کوچکتر‬X < Y 
x‫از‬ ‫بزرگتر‬X > Y 
X‫مساوی‬ ‫کوچکتر‬X <= Y 
X‫مساوی‬ ‫بزرگتر‬X >= Y 
AND‫منطقی‬X && Y 
Or‫منطقی‬X || Y 
NOT‫منطقی‬!X 
9
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫پیشنهاد‬
www.FaraDars.Org
10
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• HIGH / LOW
•‫منطق‬ ‫دادن‬ ‫نشان‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫دستورات‬ ‫این‬1‫است‬ ‫صفر‬ ‫یا‬.‫در‬ ‫ولتاژ‬ ‫سطح‬ ‫که‬ ‫است‬ ‫برقرار‬ ‫یک‬ ‫منطق‬ ‫زمانی‬5‫و‬ ‫ولت‬
‫منطق‬ ‫زمانی‬0(‫صفر‬)‫باشد‬ ‫ولت‬ ‫صفر‬ ‫در‬ ‫ولتاژ‬ ‫سطح‬ ‫که‬ ‫است‬ ‫قرار‬ ‫بر‬.
• Example  digitalWrite(13, HIGH);  ‫شماره‬ ‫پایه‬ ‫یعنی‬13‫برسان‬ ‫یک‬ ‫منطقی‬ ‫سطح‬ ‫به‬ ‫را‬(5‫شود‬ ‫ولت‬)
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• INPUT / OUTPUT
•‫دستور‬ ‫با‬ ‫همراه‬ ً‫ا‬‫غالب‬pinMode()‫پایه‬ ‫یک‬ ‫بودن‬ ‫خروجی‬ ‫یا‬ ‫ورودی‬ ‫دادن‬ ‫نشان‬ ‫برای‬ ‫و‬ ،‫آید‬ ‫می‬
‫است‬ ‫نظر‬ ‫مورد‬
• Example  pinMode(13, OUTPUT);
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• digitalWrite(‫پایه‬ ‫,نام‬ ‫وضعیت‬HIGH ‫یا‬ LOW);
•‫بالعکس‬ ‫یا‬ ‫و‬ ‫صفر‬ ‫به‬ ‫یک‬ ‫از‬ ،‫پایه‬ ‫یک‬ ‫منطقی‬ ‫وضعیت‬ ‫تغییر‬
• digitalRead(‫پایه‬ ‫)نام‬
•‫منطقی‬ ‫صورت‬ ‫به‬ ‫پایه‬ ‫یک‬ ‫مقدار‬ ‫خواندن‬(‫یک‬ ‫و‬ ‫صفر‬ ‫فقط‬)
• Example  value = digitalRead(12);
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• analogRead(‫آنالوگ‬ ‫پایه‬ ‫نام‬ )
•‫دقت‬ ‫با‬ ‫آنالوگ‬ ‫های‬ ‫پایه‬ ‫از‬ ‫آنالوگ‬ ‫صورت‬ ‫به‬ ‫مقدار‬ ‫یک‬ ‫خواندن‬10‫بیت‬(‫یعنی‬0‫تا‬1023)
•‫نکته‬:‫صورت‬ ‫به‬ ‫کردن‬ ‫تعریف‬ ‫به‬ ‫نیازی‬ ‫دیجیتال‬ ‫برخالف‬ ‫آنالوگ‬ ‫های‬ ‫پایه‬pinMode()‫ندارد‬
Example  value = analogRead(A0);
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• analogWrite( PWM ‫نام‬‫پایه‬‫های‬ , ‫تا‬ ‫صفر‬ ‫مقدار‬255 );
•‫مربعی‬ ‫های‬ ‫پالس‬ ‫تولید‬PWM‫با‬duty Cycle‫مختلف‬ ‫های‬
Example 
void loop(){
int value = analogRead(A0); // ‫تا‬ ‫صفر‬ ‫مقدار‬ ‫خواندن‬1023‫پتانسیومتر‬ ‫از‬
value /=4 ; // ‫تقسیم‬0-1023‫به‬0-255
analogWrite(13, value); // ‫شماره‬ ‫پایه‬ ‫به‬ ‫پالس‬ ‫اعمال‬13
}
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• delay(‫ثانیه‬ ‫میلی‬ ‫حسب‬ ‫;)بر‬
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• Serial.begin( ‫اطالعات‬ ‫تبادل‬ ‫نرخ‬ );
• 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400,
57600, 115200
•‫نکته‬:‫دستور‬Serial.begin()‫تابع‬ ‫در‬ ‫باید‬void setup() { }‫بیاید‬
8
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬ ‫ویژه‬
• Serial.println(‫سریال‬ ‫پورت‬ ‫در‬ ‫نمایش‬ ‫جهت‬ ‫;)اطالعات‬
•‫استفاده‬ ‫مورد‬ ‫سریال‬ ‫پورت‬ ‫روی‬ ‫بر‬ ،‫شما‬ ‫های‬ ‫نوشته‬ ‫و‬ ‫اطالعات‬ ‫نمایش‬ ‫جهت‬ ‫دستور‬ ‫این‬
‫گیرد‬ ‫می‬ ‫قرار‬.
•‫با‬ ‫آن‬ ‫فرق‬Serial.print()‫در‬ ‫و‬ ‫کرده‬ ‫اجرا‬ ‫جدید‬ ‫خط‬ ‫در‬ ‫را‬ ‫دستورات‬ ‫که‬ ‫است‬ ‫آن‬ ‫در‬Serial
Monitor‫کرد‬ ‫مشاهده‬ ‫توان‬ ‫می‬ ‫بهتر‬ ‫را‬ ‫خروجی‬
• Example 
• Serial.println(“Faradars.org”); // ‫نوشته‬ ‫فقط‬ ‫نمایش‬ ‫و‬ ‫چاپ‬
• Serial.println(SensorValue); ‫سنسور‬ ‫مقدار‬ ‫نمایش‬ ‫و‬ ‫چاپ‬//
9
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫در‬ ‫شرطی‬ ‫های‬ ‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬
•‫شرطی‬ ‫ساختار‬if-else
if (‫شد‬ ‫برقرار‬ ‫شرط‬ ) {
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬
{
else} ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دیگری‬ ‫دستورات‬
{
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫در‬ ‫شرطی‬ ‫های‬ ‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬
•‫شرطی‬ ‫ساختار‬if-else 2
if (‫شد‬ ‫برقرار‬ ‫اول‬ ‫شرط‬ ) {
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬
{
else if( ‫شد‬ ‫برقرار‬ ‫دوم‬ ‫شرط‬ ) {
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬
{
else { ‫این‬ ‫غیر‬ ‫در‬‫صورت‬
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دیگری‬ ‫دستورات‬
{
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫در‬ ‫شرطی‬ ‫های‬ ‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬
•‫ساختار‬‫حلقه‬For
For ( ‫اولیه‬ ‫مقدار‬ ; ‫شرط‬ ; ‫گام‬ ‫)میزان‬ {
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬
{
Example
for (int i=0; i<10; i++){
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
Delay(1000);}
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫در‬ ‫شرطی‬ ‫های‬ ‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬
•‫ساختار‬‫حلقه‬While
while (‫است‬ ‫برقرار‬ ‫شرط‬ ‫که‬ ‫)مادامی‬ {
‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬
{
‫نظر‬ ‫در‬ ‫حلقه‬ ‫یک‬ ‫برای‬ ‫کنترلی‬ ‫ابزار‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫شرط‬ ‫یک‬ ‫ما‬ ‫که‬ ‫رود‬ ‫می‬ ‫کار‬ ‫به‬ ‫آن‬ ‫برای‬ ‫دستور‬ ‫این‬
‫شود‬ ‫می‬ ‫اجرا‬ ‫همواره‬ ‫حلقه‬ ‫داخل‬ ‫دستورات‬ ،‫است‬ ‫برقرار‬ ‫شرط‬ ‫این‬ ‫که‬ ‫مادامی‬ ‫و‬ ،‫بگیریم‬
‫نکته‬:‫ای‬ ‫برنامه‬ ‫در‬ ‫اگر‬while(1){ }‫می‬ ‫کار‬ ‫به‬ ‫تکرار‬ ‫نهایت‬ ‫بی‬ ‫حلقه‬ ‫یک‬ ‫ساخت‬ ‫برای‬ ،‫داشت‬ ‫وجود‬
‫رود‬.‫صحیح‬ ‫پرانتز‬ ‫داخل‬ ‫شرط‬ ‫همواره‬ ‫چون‬(True)‫است‬ ‫برقرار‬ ‫و‬(.‫نیست‬ ‫صفر‬)
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫در‬ ‫شرطی‬ ‫های‬ ‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬
•‫ساختار‬‫حلقه‬do - While
do{
‫بپذیرد‬ ‫انجام‬ ‫باید‬ ‫که‬ ‫دستوراتی‬
{
while( ‫بررسی‬ ‫مورد‬ ‫شرط‬ );
‫با‬ ‫دستور‬ ‫این‬ ‫فرق‬while‫کروشه‬ ‫داخل‬ ‫دستورات‬ ‫که‬ ‫است‬ ‫آن‬ ‫در‬do { }‫شود‬ ‫می‬ ‫اجرا‬ ‫یکبار‬ ‫حداقل‬
‫خیر؟‬ ‫یا‬ ‫است‬ ‫برقرار‬ ‫آیا‬ ‫که‬ ‫شود‬ ‫می‬ ‫بررسی‬ ‫آن‬ ‫شرط‬ ‫حلقه‬ ‫پایان‬ ‫ودر‬
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫پیشنهاد‬
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫؟‬ ‫چیست‬ ‫فتوسل‬
•‫فتوسل‬‫یک‬‫مقاومت‬‫حساس‬‫به‬‫نور‬،‫است‬‫که‬‫با‬‫تغییر‬‫میزان‬‫شدت‬،‫نور‬‫مقاومت‬‫خروجی‬‫آن‬‫تغییر‬‫می‬‫کند‬
•‫نام‬‫دیگر‬‫آن‬)LDR (Light dependent Resistor‫که‬‫مقاومت‬‫آن‬‫در‬‫نورکم‬‫و‬‫تاریک‬‫زیاد‬‫بوده‬‫و‬‫اگر‬‫نور‬‫بیشتری‬
‫به‬‫آن‬‫بتابد‬‫مقاومت‬‫آن‬‫کمتر‬‫خواهد‬‫شد‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫به‬ ‫فتوسل‬ ‫اتصال‬
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫؟‬ ‫چیست‬ ‫قرمز‬ ‫مادون‬ ‫سنسور‬
•‫سنسور‬‫مادون‬‫قرمز‬(Infara Red)‫یا‬،‫فروسرخ‬‫نوری‬‫نامرئی‬(‫از‬‫دید‬‫ما‬‫انسان‬‫ها‬)‫است‬‫و‬‫به‬‫دلیل‬‫ویژگی‬‫های‬‫خوب‬‫ذاتی‬‫و‬
‫طول‬‫موج‬،‫مناسب‬‫جهت‬‫انتقال‬،‫اطالعات‬‫و‬‫فاصله‬‫یابی‬‫مورد‬‫استفاده‬‫قرار‬‫می‬‫گیرد‬.
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫؟‬ ‫چیست‬ ‫قرمز‬ ‫مادون‬ ‫سنسور‬
•‫سنسور‬TCRT5000‫یک‬‫نمونه‬‫سنسور‬‫ارزان‬‫قیمت‬‫و‬‫پکیج‬‫شده‬‫جهت‬‫استفاده‬‫در‬‫تعیین‬،‫مسافت‬‫سنجش‬‫دور‬‫در‬‫انکودرها‬‫و‬
‫همچنین‬‫در‬‫ربات‬‫های‬‫مسیر‬‫یاب‬‫نیز‬‫کاربرد‬‫دارد‬.
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫سنسور‬ ‫اتصال‬TCRT5000‫آردوینو‬ ‫به‬
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫فراصوت‬ ‫سنسور‬(UltraSonic)‫؟‬ ‫چیست‬
•‫سنسور‬Ultrasonic،‫با‬‫استفاده‬‫از‬‫امواج‬‫فراصوت‬(‫که‬‫گوش‬‫انسان‬‫قادر‬‫به‬‫شنیدن‬‫آن‬‫نیست‬)،‫به‬‫وسیله‬‫ی‬‫قطعه‬‫ی‬
‫پیزوالکتریکی‬‫که‬‫بر‬‫روی‬‫آن‬‫تعبیه‬‫شده‬،‫است‬‫تولید‬‫شده‬‫و‬‫به‬‫ما‬‫جهت‬‫تشخیص‬‫مسافت‬‫ها‬‫با‬‫دقت‬ً‫ا‬‫تقریب‬‫باال‬‫یی‬‫کمک‬‫می‬‫کند‬.
•‫جالب‬‫است‬‫بدانید‬‫این‬‫سنسورها‬‫از‬‫الگوی‬‫مسیریابی‬‫خفاش‬،‫ها‬‫الهام‬‫گرفته‬‫شده‬‫است‬‫که‬‫همانطور‬‫که‬‫می‬‫دانید‬‫این‬‫پ‬‫رندگان‬
‫قدر‬‫به‬‫دیدن‬‫محیط‬‫اطراف‬‫خود‬‫نیستند‬‫و‬‫با‬‫شنیدن‬‫بازخورد‬(‫پژواک‬)‫صدایی‬‫که‬‫از‬‫محیط‬‫دریافت‬‫می‬‫شود‬‫موانع‬‫را‬‫تش‬‫خیص‬
‫می‬‫دهند‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫فراصوت‬ ‫سنسور‬(UltraSonic)‫؟‬ ‫چیست‬
•‫نحوه‬‫ی‬‫عملکرد‬‫سنسور‬‫اولتراسونیک‬‫به‬‫این‬‫شکل‬‫است‬‫که‬‫یک‬‫صوت‬‫در‬‫فرکانس‬‫باال‬‫را‬‫تولید‬‫و‬‫ارسال‬‫می‬‫کند‬،‫پس‬‫از‬‫برخورد‬
‫این‬‫صوت‬‫با‬‫موانع‬،‫محیطی‬‫پژواک‬‫آن‬‫بازگشت‬‫داده‬‫می‬،‫شود‬‫و‬‫در‬‫گیرنده‬‫با‬‫استفاده‬‫از‬‫سنسور‬‫پیزو‬‫الکتریکی‬‫که‬‫در‬‫ح‬‫الت‬‫معکوس‬
‫فرستنده‬‫تنظیم‬‫شده‬‫است‬‫زمان‬‫طی‬‫شده‬‫پس‬‫از‬‫ارسال‬‫صوت‬‫و‬‫بازگشت‬‫آن‬‫را‬‫محاسبه‬‫می‬‫کنیم‬.
‫و‬‫از‬‫طریق‬‫محاسبه‬‫سرعت‬‫صوت‬(340‫متر‬‫بر‬‫ثانیه‬)‫می‬‫توان‬‫فاصله‬‫تا‬‫جسم‬‫مورد‬‫نظر‬‫را‬‫تخمین‬‫زد‬!
•
1 ‫ثانیه‬
340 ‫متر‬
×
1000000 ‫میکروثانیه‬
1 ‫ثانیه‬
×
1 ‫متر‬
100 ‫متر‬ ‫سانتی‬
≈ 29
‫میکروثانیه‬
‫متر‬ ‫سانتی‬
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫فراصوت‬ ‫سنسور‬ ‫یک‬ ‫معرفی‬UltraSonic
•‫ماژول‬SRF04‫یک‬‫ماژول‬‫ارزان‬‫قیمت‬‫و‬‫مناسب‬‫جهت‬‫استفاده‬‫در‬‫پروژه‬‫ما‬‫می‬‫باشد‬
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫دماسنج‬ ‫سنسور‬ ‫اندازی‬ ‫راه‬LM35
•‫ویژگی‬‫های‬‫مهم‬‫سنسور‬‫دماسنج‬lm35:
•‫خروجی‬‫دما‬‫به‬‫درجه‬‫سانتی‬‫گراد‬(‫سلسیوس‬)
•‫خروجی‬‫خطی‬‫سازی‬،‫شده‬10‫میلی‬‫ولت‬‫به‬‫ازای‬
‫تغییر‬‫هر‬‫درجه‬‫سلسیوس‬
•‫رنج‬‫اندازه‬‫گیری‬‫از‬55-‫تا‬150+‫درجه‬‫سلسیوس‬
•‫ولتاژ‬‫کاری‬‫بین‬4‫تا‬30‫ولت‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫دماسنج‬ ‫سنسور‬ ‫اندازی‬ ‫راه‬LM35
‫؟‬ ‫است‬ ‫چگونه‬ ‫سنسور‬ ‫اتصال‬ ‫ی‬ ‫نحوه‬
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫دماسنج‬ ‫سنسور‬ ‫اندازی‬ ‫راه‬LM35
‫نحوه‬‫ی‬‫اتصال‬‫پایه‬‫های‬‫سنسور‬‫به‬‫آردوینو‬:
•‫فقط‬‫کافی‬‫است‬‫پایه‬Vout‫را‬‫به‬‫یکی‬‫از‬‫پایه‬‫های‬Analog input‫متصل‬‫کنیم‬
•‫و‬‫به‬‫ترتیب‬‫پایه‬‫های‬GND‫و‬+Vs‫را‬‫به‬GND‫و‬+5v‫آدروینو‬‫متصل‬‫می‬‫کنیم‬
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫دماسنج‬ ‫سنسور‬ ‫اندازی‬ ‫راه‬LM35
•‫دقت‬‫اندازه‬‫گیری‬‫دما‬‫چگونه‬‫تعیین‬‫می‬‫شود‬‫؟‬
5𝑉𝑟𝑒𝑓
1024
= 4.8 mv  ‫دقت‬‫اندازه‬‫گیری‬‫قسمت‬‫مبدل‬‫آنالوگ‬‫به‬‫دیجیتال‬‫یه‬‫ازای‬‫تغییر‬‫هر‬‫یک‬‫واحد‬
T (° C) = 4.8 * ADC Count / 10  ‫با‬‫فرض‬‫ماکزیمم‬‫مقدار‬1023‫برای‬‫مبدل‬‫آنالوگ‬‫به‬،‫دیجیتال‬‫حداکثر‬‫دمای‬
‫قابل‬‫اندازه‬‫گیری‬‫از‬‫طریق‬‫این‬‫رابطه‬‫برابر‬491‫درجه‬‫سانتی‬‫گراد‬‫خواهد‬‫بود‬
‫همچنین‬‫می‬‫دانیم‬‫در‬‫دیتاشیت‬‫تغییرات‬‫دما‬‫به‬‫ازای‬‫هر‬10‫میلی‬،‫ولت‬‫یک‬‫درجه‬‫سانتی‬‫گراد‬‫بوده‬،‫است‬‫یعنی‬ً‫ا‬‫تقریب‬:
10 𝑚𝑣
4.8 𝑚𝑣
= 2.08 ‫یعنی‬‫با‬‫هر‬2.08‫شمارش‬‫قسمت‬،‫آنالوگ‬‫یک‬‫درجه‬‫سانتی‬‫گراد‬‫تغییر‬‫دما‬‫داریم‬
analogReference(DEFAULT); ‫دستور‬‫مربوط‬‫به‬‫فعال‬‫سازی‬‫ولتاژ‬5‫ولت‬‫برای‬‫قسمت‬‫مرجع‬‫آنالوگ‬‫به‬‫دیجیتال‬
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫دماسنج‬ ‫سنسور‬ ‫اندازی‬ ‫راه‬LM35
•‫دقت‬‫اندازه‬‫گیری‬‫دما‬‫چگونه‬‫تعیین‬‫می‬‫شود‬‫؟‬
1.1𝑉𝑟𝑒𝑓
1024
= 1.0742 mv  ‫دقت‬‫اندازه‬‫گیری‬‫قسمت‬‫مبدل‬‫آنالوگ‬‫به‬‫دیجیتال‬‫یه‬‫ازای‬‫تغییر‬‫هر‬‫یک‬‫واحد‬
T (° C) = 1.0742 * ADC Count / 10  ‫با‬‫فرض‬‫ماکزیمم‬‫مقدار‬1023‫برای‬‫مبدل‬‫آنالوگ‬‫به‬،‫دیجیتال‬‫حداکثر‬‫دمای‬
‫قابل‬‫اندازه‬‫گیری‬‫از‬‫طریق‬‫این‬‫رابطه‬‫برابر‬110‫درجه‬‫سانتی‬‫گراد‬‫خواهد‬‫بود‬
‫همچنین‬‫می‬‫دانیم‬‫در‬‫دیتاشیت‬‫تغییرات‬‫دما‬‫به‬‫ازای‬‫هر‬10‫میلی‬،‫ولت‬‫یک‬‫درجه‬‫سانتی‬‫گراد‬‫بوده‬،‫است‬‫یعنی‬ً‫ا‬‫تقریب‬:
10 𝑚𝑣
1.0742 𝑚𝑣
≈ 9.30  ‫هر‬ ‫با‬ ‫یعنی‬9.30‫داریم‬ ‫دما‬ ‫تغییر‬ ‫گراد‬ ‫سانتی‬ ‫درجه‬ ‫یک‬ ،‫آنالوگ‬ ‫قسمت‬ ‫شمارش‬
analogReference(INTERNAL); ‫دستور‬‫مربوط‬‫به‬‫فعال‬‫سازی‬‫ولتاژ‬1.1‫برای‬‫قسمت‬‫مرجع‬‫آنالوگ‬‫به‬‫دیجیتال‬
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•Lcd‫های‬‫کاراکتری‬‫با‬‫استفاده‬‫از‬‫مشابه‬‫همان‬‫تکنولوژی‬‫بکار‬‫رفته‬‫در‬7 Segment‫ها‬(‫اما‬‫با‬‫تعداد‬‫پیکسل‬‫بیشتر‬)
‫ساخته‬‫شده‬‫است‬.
•‫به‬‫همین‬‫علت‬‫تمامی‬‫اعداد‬‫و‬‫حروف‬‫را‬‫به‬‫صورت‬‫پیکسلی‬(‫با‬‫تراکم‬‫کم‬)‫نشان‬‫می‬‫دهد‬.
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•‫پایه‬‫های‬LCD‫کاراکتری‬16x2
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•‫مشخصات‬‫پایه‬‫های‬LCD‫کاراکتری‬16x2
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•‫دستورات‬‫مهم‬‫مورد‬‫استفاده‬‫در‬LCD:
• #include <LiquidCrystal.h> LCD ‫فراخوانی‬‫کتابخانه‬‫مربوط‬‫به‬‫صفحه‬‫نمایش‬‫های‬
• LiquidCrystal lcd(rs, enable, d4, d5, d6, d7)  LCD ‫شکل‬‫رایج‬‫نحوه‬‫ی‬‫پیکره‬‫بندی‬‫پایه‬‫های‬
•‫نکته‬:‫در‬‫این‬‫پیکره‬‫بندی‬‫پایه‬RW‫به‬‫زمین‬‫متصل‬‫می‬‫شود‬(‫صفر‬‫می‬‫شود‬)
• lcd.begin( ‫عرض‬‫یا‬‫تعداد‬‫ستون‬ , ‫طول‬‫یا‬‫تعداد‬‫سطر‬ ) ‫از‬‫این‬‫دستور‬‫برای‬‫مشخص‬‫کردن‬‫نوع‬‫صفحه‬‫نمایش‬‫مورد‬
‫استفاده‬‫در‬‫برنامه‬‫استفاده‬‫می‬‫شود‬
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•‫دستورات‬‫مهم‬‫مورد‬‫استفاده‬‫در‬LCD:
• lcd.setCursor( ‫ستون‬‫مورد‬‫نظر‬ , ‫سطر‬‫مورد‬‫نظر‬ ) LCD ‫فراخوانی‬‫کتابخانه‬‫مربوط‬‫به‬‫صفحه‬‫نمایش‬‫های‬
•‫نکته‬:‫هم‬‫سطرها‬‫و‬‫هم‬‫ستون‬‫ها‬‫از‬‫عدد‬‫صفر‬‫شروع‬‫می‬‫شود‬.
‫برای‬‫مثال‬‫وقتی‬‫می‬‫خواهید‬‫به‬‫اولین‬‫ستون‬‫از‬‫سطر‬‫دوم‬LCD‫خود‬‫بروید‬‫دستور‬‫به‬‫شکل‬lcd.setCursor(0, 1)‫خواهد‬‫بود‬
• lcd.print( ‫اطالعاتی‬‫که‬‫قرار‬‫است‬‫نمایش‬‫داده‬‫شود‬ )  ‫تمامی‬‫اطالعاتی‬‫که‬‫می‬‫خواهیم‬‫بر‬‫روی‬‫صفحه‬‫نمایش‬‫داده‬
،‫شود‬‫با‬‫استفاده‬‫از‬‫این‬‫دستور‬‫انجام‬‫می‬‫دهیم‬
•‫مثال‬:‫فقط‬‫بخواهیم‬‫یک‬‫متن‬‫بر‬‫روی‬LCD‫نمایش‬‫دهیم‬‫باید‬‫داخل‬‫دو‬‫تا‬“ “‫قرار‬‫بگیرد‬lcd.print(“FaraDars.org”)
•‫مثال‬:‫اگر‬‫بخواهیم‬‫مقدار‬‫یک‬‫مغتیر‬‫را‬‫نمایش‬‫دهیم‬‫کافی‬‫است‬‫نام‬‫متغیر‬‫را‬‫بنویسیم‬lcd.print(sensorValue)
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫اندازی‬ ‫راه‬LCD‫کاراکتری‬
•‫دستورات‬‫مهم‬‫مورد‬‫استفاده‬‫در‬LCD:
• lcd.clear() LCD ‫پاک‬‫کردن‬‫صفحه‬‫نمایش‬
• lcd.noDisplay()  ‫بدون‬‫از‬‫دست‬‫رفتن‬‫اطالعات‬ LCD ‫خاموش‬‫کردن‬‫صفحه‬‫نمایش‬
• lcd.display()  ‫بدون‬‫از‬‫دست‬‫رفتن‬‫اطالعات‬ LCD ‫روشن‬‫کردن‬‫صفحه‬‫نمایش‬
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
•‫بستن‬‫مدار‬LCD‫کاراکتری‬16x2
8
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
9
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫با‬ ‫آهنگ‬ ‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio)
•‫به‬‫طور‬،‫خالصه‬‫عملکرد‬‫بلندگوها‬(Speaker)‫بدین‬‫شکل‬‫است‬‫که‬:
‫سینگال‬‫الکتریکی‬(ً‫ا‬‫غالب‬‫تقویت‬‫شده‬)‫از‬‫طریق‬‫سیم‬‫های‬‫بلندگو‬‫به‬‫سیم‬‫پیچ‬‫داخلی‬‫بلندگو‬‫که‬‫دور‬‫هسته‬‫آهنرب‬‫ایی‬‫آن‬‫پیچیده‬‫شده‬
‫است‬‫وارد‬‫می‬،‫شود‬‫و‬‫سبب‬‫به‬‫وجود‬‫آمدن‬‫میدان‬‫مغناطیسی‬‫و‬‫خاصیت‬‫آهنربایی‬‫می‬‫شود‬‫که‬‫سبب‬‫جابه‬‫جایی‬‫هسته‬‫ی‬‫آهنی‬‫درون‬
‫اسپیکر‬‫می‬‫شود‬.
‫تغییرات‬‫حرکت‬‫و‬‫جابه‬‫جایی‬‫هسته‬‫آهنی‬‫یک‬‫موج‬‫هوای‬‫کم‬‫فشار‬‫و‬‫پر‬‫فشار‬‫درون‬‫آن‬‫ایجاد‬‫می‬،‫کند‬‫که‬‫سبب‬‫جابه‬‫جابی‬‫پ‬‫رده‬‫نازک‬
‫اسپیکر‬‫و‬‫نهایت‬‫تولید‬‫صدا‬‫می‬‫شود‬.
‫رابطه‬‫ی‬‫شدت‬‫صدا‬‫و‬Tone‫آن‬‫به‬‫سیگنال‬‫وارد‬‫شده‬‫بستگی‬،‫دارد‬‫که‬‫چه‬‫میزان‬‫هسته‬‫را‬‫جابه‬‫جا‬‫کند‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫با‬ ‫آهنگ‬ ‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio)
•‫آشنایی‬‫مقدماتی‬‫با‬‫موسیقی‬‫در‬‫پروژه‬:
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫با‬ ‫آهنگ‬ ‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio)
•‫نمونه‬‫ای‬‫از‬Tone‫های‬‫موجود‬‫در‬‫کتابخانه‬Pitch.h
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
‫نکته‬:‫هرکجا‬‫عبارت‬S‫را‬،‫دیدید‬‫منظور‬#،‫است‬‫برای‬‫مثال‬CS1‫همان‬C#1‫است‬
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫با‬ ‫آهنگ‬ ‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio)
•‫ارزش‬‫زمانی‬‫ُت‬‫ن‬‫ها‬(duration)
•‫نکته‬:‫در‬‫برنامه‬‫به‬‫جای‬
1
4
،
1
2
،‫و‬...‫فقط‬2،4،8‫و‬..‫نوشته‬‫می‬‫شود‬
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫آردوینو‬ ‫با‬ ‫آهنگ‬ ‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio)
• tone( ‫نام‬‫پایه‬ , ‫متغیر‬‫آرایه‬‫شامل‬‫ُت‬‫ن‬‫ها‬ [for ‫متغیر‬‫حلقه‬‫تکرار‬‫شونده‬ ] , ‫ارزش‬‫زمانی‬ );
•‫این‬‫تابع‬‫برای‬‫اجرای‬‫آهنگ‬‫ها‬‫بر‬‫اساس‬‫ُت‬‫ن‬‫ها‬‫عمل‬‫می‬‫کند‬‫که‬‫در‬‫هر‬‫بازه‬‫زمانی‬(‫نیاز‬‫است‬ًً‫ا‬‫حتم‬‫بعد‬‫از‬‫آن‬delay()‫آورده‬
‫شود‬)‫یک‬‫ُت‬‫ن‬‫اجرا‬‫کرده‬‫که‬‫در‬‫مجموع‬‫آهنگ‬‫مطلوب‬‫مارا‬‫تولید‬‫می‬‫کند‬
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫موتور‬ ‫درایور‬ ‫اندازی‬ ‫راه‬DC
•‫درایور‬(Driver)‫یا‬‫راه‬‫انداز‬‫چیست‬‫؟‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫درایور‬ ‫اندازی‬ ‫راه‬‫موتور‬DC‫تراشه‬ ‫با‬L298
•‫آشنایی‬‫با‬‫مشخصات‬‫فنی‬‫تراشه‬L298
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫موتور‬ ‫درایور‬ ‫اندازی‬ ‫راه‬DC‫تراشه‬ ‫با‬L298
‫اشکال‬‫رایج‬‫در‬‫بازار‬(‫به‬‫صورت‬‫ماژول‬‫درایور‬‫موتور‬DC)
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫شرح‬‫قسمت‬‫های‬‫مختلف‬
‫ماژول‬
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫راه‬‫اندازی‬‫مقدماتی‬
‫در‬‫این‬‫حالت‬‫ما‬‫می‬‫خواهیم‬‫یک‬‫موتور‬‫را‬‫به‬
‫کانال‬A‫متصل‬‫کنیم‬‫و‬‫از‬‫طریق‬‫کلید‬‫فش‬‫اری‬
(Push Button)‫جهت‬‫آن‬‫را‬‫کنترل‬
‫کنیم‬.
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫موتور‬ ‫درایور‬ ‫اندازی‬ ‫راه‬DC‫طریق‬ ‫از‬PWM
•PWM‫چیست‬‫؟‬
•PWM‫مخفف‬(Pulse Width Modulation)
‫یعنی‬‫مدوالسیون‬‫عرض‬‫پالس‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫موتور‬ ‫درایور‬ ‫اندازی‬ ‫راه‬DC‫طریق‬ ‫از‬PWM
•‫کمی‬‫بیشتر‬‫از‬PWM‫بدانیم‬...
• Duty cycle =
𝑻𝒊𝒎𝒆 𝑶𝑵
𝑻𝒊𝒎𝒆 𝑶𝑵 + 𝑻𝒊𝒎𝒆 𝑶𝑭𝑭
× 𝟏𝟎𝟎
3
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫موتور‬ ‫درایور‬ ‫اندازی‬ ‫راه‬DC‫طریق‬ ‫از‬PWM
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫موتور‬ ‫درایور‬ ‫اندازی‬ ‫راه‬DC‫طریق‬ ‫از‬PWM
5
‫پالس‬ ‫ایجاد‬ ‫دستور‬PWM‫آردوینو‬ ‫در‬
• analogWrite(‫پایه‬ ‫نام‬ , ‫تا‬ ‫صفر‬ ‫از‬ ‫عدد‬255 );
•‫نکته‬:‫در‬Arduino Uno‫های‬ ‫پایه‬ ‫فقط‬(3،5،6،10،11)‫سازی‬ ‫پیاده‬ ‫امکان‬PWM‫دهد‬ ‫می‬ ‫ما‬ ‫به‬ ‫را‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
6
• analogWrite(‫پایه‬ ‫نام‬ , ‫تا‬ ‫صفر‬ ‫از‬ ‫عدد‬255 );
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫راه‬‫اندازی‬‫پیشرفته‬
‫در‬‫این‬‫حالت‬‫ما‬‫می‬‫خواهیم‬‫یک‬‫موتور‬‫را‬‫به‬
‫کانال‬A‫متصل‬‫کنیم‬‫و‬‫از‬‫طریق‬‫کلید‬‫فش‬‫اری‬
(Push Button)‫جهت‬‫آن‬‫را‬‫کنترل‬
‫کنیم‬.
‫بنحوی‬‫که‬‫با‬‫فشردن‬،‫کلید‬‫سرعت‬‫موتو‬‫ر‬‫به‬
‫تدریج‬
‫افزایش‬‫یافته‬‫تا‬‫به‬‫ماکزیمم‬‫سرعت‬‫خود‬
‫برسد‬‫و‬‫بالعکس‬.
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
8
‫اتصال‬ ‫ی‬ ‫نحوه‬Arduino‫ماژول‬ ‫به‬L298
IN1  Pin7 Arduino
IN2  Pin8 Arduino
ENA  Pin9 Arduino
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvrd9311
‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬‫های‬ ‫فرادرس‬ ‫مجموعه‬«‫برنامه‬‫نویسی‬‫آردوینو‬(Arduino)‫با‬
‫رباتیک‬ ‫های‬ ‫پروژه‬ ‫محوریت‬»‫است‬ ‫شده‬ ‫تهیه‬.
‫نمایید‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬.
faradars.org/fvrd9311

مجموعه آموزش های برنامه نویسی آردوینو با محوریت پروژه های رباتیک

  • 1.
    ‫مجموعه‬‫آردوینو‬ ‫نویسی‬ ‫برنامه‬‫های‬ ‫آموزش‬(Arduino)‫رباتیک‬ ‫های‬ ‫پروژه‬ ‫محوریت‬ ‫با‬ ‫مدرس‬: ‫زاهدی‬ ‫تمسکنی‬ ‫ابوذر‬ ‫مکاترونیک‬ ‫ارشد‬ ‫کارشناسی‬ ‫تهران‬ ‫تحقیقات‬ ‫و‬ ‫علوم‬ ‫واحد‬ ‫اسالمی‬ ‫آزاد‬ ‫دانشگاه‬ ‫رباتیک‬ ‫های‬ ‫پروژه‬ ‫محوریت‬ ‫با‬ ‫آردوینو‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫آموزش‬ ‫مجموعه‬ faradars.org/fvrd93011
  • 2.
    ‫؟‬ ‫چیست‬ ‫نویسی‬‫برنامه‬ •‫برنامه‬‫نویسی‬‫یعنی‬ ‫فرآیندی‬‫که‬‫محاسبات‬‫ما‬‫را‬‫برای‬‫تحقق‬‫خواسته‬،‫هایمان‬‫به‬‫صورت‬‫برنامه‬‫ای‬‫قابل‬‫اجرا‬‫و‬‫مشهود‬‫تبدیل‬‫می‬‫کند‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 3.
    ‫؟‬ ‫چیست‬ ‫نویسی‬‫برنامه‬ •‫شاید‬‫این‬‫سوال‬‫پیش‬‫بیاید‬‫که‬‫ما‬‫چه‬‫چیزی‬‫را‬‫برنامه‬‫ریزی‬‫می‬‫کنیم‬‫و‬‫چه‬‫سخت‬‫افزاریست‬‫که‬‫برنامه‬‫های‬‫محول‬‫شده‬‫را‬‫اجرا‬ ‫می‬‫کند‬‫؟‬ 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 4.
    ‫بگیریم؟‬ ‫یاد‬ ‫را‬‫نویسی‬ ‫برنامه‬ ‫باید‬ ‫چرا‬ •‫دنیای‬،‫آینده‬‫متعلق‬‫به‬‫کامپیوتر‬‫ها‬‫و‬‫تکنولوژی‬‫نوین‬‫است‬ ‫بگیریم‬ ‫فرا‬ ‫را‬ ‫کشور‬ ‫آن‬ ‫رسمی‬ ‫زبان‬ ‫تا‬ ‫نیازمندیم‬ ،‫کشورها‬ ‫دیگر‬ ‫با‬ ‫نظر‬ ‫تبادل‬ ‫برای‬ ‫ما‬ ‫که‬ ‫طور‬ ‫همان‬... ‫طریق‬ ‫از‬ ‫کار‬ ‫این‬ ‫که‬ ‫گرفت‬ ‫فرا‬ ‫را‬ ‫کامپیوترها‬ ‫با‬ ‫سخن‬ ‫زبان‬ ‫باید‬ ‫نیز‬ ‫آینده‬ ‫در‬‫کامپیوت‬ ‫نویسی‬ ‫برنامه‬‫ر‬‫است‬ ‫میسر‬. 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 5.
    ‫گیرید‬ ‫می‬ ‫فرا‬‫چیزهایی‬ ‫چه‬ ‫آموزشی‬ ‫فیلم‬ ‫این‬ ‫در‬!‫؟‬ 1-‫آموزش‬‫برنامه‬‫نویسی‬‫به‬‫صورت‬‫کاربردی‬‫و‬‫ساخت‬‫انواع‬‫وسایل‬‫مختلف‬‫الکترونیکی‬. 2-‫یادگیری‬‫نوشتن‬‫برنامه‬‫های‬‫ساده‬‫و‬‫کاربردی‬‫که‬‫هرکدام‬‫از‬‫آنها‬‫می‬‫تواند‬‫خود‬‫یک‬‫پروژه‬‫مجزا‬‫باشد‬. 3-‫ساخت‬‫یک‬‫ربات‬‫کوچک‬‫از‬‫همان‬‫پروژه‬‫های‬‫که‬‫در‬‫طول‬‫آموزش‬‫یادگرفته‬‫ایم‬. 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 6.
    ‫یادبگیریم‬ ‫است‬ ‫قرار‬‫که‬ ‫هایی‬ ‫پروژه‬ ‫اصلی‬ ‫های‬ ‫پروژه‬ •‫راهنمایی‬ ‫چراغ‬ ‫ساخت‬ ‫و‬ ‫زن‬ ‫چشمک‬ ‫چراغ‬ ‫اندازی‬ ‫راه‬ •‫سنسور‬ ‫اندازی‬ ‫راه‬(‫حسگر‬)‫و‬ ‫اولتراسونیک‬ ،‫فتوسل‬ ،‫قرمز‬ ‫مادون‬ ‫از‬ ‫اعم‬ ‫مختلف‬ ‫های‬... •‫موتور‬ ‫درایورهای‬ ‫نویسی‬ ‫برنامه‬DC •‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •‫های‬ ‫ماژول‬ ‫دیگر‬ ‫و‬ ‫بلندگو‬ ‫اتصال‬ ‫آموزش‬‫صوتی‬ •.... •‫مسیریاب‬ ‫کوچک‬ ‫ربات‬ ‫یک‬ ‫ساخت‬ ً‫ا‬‫نهایت‬ ‫و‬/‫یاب‬ ‫فاصله‬ 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 7.
  • 8.
  • 9.
    ‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬ •‫در‬‫این‬‫هنگام‬‫دانشمندان‬‫به‬‫فکر‬‫ساخت‬‫وسیله‬‫ای‬‫افتادند‬‫که‬‫همانند‬‫یک‬،‫کامپیوتر‬‫قابلیت‬‫های‬‫آن‬‫را‬‫داشته‬‫باش‬‫د‬‫اما‬ ‫قدرت‬‫پردازش‬‫آن‬‫کم‬‫باشد‬‫و‬‫در‬‫نتیجه‬‫قیمت‬‫آن‬‫بسیار‬‫ارزان‬‫و‬‫مصرف‬‫انرژی‬‫آن‬‫بسیار‬‫پایین‬‫خواهد‬‫بود‬ ‫و‬‫اینگونه‬‫شد‬‫که‬،‫میکروکنترلرها‬‫ساخته‬‫شد‬... 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 10.
    ‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬ •‫آردوینو‬‫یک‬‫برد‬‫آزمایشی‬‫توسعه‬‫پذیر‬(Development Board)،‫است‬‫که‬‫در‬‫هسته‬‫آن‬‫یک‬‫میکروکنترلر‬ ‫مدل‬AVRAtmega328pATMEL‫قرار‬‫گرفته‬‫است‬. 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 11.
    ‫آردوینو‬(Arduino)‫؟‬ ‫چیست‬ •‫آردوینو‬‫چه‬‫مزیت‬‫هایی‬‫دارد‬‫؟‬ 1-‫برای‬‫استفاده‬‫از‬‫آن‬‫نیازی‬‫به‬‫لحیم‬‫کاری‬‫ندارید‬ 2-‫یک‬‫نرم‬‫افزار‬ً‫ا‬‫ال‬‫کام‬‫رایگان‬‫و‬‫متن‬‫باز‬(open Source)‫به‬‫همراه‬‫سخت‬‫افزار‬‫متن‬‫باز‬‫دارید‬‫که‬‫تمامی‬‫اطالعات‬‫آن‬‫موجود‬‫و‬‫قابل‬ ‫اشتراک‬‫است‬ 3-‫زبان‬‫برنامه‬‫نویسی‬‫در‬،‫آن‬‫به‬‫صورت‬‫سطح‬‫باال‬(‫به‬‫زبان‬‫انسان‬‫نزدیک‬‫بوده‬)‫و‬‫برنامه‬‫نویسی‬‫آن‬‫با‬‫استفاده‬‫از‬‫نرم‬‫اف‬‫زار‬‫مخصوص‬ ‫آردوینو‬(ArduinoIDE)‫به‬‫مراتب‬‫ساده‬‫تر‬‫از‬‫دیگر‬‫کامپایلر‬‫های‬‫موجود‬‫است‬ 4-‫نیاز‬‫به‬‫سخت‬‫افزار‬‫جانبی‬‫برای‬‫پروگرام‬‫کردن‬‫بورد‬‫خود‬‫ندارید‬.(‫به‬‫دلیل‬‫وجود‬‫رابط‬USB) 5-‫دارا‬‫بودن‬‫کتابخانه‬‫های‬‫غنی‬‫و‬‫کدهای‬‫رایگان‬‫و‬‫آموزش‬‫های‬‫متنوع‬‫در‬‫سطح‬‫بین‬‫المللی‬ ‫و‬..... 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 12.
    ‫آردوینو‬ ‫مختلف‬ ‫انواع‬ 7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 13.
    ‫؟‬ ‫کنیم‬ ‫شروع‬‫کجا‬ ‫از‬ •‫در‬‫قدم‬‫اول‬‫نیاز‬‫است‬‫یک‬‫برد‬‫آردوینو‬‫خریداری‬‫کنیم‬ Arduino UNO 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 14.
    ‫؟‬ ‫کنیم‬ ‫شروع‬‫کجا‬ ‫از‬ •‫جهت‬‫خرید‬‫بردهای‬‫آردوینو‬‫و‬‫تجیزات‬،‫جانبی‬‫چند‬‫فروشگاه‬‫اینترنتی‬‫را‬‫معرفی‬‫می‬‫کنیم‬: www.Shop.aftabrayaneh.com www.Roboeq.ir www.Eca.ir 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 15.
    ‫شروع‬ ‫برای‬ ‫الزم‬‫وسایل‬ ‫حداقل‬ ‫خرید‬... 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 16.
    ‫باز‬ ‫متن‬ ‫برد‬‫یک‬ ‫آردوینو‬(open source)‫است‬ •‫این‬‫که‬‫می‬‫گوییم‬‫آردوینو‬‫یک‬‫برد‬‫متن‬‫باز‬(open Source)،‫است‬‫یعنی‬‫چه‬‫؟‬ 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 17.
    ‫آردوینو‬‫باز‬ ‫متن‬ ‫برد‬‫یک‬(open source)‫است‬ •‫پروگرام‬‫کردن‬‫بوت‬‫لودر‬(Boot loader)‫آردوینو‬‫بر‬‫روی‬‫میکروکنترلر‬ATMEGA328 , ATMEGA168 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 18.
    ‫کار‬ ‫انجام‬ ‫شرح‬ 2 ‫افزا‬‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 19.
    3 ‫کار‬ ‫انجام‬ ‫شرح‬ ‫افزا‬‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬‫افزار‬ ‫نرم‬ ‫نصب‬ ‫و‬ ‫معرفی‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 20.
    4 ‫کار‬ ‫انجام‬ ‫شرح‬ ‫افزا‬‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬‫افزار‬ ‫نرم‬ ‫نصب‬ ‫و‬ ‫معرفی‬ ‫الکترونیک‬ ‫مدارات‬ ‫بستن‬‫ی‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 21.
    5 ‫کار‬ ‫انجام‬ ‫شرح‬ ‫افزا‬‫سخت‬ ‫با‬ ‫آشنایی‬‫ر‬‫افزار‬ ‫نرم‬ ‫نصب‬ ‫و‬ ‫معرفی‬ ‫الکترونیک‬ ‫مدارات‬ ‫بستن‬‫ی‬ ‫نهایی‬ ‫اندازی‬ ‫راه‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 22.
    ‫پروژه‬LED‫آردوینو‬ ‫با‬ ‫زن‬‫چشمک‬ 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 23.
    7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 24.
    ‫آردوینو‬ ‫نصب‬ •‫سایت‬ ‫به‬‫ابتدا‬Arduino.cc‫نسخه‬ ‫آخرین‬ ،‫دانلود‬ ‫قسمت‬ ‫در‬ ‫و‬ ‫کرده‬ ‫مراجعه‬ ‫پایدار‬(stable)‫نمایید‬ ‫دریافت‬ ‫را‬ ‫افزار‬ ‫نرم‬ 8 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 25.
    ‫بندیم‬ ‫می‬ ‫آزمایش‬‫برد‬ ‫روی‬ ‫بر‬ ‫را‬ ‫زیر‬ ‫شکل‬ ‫مدار‬ 9 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 26.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ • Void setup() { ‫دستورات‬‫برنامه‬‫نویسی‬ } •‫تابع‬ ‫این‬(Function)‫برای‬‫سازی‬ ‫آماده‬‫فقط‬ ‫دستورات‬ ‫تمامی‬ ‫و‬ ،‫رود‬ ‫می‬ ‫کار‬ ‫به‬ ‫برنامه‬‫بار‬ ‫یک‬‫شود‬ ‫می‬ ‫اجرا‬ ‫آن‬ ‫در‬ •‫مانند‬ ‫دستوراتی‬ ‫مثال‬ ‫برای‬pinMode‫تنظیمات‬ ‫و‬Serial‫است‬ ‫قسمت‬ ‫این‬ ‫در‬ • Void loop(){ ‫دستورات‬‫برنامه‬‫نویسی‬ } •‫کند‬ ‫می‬ ‫تکرار‬ ‫را‬ ‫برنامه‬ ً‫ا‬‫دائم‬ ‫و‬ ،‫کند‬ ‫می‬ ‫اجرا‬ ‫دیگری‬ ‫از‬ ‫پس‬ ‫یکی‬ ‫را‬ ‫برنامه‬ ‫خطوط‬ ‫تابع‬ ‫تابع‬ ‫این‬ •‫باشد‬ ‫می‬ ‫تابع‬ ‫این‬ ‫در‬ ‫نویسی‬ ‫برنامه‬ ،‫آردوینو‬ ‫در‬ ‫برنامه‬ ‫اصلی‬ ‫ی‬ ‫هسته‬!! 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 27.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫؟‬ ‫سوال‬ ‫توابع‬ ‫این‬ ‫جز‬ ‫توانیم‬ ‫می‬ ‫آیا‬,‫؟؟‬ ‫باشیم‬ ‫داشته‬ ‫نیز‬ ‫دیگری‬ ‫تابع‬ 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 28.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫بله‬!!!‫کنیم‬ ‫ایجاد‬ ‫خود‬ ‫برنامه‬ ‫در‬ ‫تابع‬ ‫دلخواه‬ ‫تعداد‬ ‫به‬ ‫توانیم‬ ‫می‬ ‫ما‬ int sensor(){(‫مثال‬ int sensorValue = analogRead(A0); ‫مقدار‬0-1023‫به‬ ‫را‬0-255‫کند‬ ‫می‬ ‫تبدیل‬sensorValue /= 4; // }‫نهایی‬ ‫مقدار‬sensorValue‫گرداند‬ ‫بازمی‬ ‫اصلی‬ ‫برنامه‬ ‫به‬ ‫را‬//return sensorValue; 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 29.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫برنامه‬ ‫در‬ ‫توضیحات‬ ‫خط‬ ‫چند‬ ‫گذاشتن‬ /* ‫توضیحات‬ */ •‫خط‬ ‫یک‬ ‫در‬ ‫فقط‬ ‫توضیحات‬ ‫گذاشتن‬ ‫خط‬ ‫یک‬ ‫در‬ ‫توضیح‬// 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 30.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫متغیرها‬ ‫انواع‬ 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 31.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫متغیرها‬ ‫انواع‬ ‫آرایه‬(Arrays: ) int MyArray[] = {0‫,متغیر‬ ‫متغیر‬1 , ‫متغیر‬2 , … } ‫کنیم‬ ‫می‬ ‫عمل‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫آرایه‬ ‫یک‬ ‫از‬ ‫مقدار‬ ‫خواندن‬ ‫برای‬: Example  Value = MyArray[2]; 7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 32.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫ریاضی‬ ‫عملیات‬ X++  X=X+1 X--  X=X-1 X+=Y  X=X+Y X-=Y  X= X-Y X*=Y  X=X*Y X /= Y  X=X/Y ‫تقسیم‬ ‫مانده‬ ‫باقی‬X % Y  8 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 33.
    ‫زبان‬ ‫ساختار‬ ‫معرفی‬C/C++‫نویسی‬‫برنامه‬ ‫برای‬ •‫ای‬ ‫مقایسه‬ ‫عملیات‬ ‫مساوی‬X == Y  ‫نامساوی‬X != Y  x‫از‬ ‫کوچکتر‬X < Y  x‫از‬ ‫بزرگتر‬X > Y  X‫مساوی‬ ‫کوچکتر‬X <= Y  X‫مساوی‬ ‫بزرگتر‬X >= Y  AND‫منطقی‬X && Y  Or‫منطقی‬X || Y  NOT‫منطقی‬!X  9 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 34.
    ‫پیشنهاد‬ www.FaraDars.Org 10 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 35.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • HIGH / LOW •‫منطق‬ ‫دادن‬ ‫نشان‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫دستورات‬ ‫این‬1‫است‬ ‫صفر‬ ‫یا‬.‫در‬ ‫ولتاژ‬ ‫سطح‬ ‫که‬ ‫است‬ ‫برقرار‬ ‫یک‬ ‫منطق‬ ‫زمانی‬5‫و‬ ‫ولت‬ ‫منطق‬ ‫زمانی‬0(‫صفر‬)‫باشد‬ ‫ولت‬ ‫صفر‬ ‫در‬ ‫ولتاژ‬ ‫سطح‬ ‫که‬ ‫است‬ ‫قرار‬ ‫بر‬. • Example  digitalWrite(13, HIGH);  ‫شماره‬ ‫پایه‬ ‫یعنی‬13‫برسان‬ ‫یک‬ ‫منطقی‬ ‫سطح‬ ‫به‬ ‫را‬(5‫شود‬ ‫ولت‬) 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 36.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • INPUT / OUTPUT •‫دستور‬ ‫با‬ ‫همراه‬ ً‫ا‬‫غالب‬pinMode()‫پایه‬ ‫یک‬ ‫بودن‬ ‫خروجی‬ ‫یا‬ ‫ورودی‬ ‫دادن‬ ‫نشان‬ ‫برای‬ ‫و‬ ،‫آید‬ ‫می‬ ‫است‬ ‫نظر‬ ‫مورد‬ • Example  pinMode(13, OUTPUT); 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 37.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • digitalWrite(‫پایه‬ ‫,نام‬ ‫وضعیت‬HIGH ‫یا‬ LOW); •‫بالعکس‬ ‫یا‬ ‫و‬ ‫صفر‬ ‫به‬ ‫یک‬ ‫از‬ ،‫پایه‬ ‫یک‬ ‫منطقی‬ ‫وضعیت‬ ‫تغییر‬ • digitalRead(‫پایه‬ ‫)نام‬ •‫منطقی‬ ‫صورت‬ ‫به‬ ‫پایه‬ ‫یک‬ ‫مقدار‬ ‫خواندن‬(‫یک‬ ‫و‬ ‫صفر‬ ‫فقط‬) • Example  value = digitalRead(12); 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 38.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • analogRead(‫آنالوگ‬ ‫پایه‬ ‫نام‬ ) •‫دقت‬ ‫با‬ ‫آنالوگ‬ ‫های‬ ‫پایه‬ ‫از‬ ‫آنالوگ‬ ‫صورت‬ ‫به‬ ‫مقدار‬ ‫یک‬ ‫خواندن‬10‫بیت‬(‫یعنی‬0‫تا‬1023) •‫نکته‬:‫صورت‬ ‫به‬ ‫کردن‬ ‫تعریف‬ ‫به‬ ‫نیازی‬ ‫دیجیتال‬ ‫برخالف‬ ‫آنالوگ‬ ‫های‬ ‫پایه‬pinMode()‫ندارد‬ Example  value = analogRead(A0); 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 39.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • analogWrite( PWM ‫نام‬‫پایه‬‫های‬ , ‫تا‬ ‫صفر‬ ‫مقدار‬255 ); •‫مربعی‬ ‫های‬ ‫پالس‬ ‫تولید‬PWM‫با‬duty Cycle‫مختلف‬ ‫های‬ Example  void loop(){ int value = analogRead(A0); // ‫تا‬ ‫صفر‬ ‫مقدار‬ ‫خواندن‬1023‫پتانسیومتر‬ ‫از‬ value /=4 ; // ‫تقسیم‬0-1023‫به‬0-255 analogWrite(13, value); // ‫شماره‬ ‫پایه‬ ‫به‬ ‫پالس‬ ‫اعمال‬13 } 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 40.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • delay(‫ثانیه‬ ‫میلی‬ ‫حسب‬ ‫;)بر‬ 7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 41.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • Serial.begin( ‫اطالعات‬ ‫تبادل‬ ‫نرخ‬ ); • 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200 •‫نکته‬:‫دستور‬Serial.begin()‫تابع‬ ‫در‬ ‫باید‬void setup() { }‫بیاید‬ 8 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 42.
    ‫زبان‬ ‫دستورات‬ ‫معرفی‬C/C++‫آردوینو‬‫ویژه‬ • Serial.println(‫سریال‬ ‫پورت‬ ‫در‬ ‫نمایش‬ ‫جهت‬ ‫;)اطالعات‬ •‫استفاده‬ ‫مورد‬ ‫سریال‬ ‫پورت‬ ‫روی‬ ‫بر‬ ،‫شما‬ ‫های‬ ‫نوشته‬ ‫و‬ ‫اطالعات‬ ‫نمایش‬ ‫جهت‬ ‫دستور‬ ‫این‬ ‫گیرد‬ ‫می‬ ‫قرار‬. •‫با‬ ‫آن‬ ‫فرق‬Serial.print()‫در‬ ‫و‬ ‫کرده‬ ‫اجرا‬ ‫جدید‬ ‫خط‬ ‫در‬ ‫را‬ ‫دستورات‬ ‫که‬ ‫است‬ ‫آن‬ ‫در‬Serial Monitor‫کرد‬ ‫مشاهده‬ ‫توان‬ ‫می‬ ‫بهتر‬ ‫را‬ ‫خروجی‬ • Example  • Serial.println(“Faradars.org”); // ‫نوشته‬ ‫فقط‬ ‫نمایش‬ ‫و‬ ‫چاپ‬ • Serial.println(SensorValue); ‫سنسور‬ ‫مقدار‬ ‫نمایش‬ ‫و‬ ‫چاپ‬// 9 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 43.
    ‫در‬ ‫شرطی‬ ‫های‬‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬ •‫شرطی‬ ‫ساختار‬if-else if (‫شد‬ ‫برقرار‬ ‫شرط‬ ) { ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬ { else} ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬ ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دیگری‬ ‫دستورات‬ { 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 44.
    ‫در‬ ‫شرطی‬ ‫های‬‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬ •‫شرطی‬ ‫ساختار‬if-else 2 if (‫شد‬ ‫برقرار‬ ‫اول‬ ‫شرط‬ ) { ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬ { else if( ‫شد‬ ‫برقرار‬ ‫دوم‬ ‫شرط‬ ) { ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬ { else { ‫این‬ ‫غیر‬ ‫در‬‫صورت‬ ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دیگری‬ ‫دستورات‬ { 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 45.
    ‫در‬ ‫شرطی‬ ‫های‬‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬ •‫ساختار‬‫حلقه‬For For ( ‫اولیه‬ ‫مقدار‬ ; ‫شرط‬ ; ‫گام‬ ‫)میزان‬ { ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬ { Example for (int i=0; i<10; i++){ digitalWrite(led,HIGH); delay(1000); digitalWrite(led,LOW); Delay(1000);} 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 46.
    ‫در‬ ‫شرطی‬ ‫های‬‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬ •‫ساختار‬‫حلقه‬While while (‫است‬ ‫برقرار‬ ‫شرط‬ ‫که‬ ‫)مادامی‬ { ‫شود‬ ‫اجرا‬ ‫باید‬ ‫که‬ ‫دستوراتی‬ { ‫نظر‬ ‫در‬ ‫حلقه‬ ‫یک‬ ‫برای‬ ‫کنترلی‬ ‫ابزار‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫شرط‬ ‫یک‬ ‫ما‬ ‫که‬ ‫رود‬ ‫می‬ ‫کار‬ ‫به‬ ‫آن‬ ‫برای‬ ‫دستور‬ ‫این‬ ‫شود‬ ‫می‬ ‫اجرا‬ ‫همواره‬ ‫حلقه‬ ‫داخل‬ ‫دستورات‬ ،‫است‬ ‫برقرار‬ ‫شرط‬ ‫این‬ ‫که‬ ‫مادامی‬ ‫و‬ ،‫بگیریم‬ ‫نکته‬:‫ای‬ ‫برنامه‬ ‫در‬ ‫اگر‬while(1){ }‫می‬ ‫کار‬ ‫به‬ ‫تکرار‬ ‫نهایت‬ ‫بی‬ ‫حلقه‬ ‫یک‬ ‫ساخت‬ ‫برای‬ ،‫داشت‬ ‫وجود‬ ‫رود‬.‫صحیح‬ ‫پرانتز‬ ‫داخل‬ ‫شرط‬ ‫همواره‬ ‫چون‬(True)‫است‬ ‫برقرار‬ ‫و‬(.‫نیست‬ ‫صفر‬) 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 47.
    ‫در‬ ‫شرطی‬ ‫های‬‫ساختار‬ ‫معرفی‬C/C++‫آردوینو‬ ‫و‬ •‫ساختار‬‫حلقه‬do - While do{ ‫بپذیرد‬ ‫انجام‬ ‫باید‬ ‫که‬ ‫دستوراتی‬ { while( ‫بررسی‬ ‫مورد‬ ‫شرط‬ ); ‫با‬ ‫دستور‬ ‫این‬ ‫فرق‬while‫کروشه‬ ‫داخل‬ ‫دستورات‬ ‫که‬ ‫است‬ ‫آن‬ ‫در‬do { }‫شود‬ ‫می‬ ‫اجرا‬ ‫یکبار‬ ‫حداقل‬ ‫خیر؟‬ ‫یا‬ ‫است‬ ‫برقرار‬ ‫آیا‬ ‫که‬ ‫شود‬ ‫می‬ ‫بررسی‬ ‫آن‬ ‫شرط‬ ‫حلقه‬ ‫پایان‬ ‫ودر‬ 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 48.
    ‫پیشنهاد‬ 7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 49.
    ‫؟‬ ‫چیست‬ ‫فتوسل‬ •‫فتوسل‬‫یک‬‫مقاومت‬‫حساس‬‫به‬‫نور‬،‫است‬‫که‬‫با‬‫تغییر‬‫میزان‬‫شدت‬،‫نور‬‫مقاومت‬‫خروجی‬‫آن‬‫تغییر‬‫می‬‫کند‬ •‫نام‬‫دیگر‬‫آن‬)LDR(Light dependent Resistor‫که‬‫مقاومت‬‫آن‬‫در‬‫نورکم‬‫و‬‫تاریک‬‫زیاد‬‫بوده‬‫و‬‫اگر‬‫نور‬‫بیشتری‬ ‫به‬‫آن‬‫بتابد‬‫مقاومت‬‫آن‬‫کمتر‬‫خواهد‬‫شد‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 50.
    ‫آردوینو‬ ‫به‬ ‫فتوسل‬‫اتصال‬ 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 51.
    ‫؟‬ ‫چیست‬ ‫قرمز‬‫مادون‬ ‫سنسور‬ •‫سنسور‬‫مادون‬‫قرمز‬(Infara Red)‫یا‬،‫فروسرخ‬‫نوری‬‫نامرئی‬(‫از‬‫دید‬‫ما‬‫انسان‬‫ها‬)‫است‬‫و‬‫به‬‫دلیل‬‫ویژگی‬‫های‬‫خوب‬‫ذاتی‬‫و‬ ‫طول‬‫موج‬،‫مناسب‬‫جهت‬‫انتقال‬،‫اطالعات‬‫و‬‫فاصله‬‫یابی‬‫مورد‬‫استفاده‬‫قرار‬‫می‬‫گیرد‬. 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 52.
    ‫؟‬ ‫چیست‬ ‫قرمز‬‫مادون‬ ‫سنسور‬ •‫سنسور‬TCRT5000‫یک‬‫نمونه‬‫سنسور‬‫ارزان‬‫قیمت‬‫و‬‫پکیج‬‫شده‬‫جهت‬‫استفاده‬‫در‬‫تعیین‬،‫مسافت‬‫سنجش‬‫دور‬‫در‬‫انکودرها‬‫و‬ ‫همچنین‬‫در‬‫ربات‬‫های‬‫مسیر‬‫یاب‬‫نیز‬‫کاربرد‬‫دارد‬. 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 53.
    ‫سنسور‬ ‫اتصال‬TCRT5000‫آردوینو‬ ‫به‬ 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 54.
    ‫فراصوت‬ ‫سنسور‬(UltraSonic)‫؟‬ ‫چیست‬ •‫سنسور‬Ultrasonic،‫با‬‫استفاده‬‫از‬‫امواج‬‫فراصوت‬(‫که‬‫گوش‬‫انسان‬‫قادر‬‫به‬‫شنیدن‬‫آن‬‫نیست‬)،‫به‬‫وسیله‬‫ی‬‫قطعه‬‫ی‬ ‫پیزوالکتریکی‬‫که‬‫بر‬‫روی‬‫آن‬‫تعبیه‬‫شده‬،‫است‬‫تولید‬‫شده‬‫و‬‫به‬‫ما‬‫جهت‬‫تشخیص‬‫مسافت‬‫ها‬‫با‬‫دقت‬ً‫ا‬‫تقریب‬‫باال‬‫یی‬‫کمک‬‫می‬‫کند‬. •‫جالب‬‫است‬‫بدانید‬‫این‬‫سنسورها‬‫از‬‫الگوی‬‫مسیریابی‬‫خفاش‬،‫ها‬‫الهام‬‫گرفته‬‫شده‬‫است‬‫که‬‫همانطور‬‫که‬‫می‬‫دانید‬‫این‬‫پ‬‫رندگان‬ ‫قدر‬‫به‬‫دیدن‬‫محیط‬‫اطراف‬‫خود‬‫نیستند‬‫و‬‫با‬‫شنیدن‬‫بازخورد‬(‫پژواک‬)‫صدایی‬‫که‬‫از‬‫محیط‬‫دریافت‬‫می‬‫شود‬‫موانع‬‫را‬‫تش‬‫خیص‬ ‫می‬‫دهند‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 55.
    ‫فراصوت‬ ‫سنسور‬(UltraSonic)‫؟‬ ‫چیست‬ •‫نحوه‬‫ی‬‫عملکرد‬‫سنسور‬‫اولتراسونیک‬‫به‬‫این‬‫شکل‬‫است‬‫که‬‫یک‬‫صوت‬‫در‬‫فرکانس‬‫باال‬‫را‬‫تولید‬‫و‬‫ارسال‬‫می‬‫کند‬،‫پس‬‫از‬‫برخورد‬ ‫این‬‫صوت‬‫با‬‫موانع‬،‫محیطی‬‫پژواک‬‫آن‬‫بازگشت‬‫داده‬‫می‬،‫شود‬‫و‬‫در‬‫گیرنده‬‫با‬‫استفاده‬‫از‬‫سنسور‬‫پیزو‬‫الکتریکی‬‫که‬‫در‬‫ح‬‫الت‬‫معکوس‬ ‫فرستنده‬‫تنظیم‬‫شده‬‫است‬‫زمان‬‫طی‬‫شده‬‫پس‬‫از‬‫ارسال‬‫صوت‬‫و‬‫بازگشت‬‫آن‬‫را‬‫محاسبه‬‫می‬‫کنیم‬. ‫و‬‫از‬‫طریق‬‫محاسبه‬‫سرعت‬‫صوت‬(340‫متر‬‫بر‬‫ثانیه‬)‫می‬‫توان‬‫فاصله‬‫تا‬‫جسم‬‫مورد‬‫نظر‬‫را‬‫تخمین‬‫زد‬! • 1‫ثانیه‬ 340 ‫متر‬ × 1000000 ‫میکروثانیه‬ 1 ‫ثانیه‬ × 1 ‫متر‬ 100 ‫متر‬ ‫سانتی‬ ≈ 29 ‫میکروثانیه‬ ‫متر‬ ‫سانتی‬ 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 56.
    ‫فراصوت‬ ‫سنسور‬ ‫یک‬‫معرفی‬UltraSonic •‫ماژول‬SRF04‫یک‬‫ماژول‬‫ارزان‬‫قیمت‬‫و‬‫مناسب‬‫جهت‬‫استفاده‬‫در‬‫پروژه‬‫ما‬‫می‬‫باشد‬ 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 57.
    ‫دماسنج‬ ‫سنسور‬ ‫اندازی‬‫راه‬LM35 •‫ویژگی‬‫های‬‫مهم‬‫سنسور‬‫دماسنج‬lm35: •‫خروجی‬‫دما‬‫به‬‫درجه‬‫سانتی‬‫گراد‬(‫سلسیوس‬) •‫خروجی‬‫خطی‬‫سازی‬،‫شده‬10‫میلی‬‫ولت‬‫به‬‫ازای‬ ‫تغییر‬‫هر‬‫درجه‬‫سلسیوس‬ •‫رنج‬‫اندازه‬‫گیری‬‫از‬55-‫تا‬150+‫درجه‬‫سلسیوس‬ •‫ولتاژ‬‫کاری‬‫بین‬4‫تا‬30‫ولت‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 58.
    ‫دماسنج‬ ‫سنسور‬ ‫اندازی‬‫راه‬LM35 ‫؟‬ ‫است‬ ‫چگونه‬ ‫سنسور‬ ‫اتصال‬ ‫ی‬ ‫نحوه‬ 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 59.
    ‫دماسنج‬ ‫سنسور‬ ‫اندازی‬‫راه‬LM35 ‫نحوه‬‫ی‬‫اتصال‬‫پایه‬‫های‬‫سنسور‬‫به‬‫آردوینو‬: •‫فقط‬‫کافی‬‫است‬‫پایه‬Vout‫را‬‫به‬‫یکی‬‫از‬‫پایه‬‫های‬Analog input‫متصل‬‫کنیم‬ •‫و‬‫به‬‫ترتیب‬‫پایه‬‫های‬GND‫و‬+Vs‫را‬‫به‬GND‫و‬+5v‫آدروینو‬‫متصل‬‫می‬‫کنیم‬ 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 60.
    ‫دماسنج‬ ‫سنسور‬ ‫اندازی‬‫راه‬LM35 •‫دقت‬‫اندازه‬‫گیری‬‫دما‬‫چگونه‬‫تعیین‬‫می‬‫شود‬‫؟‬ 5𝑉𝑟𝑒𝑓 1024 = 4.8 mv  ‫دقت‬‫اندازه‬‫گیری‬‫قسمت‬‫مبدل‬‫آنالوگ‬‫به‬‫دیجیتال‬‫یه‬‫ازای‬‫تغییر‬‫هر‬‫یک‬‫واحد‬ T (° C) = 4.8 * ADC Count / 10  ‫با‬‫فرض‬‫ماکزیمم‬‫مقدار‬1023‫برای‬‫مبدل‬‫آنالوگ‬‫به‬،‫دیجیتال‬‫حداکثر‬‫دمای‬ ‫قابل‬‫اندازه‬‫گیری‬‫از‬‫طریق‬‫این‬‫رابطه‬‫برابر‬491‫درجه‬‫سانتی‬‫گراد‬‫خواهد‬‫بود‬ ‫همچنین‬‫می‬‫دانیم‬‫در‬‫دیتاشیت‬‫تغییرات‬‫دما‬‫به‬‫ازای‬‫هر‬10‫میلی‬،‫ولت‬‫یک‬‫درجه‬‫سانتی‬‫گراد‬‫بوده‬،‫است‬‫یعنی‬ً‫ا‬‫تقریب‬: 10 𝑚𝑣 4.8 𝑚𝑣 = 2.08 ‫یعنی‬‫با‬‫هر‬2.08‫شمارش‬‫قسمت‬،‫آنالوگ‬‫یک‬‫درجه‬‫سانتی‬‫گراد‬‫تغییر‬‫دما‬‫داریم‬ analogReference(DEFAULT); ‫دستور‬‫مربوط‬‫به‬‫فعال‬‫سازی‬‫ولتاژ‬5‫ولت‬‫برای‬‫قسمت‬‫مرجع‬‫آنالوگ‬‫به‬‫دیجیتال‬ 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 61.
    ‫دماسنج‬ ‫سنسور‬ ‫اندازی‬‫راه‬LM35 •‫دقت‬‫اندازه‬‫گیری‬‫دما‬‫چگونه‬‫تعیین‬‫می‬‫شود‬‫؟‬ 1.1𝑉𝑟𝑒𝑓 1024 = 1.0742 mv  ‫دقت‬‫اندازه‬‫گیری‬‫قسمت‬‫مبدل‬‫آنالوگ‬‫به‬‫دیجیتال‬‫یه‬‫ازای‬‫تغییر‬‫هر‬‫یک‬‫واحد‬ T (° C) = 1.0742 * ADC Count / 10  ‫با‬‫فرض‬‫ماکزیمم‬‫مقدار‬1023‫برای‬‫مبدل‬‫آنالوگ‬‫به‬،‫دیجیتال‬‫حداکثر‬‫دمای‬ ‫قابل‬‫اندازه‬‫گیری‬‫از‬‫طریق‬‫این‬‫رابطه‬‫برابر‬110‫درجه‬‫سانتی‬‫گراد‬‫خواهد‬‫بود‬ ‫همچنین‬‫می‬‫دانیم‬‫در‬‫دیتاشیت‬‫تغییرات‬‫دما‬‫به‬‫ازای‬‫هر‬10‫میلی‬،‫ولت‬‫یک‬‫درجه‬‫سانتی‬‫گراد‬‫بوده‬،‫است‬‫یعنی‬ً‫ا‬‫تقریب‬: 10 𝑚𝑣 1.0742 𝑚𝑣 ≈ 9.30  ‫هر‬ ‫با‬ ‫یعنی‬9.30‫داریم‬ ‫دما‬ ‫تغییر‬ ‫گراد‬ ‫سانتی‬ ‫درجه‬ ‫یک‬ ،‫آنالوگ‬ ‫قسمت‬ ‫شمارش‬ analogReference(INTERNAL); ‫دستور‬‫مربوط‬‫به‬‫فعال‬‫سازی‬‫ولتاژ‬1.1‫برای‬‫قسمت‬‫مرجع‬‫آنالوگ‬‫به‬‫دیجیتال‬ 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 62.
    ‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •Lcd‫های‬‫کاراکتری‬‫با‬‫استفاده‬‫از‬‫مشابه‬‫همان‬‫تکنولوژی‬‫بکار‬‫رفته‬‫در‬7 Segment‫ها‬(‫اما‬‫با‬‫تعداد‬‫پیکسل‬‫بیشتر‬) ‫ساخته‬‫شده‬‫است‬. •‫به‬‫همین‬‫علت‬‫تمامی‬‫اعداد‬‫و‬‫حروف‬‫را‬‫به‬‫صورت‬‫پیکسلی‬(‫با‬‫تراکم‬‫کم‬)‫نشان‬‫می‬‫دهد‬. 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 63.
    ‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •‫پایه‬‫های‬LCD‫کاراکتری‬16x2 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 64.
    ‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •‫مشخصات‬‫پایه‬‫های‬LCD‫کاراکتری‬16x2 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 65.
    ‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •‫دستورات‬‫مهم‬‫مورد‬‫استفاده‬‫در‬LCD: • #include<LiquidCrystal.h> LCD ‫فراخوانی‬‫کتابخانه‬‫مربوط‬‫به‬‫صفحه‬‫نمایش‬‫های‬ • LiquidCrystal lcd(rs, enable, d4, d5, d6, d7)  LCD ‫شکل‬‫رایج‬‫نحوه‬‫ی‬‫پیکره‬‫بندی‬‫پایه‬‫های‬ •‫نکته‬:‫در‬‫این‬‫پیکره‬‫بندی‬‫پایه‬RW‫به‬‫زمین‬‫متصل‬‫می‬‫شود‬(‫صفر‬‫می‬‫شود‬) • lcd.begin( ‫عرض‬‫یا‬‫تعداد‬‫ستون‬ , ‫طول‬‫یا‬‫تعداد‬‫سطر‬ ) ‫از‬‫این‬‫دستور‬‫برای‬‫مشخص‬‫کردن‬‫نوع‬‫صفحه‬‫نمایش‬‫مورد‬ ‫استفاده‬‫در‬‫برنامه‬‫استفاده‬‫می‬‫شود‬ 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 66.
    ‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •‫دستورات‬‫مهم‬‫مورد‬‫استفاده‬‫در‬LCD: • lcd.setCursor(‫ستون‬‫مورد‬‫نظر‬ , ‫سطر‬‫مورد‬‫نظر‬ ) LCD ‫فراخوانی‬‫کتابخانه‬‫مربوط‬‫به‬‫صفحه‬‫نمایش‬‫های‬ •‫نکته‬:‫هم‬‫سطرها‬‫و‬‫هم‬‫ستون‬‫ها‬‫از‬‫عدد‬‫صفر‬‫شروع‬‫می‬‫شود‬. ‫برای‬‫مثال‬‫وقتی‬‫می‬‫خواهید‬‫به‬‫اولین‬‫ستون‬‫از‬‫سطر‬‫دوم‬LCD‫خود‬‫بروید‬‫دستور‬‫به‬‫شکل‬lcd.setCursor(0, 1)‫خواهد‬‫بود‬ • lcd.print( ‫اطالعاتی‬‫که‬‫قرار‬‫است‬‫نمایش‬‫داده‬‫شود‬ )  ‫تمامی‬‫اطالعاتی‬‫که‬‫می‬‫خواهیم‬‫بر‬‫روی‬‫صفحه‬‫نمایش‬‫داده‬ ،‫شود‬‫با‬‫استفاده‬‫از‬‫این‬‫دستور‬‫انجام‬‫می‬‫دهیم‬ •‫مثال‬:‫فقط‬‫بخواهیم‬‫یک‬‫متن‬‫بر‬‫روی‬LCD‫نمایش‬‫دهیم‬‫باید‬‫داخل‬‫دو‬‫تا‬“ “‫قرار‬‫بگیرد‬lcd.print(“FaraDars.org”) •‫مثال‬:‫اگر‬‫بخواهیم‬‫مقدار‬‫یک‬‫مغتیر‬‫را‬‫نمایش‬‫دهیم‬‫کافی‬‫است‬‫نام‬‫متغیر‬‫را‬‫بنویسیم‬lcd.print(sensorValue) 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 67.
    ‫اندازی‬ ‫راه‬LCD‫کاراکتری‬ •‫دستورات‬‫مهم‬‫مورد‬‫استفاده‬‫در‬LCD: • lcd.clear()LCD ‫پاک‬‫کردن‬‫صفحه‬‫نمایش‬ • lcd.noDisplay()  ‫بدون‬‫از‬‫دست‬‫رفتن‬‫اطالعات‬ LCD ‫خاموش‬‫کردن‬‫صفحه‬‫نمایش‬ • lcd.display()  ‫بدون‬‫از‬‫دست‬‫رفتن‬‫اطالعات‬ LCD ‫روشن‬‫کردن‬‫صفحه‬‫نمایش‬ 7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 68.
    •‫بستن‬‫مدار‬LCD‫کاراکتری‬16x2 8 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 69.
    9 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 70.
    ‫آردوینو‬ ‫با‬ ‫آهنگ‬‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio) •‫به‬‫طور‬،‫خالصه‬‫عملکرد‬‫بلندگوها‬(Speaker)‫بدین‬‫شکل‬‫است‬‫که‬: ‫سینگال‬‫الکتریکی‬(ً‫ا‬‫غالب‬‫تقویت‬‫شده‬)‫از‬‫طریق‬‫سیم‬‫های‬‫بلندگو‬‫به‬‫سیم‬‫پیچ‬‫داخلی‬‫بلندگو‬‫که‬‫دور‬‫هسته‬‫آهنرب‬‫ایی‬‫آن‬‫پیچیده‬‫شده‬ ‫است‬‫وارد‬‫می‬،‫شود‬‫و‬‫سبب‬‫به‬‫وجود‬‫آمدن‬‫میدان‬‫مغناطیسی‬‫و‬‫خاصیت‬‫آهنربایی‬‫می‬‫شود‬‫که‬‫سبب‬‫جابه‬‫جایی‬‫هسته‬‫ی‬‫آهنی‬‫درون‬ ‫اسپیکر‬‫می‬‫شود‬. ‫تغییرات‬‫حرکت‬‫و‬‫جابه‬‫جایی‬‫هسته‬‫آهنی‬‫یک‬‫موج‬‫هوای‬‫کم‬‫فشار‬‫و‬‫پر‬‫فشار‬‫درون‬‫آن‬‫ایجاد‬‫می‬،‫کند‬‫که‬‫سبب‬‫جابه‬‫جابی‬‫پ‬‫رده‬‫نازک‬ ‫اسپیکر‬‫و‬‫نهایت‬‫تولید‬‫صدا‬‫می‬‫شود‬. ‫رابطه‬‫ی‬‫شدت‬‫صدا‬‫و‬Tone‫آن‬‫به‬‫سیگنال‬‫وارد‬‫شده‬‫بستگی‬،‫دارد‬‫که‬‫چه‬‫میزان‬‫هسته‬‫را‬‫جابه‬‫جا‬‫کند‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 71.
    ‫آردوینو‬ ‫با‬ ‫آهنگ‬‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio) •‫آشنایی‬‫مقدماتی‬‫با‬‫موسیقی‬‫در‬‫پروژه‬: 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 72.
    ‫آردوینو‬ ‫با‬ ‫آهنگ‬‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio) •‫نمونه‬‫ای‬‫از‬Tone‫های‬‫موجود‬‫در‬‫کتابخانه‬Pitch.h #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 ‫نکته‬:‫هرکجا‬‫عبارت‬S‫را‬،‫دیدید‬‫منظور‬#،‫است‬‫برای‬‫مثال‬CS1‫همان‬C#1‫است‬ 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 73.
    ‫آردوینو‬ ‫با‬ ‫آهنگ‬‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio) •‫ارزش‬‫زمانی‬‫ُت‬‫ن‬‫ها‬(duration) •‫نکته‬:‫در‬‫برنامه‬‫به‬‫جای‬ 1 4 ، 1 2 ،‫و‬...‫فقط‬2،4،8‫و‬..‫نوشته‬‫می‬‫شود‬ 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 74.
    ‫آردوینو‬ ‫با‬ ‫آهنگ‬‫و‬ ‫صدا‬ ‫ایجاد‬(Arduio) • tone( ‫نام‬‫پایه‬ , ‫متغیر‬‫آرایه‬‫شامل‬‫ُت‬‫ن‬‫ها‬ [for ‫متغیر‬‫حلقه‬‫تکرار‬‫شونده‬ ] , ‫ارزش‬‫زمانی‬ ); •‫این‬‫تابع‬‫برای‬‫اجرای‬‫آهنگ‬‫ها‬‫بر‬‫اساس‬‫ُت‬‫ن‬‫ها‬‫عمل‬‫می‬‫کند‬‫که‬‫در‬‫هر‬‫بازه‬‫زمانی‬(‫نیاز‬‫است‬ًً‫ا‬‫حتم‬‫بعد‬‫از‬‫آن‬delay()‫آورده‬ ‫شود‬)‫یک‬‫ُت‬‫ن‬‫اجرا‬‫کرده‬‫که‬‫در‬‫مجموع‬‫آهنگ‬‫مطلوب‬‫مارا‬‫تولید‬‫می‬‫کند‬ 6 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 75.
    7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 76.
    ‫موتور‬ ‫درایور‬ ‫اندازی‬‫راه‬DC •‫درایور‬(Driver)‫یا‬‫راه‬‫انداز‬‫چیست‬‫؟‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 77.
    ‫درایور‬ ‫اندازی‬ ‫راه‬‫موتور‬DC‫تراشه‬‫با‬L298 •‫آشنایی‬‫با‬‫مشخصات‬‫فنی‬‫تراشه‬L298 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 78.
    ‫موتور‬ ‫درایور‬ ‫اندازی‬‫راه‬DC‫تراشه‬ ‫با‬L298 ‫اشکال‬‫رایج‬‫در‬‫بازار‬(‫به‬‫صورت‬‫ماژول‬‫درایور‬‫موتور‬DC) 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 79.
    ‫شرح‬‫قسمت‬‫های‬‫مختلف‬ ‫ماژول‬ 5 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 80.
  • 81.
    7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 82.
    ‫موتور‬ ‫درایور‬ ‫اندازی‬‫راه‬DC‫طریق‬ ‫از‬PWM •PWM‫چیست‬‫؟‬ •PWM‫مخفف‬(Pulse Width Modulation) ‫یعنی‬‫مدوالسیون‬‫عرض‬‫پالس‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 83.
    ‫موتور‬ ‫درایور‬ ‫اندازی‬‫راه‬DC‫طریق‬ ‫از‬PWM •‫کمی‬‫بیشتر‬‫از‬PWM‫بدانیم‬... • Duty cycle = 𝑻𝒊𝒎𝒆 𝑶𝑵 𝑻𝒊𝒎𝒆 𝑶𝑵 + 𝑻𝒊𝒎𝒆 𝑶𝑭𝑭 × 𝟏𝟎𝟎 3 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 84.
    ‫موتور‬ ‫درایور‬ ‫اندازی‬‫راه‬DC‫طریق‬ ‫از‬PWM 4 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 85.
    ‫موتور‬ ‫درایور‬ ‫اندازی‬‫راه‬DC‫طریق‬ ‫از‬PWM 5 ‫پالس‬ ‫ایجاد‬ ‫دستور‬PWM‫آردوینو‬ ‫در‬ • analogWrite(‫پایه‬ ‫نام‬ , ‫تا‬ ‫صفر‬ ‫از‬ ‫عدد‬255 ); •‫نکته‬:‫در‬Arduino Uno‫های‬ ‫پایه‬ ‫فقط‬(3،5،6،10،11)‫سازی‬ ‫پیاده‬ ‫امکان‬PWM‫دهد‬ ‫می‬ ‫ما‬ ‫به‬ ‫را‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 86.
    6 • analogWrite(‫پایه‬ ‫نام‬, ‫تا‬ ‫صفر‬ ‫از‬ ‫عدد‬255 ); ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 87.
    ‫راه‬‫اندازی‬‫پیشرفته‬ ‫در‬‫این‬‫حالت‬‫ما‬‫می‬‫خواهیم‬‫یک‬‫موتور‬‫را‬‫به‬ ‫کانال‬A‫متصل‬‫کنیم‬‫و‬‫از‬‫طریق‬‫کلید‬‫فش‬‫اری‬ (Push Button)‫جهت‬‫آن‬‫را‬‫کنترل‬ ‫کنیم‬. ‫بنحوی‬‫که‬‫با‬‫فشردن‬،‫کلید‬‫سرعت‬‫موتو‬‫ر‬‫به‬ ‫تدریج‬ ‫افزایش‬‫یافته‬‫تا‬‫به‬‫ماکزیمم‬‫سرعت‬‫خود‬ ‫برسد‬‫و‬‫بالعکس‬. 7 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 88.
    8 ‫اتصال‬ ‫ی‬ ‫نحوه‬Arduino‫ماژول‬‫به‬L298 IN1  Pin7 Arduino IN2  Pin8 Arduino ENA  Pin9 Arduino ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org ‫رﺑﺎﺗﯿﮏ‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﻮرﯾﺖ‬ ‫ﺑﺎ‬ ‫آردوﯾﻨﻮ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬ faradars.org/fvrd9311
  • 89.
    ‫در‬ ‫شده‬ ‫مطرح‬‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬‫های‬ ‫فرادرس‬ ‫مجموعه‬«‫برنامه‬‫نویسی‬‫آردوینو‬(Arduino)‫با‬ ‫رباتیک‬ ‫های‬ ‫پروژه‬ ‫محوریت‬»‫است‬ ‫شده‬ ‫تهیه‬. ‫نمایید‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬. faradars.org/fvrd9311