پروژه کنترل PWM با دما در نرم افزار کدویژن

  • پروژه‌ای
  • اینترنت
  • قابلیت ارسال پیشنهاد کاری بسته شده است

امیرحسین فرنوش

سلام

یک برنامه در نرم افزار کدویژن می خوام که یک atmega8 دما رو از یک سنسور lm35 بخواند (از پایه ADC) و با استفاده از تایمر در پایه خروجی تایمر (مثلا oco) pwm ای با فرکانس ۱۰۰ هرتز و دیوتی سایکل متغییر تولید کنه

بدین صورت که قبل دمای ۳۷ دیوتی سایکل صفر

دمای بین ۳۷ تا ۵۵ ، دیوتی سایکل بین ۳۰% تا ۱۰۰% به صورت خطی تغییر کند(با افزایش دما دیوتی سایکل افزایش و با کاهش دما دیوتی سایکل کاهش یابد)

و دمای بالای ۵۵ دیوتی سایکل ۱۰۰% ثابت بماند.

حتما این کار با استفاده از تایمر باید انجام شود و ورودی تایمر پایه ADC (سنسور lm35) میکرو باید باشد و خروجی هم همان خروجی تایمر مثلا oco یا غیره که pwm تولید کند.

 

کنترل pwm با توابع delay مانند برنامه زیر:

PORTD.0=0

)DELAY(1-DUTY

CYCLE/100)×T))O

PORTD.0=1

DELAY(DUTY CYCLE/100×T)

قابل انجام نیست و حتما باید از تایمر استفاده بشه

یا اگر تایمر بذارید و با ifهای فراوان به ازای هر درجه OCRO(دیوتی سایکل) را زیاد کنید:

T=READ_ADC(0)

;200=IF (T=37)  OCRO

;210=IF (T=38)  OCRO

در این پروژه جواب نخواهد داد.

من خودم تا تا حد متوسط کدنویسی می کنم و برنامه ای میخوام که تایمر به شکل اصولی با ADC لینک بشه و ورودی تایمر پایه ADC بشود.

همچنین آخر برنامه هم یه putchar بنویسید تا از طریق ارتباط سریال نرخ دما و درصد دیوتی سایکل رو با هر بار فشردن کلید T در صفحه کلید به کامپیوتر ارسال کند.

در کنار کدهای برنامه توضیحات جامع خط به خط لطفا بنویسید. این استادمون خیلی گیره و آدم رو سوال پیچ میکنه

ممنون میشم اگر زودتر جواب بدید

لطفا تخفیف دانشجویی فراموش نشود

باتشکر