ايران ويج

نسخه‌ی کامل: راهنمايي در زمينه كنترل PWM با ولوم يا مقاومت متغير؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
دوستان سلام
به راهنمايي يا كمك احتياج دارم كه چگونه كدهايي بنويسم كه با توجه به مقدار يك مقاومت متغير يك پهناي پالس يك موج PWM رو كنترل كنه؟
مثلا بنويسم اگر مقاومت =0 بود؟ چيكار كنه ... و تا مقاومت مساوي چند مي تونم برنامه ريزيش كنم؟
كاملا در اين پروژه كه متاسفانه دقيقه 90 شده و بايد تحويلش بدم گيج شدم و به كمك احتياج دارم؟
ممنون
سلام.
شما میخوای با پیچوندن پیچ پتانسیومتر پهنای پالس رو تغییر بدی؟درست متوجه شدم؟
سلام
مقاومت رو به adc میکرو وصل کن
از اونجایی که adc ده بیتیه پس یکی از کانال های 10 بیتی pwm مثل تایمر 1 رو فعال کن و بعش مقدار pwm مساوی مقدار خوانده شده از adc بذار
مثلا تو کدویژن
کد:
{
OCR1A=read_adc(0);
}
موفق باشیدWink
دوستان خيلي ممنون
آقاي h.unique بله نام پروژه كنترل دور موتور DC با PWM هست. و بايد با ولوم پهناي پالس PWM رو كنترل كنم با توجه كه دوست خوب آقاي hadikh73 اين راهنمايي مفيد رو انجام دادن سوالم اين هست محاسبه و فرمول خاصي اين وسط در كار نيست؟ OCR1A مي شه بگيد چي هست؟
اگر کنترل سرعت منطورتون هست تجربی
اگه پهنای باند چرا چون هم کانتر 10 بیتی هست هم adc پس مستقیم نسبت دادیم
اگه از یه کانتر 8 بیتی استفاده کردید در 8/10 باید ضرب کنید
اگه adc بیتی 12 باشته و کانتر 8 بیتی در 8/12
و ...
والله كنترل سرعت موتور DC هست ممكنه من در توضيحات منظورش رو اشتباه متوجه شده باشم ولي نام پروژه همين هست...
يه كاري رو بگيد كه كدها ساده ساده بشن. يعني اگر 10 بيتي خوبه همون 10 بيتي كه ديگه تقسيم نكنم و ديگه اينكه يك سون سگمنت دارم كه سرعت موتور DC رو از 0 تا 9 نشون مي ده اونم بايد مقدار پتانسيومتر رو تقسيم بر 10 كنم و روي سون سگمن نشون بدم؟
ممنون
داداشی من این پروژه رو واست انجام میدم.
البته شاید تا شب طول بکشه.
اگه موافقی من این پروژه رو واست انجام بدم اعلام کن تا شب پروژه رو بت تحویل میدم.
بعد یه چیز دیگه میخوای مقدار ADC رو با سون سگمنت نشون بدی؟سون سگمنت چند تایی باشه؟(1 - 2 -3 و..)؟
فقط اینارو مشخص کن:
0.به چه زبونی باشه؟
1.میکرو چی باشه؟
2.فرکانس چند باشه؟
3.و تمام اطلاعاتی که نیاز هست.
سلام.
دوست عزیز این هم همون چیزی که میخواستی.
سورس و شبیه ساز رو واست پیوست کردم.

این برنامه :
کد:
#include <mega16.h>
#include <delay.h>

int a;
int b;

unsigned int read_adc(unsigned char adc_input){
ADMUX=adc_input | (0x40 & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;}

void main(){
ADMUX=0x40 & 0xff;
ADCSRA=0x83;
TCCR1A=0xC3;
TCCR1B=0x0A;
DDRB=0xff;
DDRD=0xff;
PIND.6=1;
do{
b=read_adc(0);
OCR1A=b;
a=b;
a=a*0.0097751710654936;
PORTB=a;
}while(1);}

اینم شبیه ساز:
[تصویر:  Control_Motor_Dc_pic.jpg]

موفق باشی...HeartHeartHeart
سلام خسته نباشید
آقا خیلی مردی، دمت گرم مشکل ما هم حل شد با این کارت.
واقعا تشكر با اين پاسخ گويي
تو هيچ فرومي نديدم

تشكر
یکی از دوستان لطف کنن همین برنامه رو با بیسکام بذارن ... بجای پتانسیومتر هم دو تا کلید باشه برای UP و DOWN کردن ولتاژ خروجی
صفحه‌ها: 1 2 3 4