ايران ويج

نسخه‌ی کامل: کنترل سرعت با فرکانس در مسیر یاب(pwm)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام . به نظرتون استفاده از 5 تا cny70 در مسیر یاب برای یه سرعت زیاد کافیه ؟

قیمت این دوسنسور رو هم اگه بدین ممنون میشم
TCRT5000
cny70

اما سوال اصلیم

یه توضیحی در مورد pwm برای کنترل سرعت توی ربات میدین . برنامش و طرز کارش Rolleyes
خوشم میاد کلی تایپیک و مقاله در مورد PWM تو فروم موجوده و فقط یه سرچ کوچولو می خواد !!!!

قیمت ها رو هم برو تو روبوکیو ببین :
http://roboeq.com/modules.php?op=modload...link&cid=8

5 تا سنسور میشه ولی بیشتر بشه بهتره !!

این مقاله رو هم در مورد pwm بگیر :
http://forum.iranled.com/attachment.php?aid=1695

این تایپیک ها رو هم ببین :
http://forum.iranled.com/showthread.php?tid=11453
http://forum.iranled.com/showthread.php?tid=15969



اینم از کتاب سعید یه نفر


> پیکر بندی تایمر/کانتر یک در مد PWM :


pwm یا مدولاسین پهنای پالس یکی از امکانات پرکاربرد در avr میباشد ، از این موج برای کنترل دور موتور ساخت پالس مربعی و دیگر پالس ها و ... استفاده میشود

در این نوع مدولاسیون دامنه پالس ثابت است و نسبت زمان صفر به یک ان تغییر میکند برای درک بیشتر موضوع بهتر است کلیه مثالها را اجراکنید.

راه اندازی تایمر/کانتر 1 در مد pwm با دستورات زیر انجام میشود :

کد php:
Config Timer1 Pwm,Pwm 8|9|10 Compare A Pwm=Clear Up |Clear Down |Disconnect ,Compare B Pwm =Clear Up |Clear Down |Disconnect Prescale=1|8|64|256|1024 

Pwm = 8|9|10
pwm میتواند 8 یا 9 یا 10 بیتی باشد که مقدار بیت هرچه بیشتر یاشد دقت موج بیشتر است (تعدا پله بیشتر است )

pwm 8 بیتی تا 256 سرریز میشود (شما میتوانید 256 واحد ان را کم یا زیاد کنید) pwm 9 بیتی تا 512 و pwm 10 بیتی تا 1024 سرریز میشود.


Compare A Pwm=Clear Up |Clear Down |Disconnect:
در صورت استفاده از گزینه Clear Up، موج pwm از سطح 1 شروع میشود و در صورت انتخاب Clear Down ، موج pwm از سطح صفر شروع میشود و در صورت انتخاب Disconnect ، هنگامی که مقدار pwm با pwm1a که در برنامه مشخص میشود برابر شد ، ارتباط پالس با پایه ی oc1a قطع میشود .

Compare b Pwm=Clear Up |Clear Down |Disconnect:
در صورت استفاده از گزینه Clear Up، موج pwm از سطح 1 شروع میشود و در صورت انتخاب Clear Down ، موج pwm از سطح صفر شروع میشود و در صورت انتخاب Disconnect ، هنگامی که مقدار pwm با pwm1b که در برنامه مشخص میشود برابر شد ، ارتباط پالس با پایه ی oc1b قطع میشود .

Prescale :
این گزینه و مقدار کریستال در تعیین فرکانس pwm نقش دارند . برای تولید PWM با فرکانس های متفاوت از این گزینه ها استفاده می شود.

با استفاده از دو دستور زیر میتوان یک عدد ثابت یا متغییر را در ریجیستر pwm قرار داد تا مقدار pwm با انها مقایسه شود:

کد php:
Pwm1a=x
Pwm1b
=

یا

کد php:
COMPARE1A 
 COMPARE1B 


مثال:

کد php:
$regfile "m16def.dat"
$crystal 8000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Portc.4 Db5 Portc.5 Db6 Portc.6 Db7 Portc.7 Portc.3 Rs Portc.2
Config Timer1 
Pwm Pwm Compare A Pwm Clear Up Compare B Pwm Clear Down Prescale 1
Dim A 
As Byte
Dim B 
As Byte
Config portd 
output
Do
Pwm1a A
Pwm1b 
B
Incr A
Incr B
Waitms 500
Loop
End 

در مثال بالا مقدار دو متغییر a و b در ریجیستر pwm قرار داده شده اند ، مقدار انها هر یک میلی ثانیه افزایش میابد .

زمان تناوب پالس pwm از رابطه ی زیر بدست میاید:
زمان / 1 = فرکانس
فکر میکردم tcrt گرون تر باشه .دوتاش هم قیمت بود ! خودت کدومشو پیشنهاد میدی ؟
TCRT5000 گزینه خوبیه ولی ON2179 از همشون بهتره !!!
معمولي يام درست راه بندازي بهتر .جرا پول اضافه بذي؟؟
چرا سی ان وای از LTH1550استفاده کن من یه 45سنسورش رو ساختم با موتور1200RPM همه مسخرم می کردن ولی اول کشور شدم
اامتحان کن جواب می ده