سلام دوستان امیدوارم حالتون عالی باشه در آموزش امروز، ما قصد داریم پروژه ای به نام کنترل موتور DC با استفاده از XBee و Arduino در Proteus ISIS طراحی کنیم. من کد کامل را به اشتراک گذاشته ام و همچنین آن را با جزئیات توضیح داده ام. همچنین می توانید شبیه سازی کامل پروتئوس را که در انتهای این آموزش ارائه شده است دانلود کنید. در این پروژه دو شبیه سازی پروتئوس را طراحی کرده ام.
اولین شبیه سازی مربوط به کنترل از راه دور است که در آن از صفحه کلید استفاده کرده ام. شبیهسازی دوم شامل دو موتور DC ما است و من با کنترل از راه دور جهت آن موتورهای DC را کنترل میکنم. ماژول XBee برای ارسال داده های بی سیم استفاده می شود. این کد روی سخت افزار نیز کار می کند زیرا من خودم آن را آزمایش کرده ام. بنابراین، اجازه دهید با استفاده از XBee و Arduino در Proteus ISIS با DC Motor Control شروع کنیم:
کنترل موتور DC با استفاده از XBee و Arduino در Proteus
- من دو شبیه سازی پروتئوس را برای این پروژه طراحی کرده ام.
- شبیه سازی اول به عنوان کنترل از راه دور و شبیه سازی دوم به عنوان کنترل موتور DC نامگذاری شده است.
- من مسیرهای این موتورهای DC را از ریموت کنترل می کنم.
- بنابراین، اجازه دهید ابتدا نگاهی به بخش Remote بیندازیم و سپس در مورد کنترل موتور DC بحث خواهیم کرد.
کنترل از راه دور
- در اینجا مدار کلی برای کنترل از راه دور طراحی شده در Proteus ISIS آمده است:
- همانطور که در شکل بالا مشاهده می کنید که Arduino UNO را داریم که به عنوان میکروکنترلر استفاده می شود و سپس ماژول XBee را داریم که برای ارتباط RF استفاده می شود و در نهایت Keypad را برای ارسال دستورات داریم.
- شما باید این کتابخانه XBee را برای Proteus دانلود کنید تا از این ماژول XBee در Proteus استفاده کنید.
- همچنین باید کتابخانه آردوینو را برای پروتئوس دانلود کنید زیرا پروتئوس آردوینو در آن ندارد.
- مانیتور سریال برای مشاهده تمام دستورات استفاده می شود.
- حالا کاری که باید انجام دهیم این است که برای آردوینو UNO کد بنویسیم.
- بنابراین، کد زیر را کپی کنید و فایل Hex خود را از نرم افزار آردوینو دریافت کنید.
#include <Keypad.h>
بایت const ROWS = 4; //چهار ردیف
شامل بایت COLS = 4; //کلیدهای کاراکتر سه ستون
[ROWS][COLS] = {
{'7','8','9', '/'},
{'4','5','6','x'},
{'1','2','3','-'},
{'*','0','#','+'} }
;
پین ردیف بایت[ROWS] = {13، 12، 11، 10}؛ //به پین اوت های ردیف
بایت صفحه کلید متصل شوید colPins[COLS] = {9, 8, 7, 6}; //به پایه های ستون صفحه کلید متصل شوید
صفحه کلید صفحه کلید = صفحه کلید (makeKeymap (کلیدها)، پین ردیف، colPins، ROWS، COLS);
int KeyCheck = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
char key = keypad.getKey();
if (key)
{
if(key == '1'){KeyCheck = 1; Serial.print(“1”);}
if(key == '2'){KeyCheck = 1; Serial.print(“2”);}
if(key == '3'){KeyCheck = 1; Serial.print("3");}
if(key == '4'){KeyCheck = 1; Serial.print(“4”);}
if(key == '5'){KeyCheck = 1; Serial.print(“5”);}
if(key == '6'){KeyCheck = 1; Serial.print("6");}