تبلیغات
مطالب اینترنتی - کنترل سرعت موتور DC با استفاده از PWM در AVR Atmega32
 
مطالب اینترنتی


استفاده از PWM (مدولاسیون عرض پالس) برای کنترل یک دستگاه یک روش معمول در سیستم های جاسازی شده است؛ برای مثال، می توانید از آن برای کنترل شدت نور یک LED یا کنترل سرعت موتور DC استفاده کنید. در این مقاله، ما توضیح خواهیم داد که چگونه PWM را از AVR Atmega32 بدست آورید و شما باید PWM خروجی را به یک موتور کوچک DC برای تغییر سرعت آن اعمال کنید.

برای دریافت خروجی PWM از میکرو کنترلر AVR ، باید از ماژول تایمر یا شمارنده AVR استفاده کنید. این ماژول می تواند در چندین حالت برای تولید سیگنال های مختلف PWM و با ویژگی های مختلف استفاده شود. در اینجا ما توضیح خواهیم داد که چگونه از counter در حالت PWM Correct Pause استفاده کنید. Atmega32 دارای ۳ تایمر یا شمارنده است و شما باید از تایمر یا شمارنده ۰ استفاده کنید. در حالت “PWM Correct Pause“، شمارنده از ۰ تا حداکثر مقدار آن (۰xFF) را مکررا شمرده و سپس از حداکثر به صفر باز می گردد. پین خروجی (OC0)هنگامی که شمارنده در شمارش به بالا به مقداری معین به نام Compare valu می رسد، پاک می شود و زمانی که شمارنده با شمارش به سمت پایین به این مقدار می رسد، تنظیم می شود. این مقدار مقایسه شده توسط نرم افزار در یک ثبات به نام OCR0 ثبت می شود، در حالی که مقدار خود شمارنده در یک ثبات به نام TCNT0 ثبت می شود. هنگامی که مقدارTCNT0 با OCR0برابر است، آن را به عنوان یک تطابق می داند. نمودار زمان بندی زیر عملیات را توضیح می دهد.

شما همچنین می توانید PWM خروجی را با تغییر مقادیر بیت (COM00وCOM01) در ثبات TCCR تغییر دهید. در این حالت، خروجی پین (OC0) زمانی که در شمارش به بالا تطابق در مقایسه اتفاق می افتد تنظیم می شود، و زمانی که در شمارش به پایین همان تطابق یافت می شود مقدار آن پاک می شود، و شکل موج به گونه ای خواهد بود که در نمودار زمان بندی در زیر نشان داده شده است.

در ساختنی بخوانید : آموزش ساخت : با تکه های پارچه دستبند درست کنید

با استفاده از فرمول زیر می توانید میزان duty cycle موج PWM را محاسبه نمایید:

در این ساختنی، با تغییر مقدار مقایسه ای (OCR0) بر اساس دکمه های فشار داده شده توسط کاربر، از دیوتی سایکل شماره ۳ استفاده خواهد شد که تغییر در سرعت موتور را مشاهده خواهید کرد.

ابتدا PWM را پیکربندی کنید، این عمل در ۲ مرحله ساده انجام می شود:

  1. ثباتTCCR0را پیکربندی کنید.
  2. مقدار مقایسه در OCR را تنظیم کنید

۱- تنظیم ثبات TCCR0

W R/W R/W R/W R/W R/W R/W R/W
FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00

بیت های WGM00 و WGM01 را به ترتیب ۱ و ۰ قرار دهید. این حالت مد phase correct PWM را فعال می کند.

بیت COM00 و COM01 را به ترتیب ۰ و ۱ بگذارید. این بدان معنی است که PWM تولید شده PWM معکوس خواهد بود.

بیت های CS00 و CS01 و CS02 را به ترتیب ۱، ۰ و ۱ قرار دهید. این به این معنی است که کلاک ساعت سیستم را خوانده و آن را تقسیم بر ۱۰۲۴ می کند.

۲- تنظیم مقادیر مقایسه در ثبات OCR

همانطور که در بالا ذکر شد، duty cycle با استفاده از این معادله محاسبه می شود

بنابراین نتیجه تنظیم OCR0 = 178 مقدار PWM با حدود ۳۰٪ duty cycle می باشد.

نتیجه تنظیم OCR0 = 102 مقدار PWM با تقریبا ۶۰٪ duty cycle می باشد.

و تنظیم OCR0 = 25 یک PWM با تقریبا ۹۰٪ duty cycle را منجر خواهد شد.

در این برنامه ، موارد زیر انجام خواهد شد:

خواندن مقدار ۳ کلیدفشاری متصل به پین های PORT D.(0،۱،۲)

در ساختنی بخوانید : یک مدار ساده بسازید و با آن ظرفیت باتری های مختلف را اندازه بگیرید

اگر دکمه ۱ فشار داده شود، OCR0 = 25 تنظیم می شود. Duty cycle 90٪ است – موتور با سرعت بالا چرخش می کند.

اگر دکمه ۲ فشار داده شود، OCR0 = 102 تنظیم می شود. Duty cycle 60٪ است – موتور با سرعت متوسط چرخش می کند.

اگر دکمه ۳ فشار داده شود، OCR0 = 178 تنظیم می شود. Duty cycle 30٪ است – موتور با سرعت کم کار می کند.

باید دید که سرعت موتور متفاوت خواهد بود.

موتور های DC

هنگام اتصال موتور DC به یک میکرو کنترلر، نباید موتور را مستقیما به یکی از پین های میکرو وصل کرد. به علت جریان کشی بالا ولتاژ موتور ممکن است به میکرو آسیب برساند. در عوض، باید موتور را به یک منبع تغذیه متصل کنید و سپس با استفاده از PWM بر پایه یک ترانزیستور دارلینگتون (که معمولا ترانزیستور درایور موتور نامیده می شود)، منبع تغذیه (روشن/خاموش) را به موتور متصل کنید. به این ترتیب سرعت موتور با توجه به چرخه سیگنال PWM متفاوت است. اتصال کلی مدار در زیر طرح بندی نشان داده شده است. توجه داشته باشید که پین OC0 در PB3 می باشد. (پورت B، پین ۳)

شکل مدار PWM در AVR Atmega32

در نهایت می توانید کد برنامه کنترل سرعت موتور DC ، تصاویر مدار و یک ویدیو از نمایش عملیات مدار را در این قسمت مشاهده کنید.

برنامه و کد – کنترل سرعت موتور DC با استفاده از PWM در AVR

تصاویر پروژه کنترل سرعت موتور DC

منبع

بیشتر بخوانید:

[ad_2]

لینک منبع

مطلب کنترل سرعت موتور DC با استفاده از PWM در AVR Atmega32 در سایت مفیدستان.





نوع مطلب :
برچسب ها :
لینک های مرتبط :
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :