به نام خدا : تو این مطلب میخوام یه پروژه آرم دیگه قرار بدم، تو این پروژه میخوام سرعت و جهت حرکت یه موتور DC رو با استفاده از درایور L298N با هم کنترل کنیم توسط کامپیوتر که برا این کار من با #C دو تا نرم افزار ساده ولی جالب نوشتم که دستورات رو به میکروکنترلر LPC1768 میده و میکرو هم به درایور L298N دستور میده و این درایور هم به موتور ها دستور میده ^_^ این پروژه تو ماشین کنترلی – ربات مسیر یاب و کلا هر پروژه ای که توش موتور DC مورد استفاده قرار میگیره میتونه مفید باشه و خود پروژه #C اش هم میتونه شروعی باشه برا بحث ارتباط میکرو و کامپیوتر ( پروژه کنترل دور موتور dc با میکرو lpc1768 و l298n )
پروژه کنترل دور موتور dc با میکرو lpc1768 و l298n
مطلب مرتبط : پروژه کنترل دور موتور DC با PWM با AVR
کنترل دور موتور dc با l289n
سوال 1 : کنترل دور موتور DC یعنی چی؟
جواب 1 : بهتره بگیم کنترل سرعت و جهت، ولی خب عرفه که میگن کنترل دور موتور، بگذریم زیاد مهم نیست، تو این پروژه ما هم سرعت موتور رو کنترل میکنیم و هم جهت چرخش موتور رو.
سوال 2 : چطور میشه سرعت موتور رو تغییر داد؟
جواب 2 : خب فرض کن یه موتور dc از این ساده ها که تو اسباببازی ها هستش داریم و 5 ولته، خب اگه ولتاژ مثلا 2 ولت بدیم به موتور موتور میچرخه ولی آروم میچرخه، خب حالا اگه ولتاژ اعمالی به موتور رو زیاد کنیم سرعت موتور هم زیاد میشه، و وقتی 5 ولت بهش بدیم، با حداکثر سرعت خودش میچرخه و بیشتر هم بدی میره اون دنیا ( اگه موتور dc داشتید و منبع تغذیه متغییر داشتید و حسش رو هم داشتید، تست کردن این مورد ظرر نداره )
سوال 3 : چطور جهت موتور رو تغییر میدیم؟
جواب 3 : اگه ولتاژ اعمالی به موتور رو برعکس کنیم، موتور هم برعکس میچرخه، یعنی اول پایه 1 موتور اومدیم vcc وصل کردیم و پایه 2 رو به gnd وصل کردیم و مثلا موتور به سمت چپ میچرخه حالا اگه بیایم پایه 1 رو به gnd و 2 رو به vcc وصل کنیم موتور به سمت راست میچرخه.
سوال 4 : خب چطور موتور رو به میکروکنترلر وصل میکنی؟ مگه جریان خروجی میکرو محدود نیست؟ خب مستقیم وصل کنی به میکرو که بعد چند ثانیه به احتمال زیاد اون پایه میکرو ( و شاید هم خود میکرو میسوزه که )، این مشکل چطور حل میکنی؟
جواب 4 : خب دقیقا درست گفتی، برا این کار میایم و از درایور راه انداز موتور dc استفاده میکنیم، که این درایورها انواع مختلفی دارن که یه روش استفاده از L298 هستش که تو این پروژه ما از این IC استفاده کردیم ولی چون یه سری قطعه مطعه جدا داشتش و خود این IC هم رو برد برد قرار دادنش دردسر عظیمی هستش، لذا من بیخیالش شدم و برد آمادش رو خریدم.
پروژه کنترل دور موتور dc با میکروکنترلر آرم lpc1768
شماتیک پروژه :
توجه : در مدار زیر، یه دیود بین کلکتور ترانزیستور و ولتاژ 5 ولت قرار بدید، هنگام رسم شماتیک این موردو فراموش کردم.
عکس مدار در عمل :
پروژه کنترل میکرو با #C – پروژه 1
کد دو پروژه #C زیر رو من در ته مطلب برا دانلود براتون قرار میدم.
پروژه کنترل میکرو با #C – پروژه 2
فیلم پروژه :
کد پروژه LPC1768
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <lpc17xx.h> #include "pwm.h" #include "delay.h" #include "serial.h" unsigned int CYCLE_TIME = 100; int main() { SystemInit(); uart3_init( ۱/* TxEnable*/, 1 /*RxEnable*/, 9600 /*baudrate*/, 0 /*use_Recive_Interrupt*/, ۰ /*autoBaud_Enable*/, 0 /*use_AutoBaud_Finish_Interrupt*/, _1Character /*NumberCharRxTrigger*/ ); LPC_GPIO1->FIODIR = 0x0001; LPC_GPIO1->FIOSET = 0x0001; PWM_Init(CYCLE_TIME); PWM_Start(PWM_1); PWM_SetDutyCycle( PWM_1, 0 ); // مقدار اولیه while(1) { switch( uart3_readData() ) { case 'S' : // تعیین سرعت موتور PWM_SetDutyCycle( PWM_1, uart3_readNumber( 100000, 3 ) ); break; case 'D' : // تعیین سمت حرکت موتور switch( uart3_readData() ) { case 'L' : LPC_GPIO1->FIOCLR = 0x0001; break; case 'R' : LPC_GPIO1->FIOSET = 0x0001; break; } break; } } } |
هزینه این مطلب : یه فاتحه برا تموم اموات خودمو و خودتون بخونید که اونا دستشون از این دنیا کوتاهه!!!؛ 3 تا هم صلوات برا سلامتی امام خامنه ای
ممنون از این که تا این جا با ما بودید و امیدوارم این مطلب براتون مفید باشه، فعلا یا علی.
مهمان
من برنامه رو ران میکنم خطا میده ک کتابخانه lpc17xx. H تعریف نشده باید چیکار کنم
مهمان
آره خب اما گه بخوایم با اینکودر تنظیم کنیم دور موتور رو باید چه تغییراتی ایجاد کنیم؟
مهمان
داداش با کیف arm چجوری میشه این برنامه رو اجرا کرد؟
وسیله ی اضافی هم میخواد؟
دستور دیگه ای رو هم باید اضافه شه؟
نویسنده این مطلب
“کیف arm” چیه دیگه؟
مهمان
یه ست آموزشی arm که تو آزمایشگاه ها استفاده میشه
…
این یه نمونه اش
نویسنده این مطلب
برد آموزشی فوق LPC1768 هستش – میکرو استفاده شده تو این پروژه هم همینه – خب برد آموزشی فوق باید کد های نمونه داشته باشه طبیعتا طوری که شما رو مطالب دیگه توی نت بینیاز کنه.
روال کار همونه – حالا شما برد آموزشی داری – ما هدربرد داریم – یکی دیگه ممکنه میکشروشو بگیره و PCB مورد نیازشو بزنه.
برنامه رو باز کن – پروگرام کن رو میکروت – همین – چیز خاصی نداره.- شماتیک هم که تو مطلب هس.
مهمان
این کد توkeil هم کار میکنه؟ و اگه بخوایم دور موتور را با اینکودر کنترل کنیم لازمه تغییراتی در کد ایجاد کنیم؟
نویسنده این مطلب
پروژه ته مطلب رو دانلود کردید؟ با کیل هستش دیگه.
مهمان
داداش رمز فایل کار نمیکنه.
نویسنده این مطلب
تست کردم موردی نبود.
www.dmf313.ir
مهمان
سلام
برنامه خطا داره و اینم خطا اش هست serial.c(40): error: #20: identifier “SystemCoreClock” is undefined
تمام فایل های کتابخونه رو هم add کردم
پروژه زیاد نوشتم ولی با کتابخونه خودم یا سایت های مختلف میدونم مربوط به تقسیم فرکانس هست
سایت های خارجی رو دیدم همشون اشاره به کتابخونه دارن lpc17xx دارن ولی خطا تو قمست serial.c میاد
از طرفی من با keil ورژن 4 نوشتم ایا ربطی داره یا نه
ممنون میشم اگه کمک کنید
نویسنده این مطلب
سلام – تا جایی که یادمه یه فایلی تو پروژه هستش اونو کپی نکردی – شما کد توی مطلب رو بیخیال – پروژه رو از ته مطلب دانلود کن و اجرا کن ببین باز خطا میده – اگه میده بگو تا من کیل رو نصب کنم و پروژه ته مطلبو دانلود و تست کنم و ببینم مشکل از کجاس.
مهمان
همین کار رو که فرمودید انجام دادم خطا داد
تو فایل SERIAL.C اومدم به جای متغییر SystemCoreClock از متغییر Cclk استفاده کردم که تو فایل اصلی LPC17xx هم استفاده شده ودر قسمت تعریف متغییرها یه معرفی اش کردم;uint32_t var_UART0ClockDivider_u32, var_UART0Clock_u32, var_RegValue_u32,Cclk;
و خطا رفع شد (اینو برای دوستانی نوشتم که احمالا به این مشکل بخورن )
برنامه پروگرم شد
حالا از طریق نرم افزار ترمینال وقتی مثلا روی S یا R چاپ میکنم متاسفانه خروجی ندارم
حالا نمیدونم مشکل از تغییرات هست یا چیز دیگه ؟؟؟؟؟؟؟
نویسنده این مطلب
من الان Keil v5.15 رو نصب کردم پروژه ته مطلبو دانلود و اجرا کردم خطایی نداد.
تا جایی که یادمه باید این دو فایل زیر رو در پروژت کپی کنی :
startup_LPC17xx.s
startup_LPC17xx.c
مهمان
خدا خیرتون بده
دمتون گرم
مهمان
پروژه دانشجویی انجام نمیدید؟
تو چه سایتی برم.
مهمان
موضوع پروژه من درمورد کنترل دور موتور ac با روش فرکانسی
می خواستم بپرسم که شما پروژه ساخت رو انجام میدید؟
مهمان
سلام و وقت بخیر
خواستم بپرسم برای استفاده از lcd برای نمایش سرعت دقیقا باید چکار کنم…کد هاش چی هست و کد رو تو چه نرم افزاری باید زد؟
نویسنده این مطلب
سلام
با کدوم میکرو؟ lpc؟ مطلب lcd با lpc1768 تو سایت هستش.
مهمان
سلام
با میکرو ۱۷۶۸ میخام ی برنامه بنویسم که موج سیوسی را گرفته روی ال سی دی بهمراه rms ، fft پیک تو پیک ، dc را نشان بده میتونی کمک کنی؟
ممنونم رفیق
مهمان
سلام خسته نباشی این برنامه های c# رو چجوری متونم اجرا کنم ؟
نویسنده این مطلب
سلام-فایل exe شونو اجرا میکنی دیگه.
مهمان
سلام من میخوام کنترل دور موتور با ARM سری LPC2368 انجام بدم میتونید از یه برد آموزشی استفاده میکنم که درایور موتور l293m داره.
چطور میتونم برنامشو بنویسم؟
آیا میتونم از برنامه شما هم استفاده بکنم یا نه؟
لطفا سریع جوابمو بدید ممنون.
نویسنده این مطلب
سلام
۲۳۶۸ کار نکردم – نمیدونم در چه مواردی فرق داره با ۱۷۶۸ ولی خب نباید زیاد باشه!
مهمان
سلام و خسته نباشید..
یه فن دارم که یک دستگاه رو خنک میکنه.میخوام مداری براش درست کنم که وقتی فن خاموش شد برق دستگاه قطع بشه..
ممنون میشم راهنمایی کنید
نویسنده این مطلب
سلام – اگه بخوای با میکرو انجام بدی – که بهتره کنترل فن توسط میکرو انجام بشه و هر موقع خواستی فنو خاموش کنی – به کمک یه رله ( کلید الکترونیکی ) – برق رو هم قطع کنید/
مهمان
سلام.
ترانزیستور بزاری بهتر از رله است.
برای کار های با دوام.
مهمان
سلام مهندس خسته نباشی .
یه پروژه داشتیم خواستیم راهنماییمون کنید .
پروژه مون کنترل زاویه موتور dc با فیدبک زاویه و سرعت
ممنونتون میشم .
مهمان
(uart3_readNumber( 100000, 3
سلام . مرسی داداش تو اینجا که عمل دریافت رو انجام میدی این صد هزار و عدد ۳ چی رو تعیین میکنن؟
نویسنده این مطلب
سلام
به مطلب ارتباط سریال مراجعه کن – اونجا توضیح دادم این تابع رو – از منو آموزش آرم – قسمت lpc1768