آیا میدانید قران دارای 1,771 مد است
راز جواني من در اين است که هر روز چيز تازه اي ياد مي گيريم. از سولون
Logo

حل تمرینات و پروژه های درس میکروکنترلر
پروژه کنترل دمای هیتر با استفاده از کنترل کننده PID با میکروکنترلر AVR
www.picpars.com پروژه کنترل دمای هیتر با استفاده از کنترل کننده PID با میکروکنترلر AVR 193

امروز یک پروژه جالب به نام کنترل کننده PID طراحی کردم، که هدف من از این پروژه پیاده سازی کنترلر PID با استفاده از میکروکنترلر AVR می باشد. من این پروژه را تا آنجایی که بتوانم به زبان ساده توضیح خواهم داد که افراد مبتدی هم متوجه قضایای این کنترلر PID شوند. و اما اول اینکه کنترل کننده PID چیست؟

 PID مخفف Proportional Integral Derivative می باشد. کنترل PID یعنی عمل کردن بر روی متغییر مورد کنترل از طریق ترکیب مناسب سه عمل کنترلی تناسبی، انتگرالی، مشتق گیر، که به شرح زیر میباشد:

  1. تناسبی: که در آن عمل کنترل با سیگنال خطای محرک که برابر تفاضل میان سیگنال ورودی و سیگنال پس خور است متناسب می باشد.
  2. انتگرالی: که در آن عمل کنترل با انتگرال سیگنال خطای محرک متناسب است.
  3. مشتق گیر: که در آن عمل کنترل با مشتق سیگنال خطای محرک متناسب است.


چه موقع باید از کنترلر PID استفاده کنیم؟

بهترین مثال برای روشن شدن این قضیه کنترل دمای یک هیتر می باشد که در پروتیوس هم این هیتر برای شبیه سازی وجود دارد. همانطور که می دانیم وقتی که ما هیتر را روشن می کنیم عوامل زیادی در دمای آن نقش دارند مثلا هیتر در فضای باز قرار دارد یا در فضای بسته و یا اینکه اندازه ابعاد اتاق چقدر است و ... خلاصه وقتی ما سیگنالی به هیتر اعمال می کنیم دما کم کم شروع به بالا رفتن می کند بعد از مدتی دیگه با اعمال تعدادی پالس مشخص دما به صورت تناسبی بالا نمی رود و می بینیم که دما به طور چشمگیری خود به خود بالا می رود و کنترل آن از دست ما خارج می شود. این مسئله را می توانید در پروتیوس به صورت عملی اجرا کنید که من آن را به صورت فایل جداگانه در پوشه Test_heter گذاشتم. می بینیم که کلیک کردن بر روی Button دمای هیتر بالا می رود شما چند کلیک که انجام بدهید دما سریع بالا می رود و دیگه قابل کنترل نیست و خود به خود بالا می رود. (حتما اجرا کنید تا به نقش مهم کنترلر PID پی ببرید)

 حالا نقش کنترل کننده PID چیست؟

کنترل PID از حاصل جمع سه کنترل کننده تناسبی، انتگرالی، مشتق گیر، تشکیل شده است به عنوان مثال ما می خواهیم دمای هیتر را روی 50 درجه سانتیگراد تثبیت کنیم پس مقدار مطلوب ما یا همان Set Point برابر با SP=50 می باشد.

 اگر ما سیگنالی به هیتر اعمال کنیم و دمای هیتر 50 درجه شود یعنی اینکه سیگنال خطا برابر با صفر شده پس فقط کنترل کننده تناسبی وارد عمل می شود و پروسه را کنترل می کند و قسمت انتگرالی و مشتق گیری ما مقدار صفر را خواهند داشت. OUT=P+0+0

اگر دمای اندازه گیری شده بیشتر یا کمتر از مقدار SP شود آنگاه کنترل کننده انتگرالی و مشتق گیر وارد عمل خواهند شد تا پروسه را به مقدار مطلوب برسانند. OUT=P+I+D  وقتی این دو کنترل کننده وارد عمل خواهند شد که ما سیگنال خطا داشته باشیم (صفر نباشد) آنگاه قسمت انتگرالی از سیگنال خطا انتگرال می گیرد و قسمت مشتق گیر هم از سیگنال خطا مشتق می گیرد که حاصل جمع این سه خروجی PID ما می باشد.

 تا اینجا مسئله روشن شده که کنترل PID چه کاربرد مهمی در پروسه ها مخصوصا پروسه های غیر قابل پیش بینی دارد. PID با استفاده خطا های قبلی و خطا های حال، آینده را پیش بینی کرده و تدابیری برای کنترل هر چه بهتر سیستم ایجاد می کند.

پس معاله خروجی ما برابر است با:

Kp+Ki(Integral (e(t)))+Kd(dif(e(t)))

که در این معادله Kp, Ki, Kd ضرایب تناسبی و انتگرالی و مشتق گیر ما می باشد که با انتخاب درست این ضرایب که اکثرا به صورت عملی و تجربی بدست می آیند می توان کنترلر PID را به نحوی تنظیم کرد که نه اورشوت و نه فراجهش بیش از حدی داشته باشیم و سیستم در وضعیت پایداری قرار گیرد. 

اما پروژه و قسمت های مختلف آن:

  1. LCD 4*16
  2. Micro ATMEGA32
  3. Keypad 3*4
  4. Heater (OVEN)

برنامه از قسمت های مختلفی که به صورت روتین نوشته شده است تشکیل شده که به شرح زیر می باشد:

  1.  روتین کیبورد که وظیفه اسکن کیبور را دارد و با آن مقدرا دمای مطلوب SP را وارد می کنیم.
  2. روتین وقفه INT0 که در آن برنامه اسکن کیبور نوشته شده.
  3. روتین مبدل آنالوگ به دیجیتال ADC که  دمای هیتر را تبدیل و برای میکرو آماده می کند.
  4. روتین LCD و حلقه بی نهایت که وظیفه نمایش اطلاعات و محاسبات مربوط به PID را انجام می دهد.

 جهت جلوگیری از شلوغی برنامه برنامه اسکن کیبورد را در یک فایل هدر جداگانه نوشتم و این فایل را با استفاده از دستور #include <keypad.h> معرفی می کنیم و در برنامه با استفاده از دستور key = keypad(); کیبورد اسکن و عدد مربوطه قرائت می شود.

 در روتین ext_int0_isr ابتدا وقفه سراسری غیر فعال شده و وارد حلقه شرطی می شود که شرط آنkey!=11 می باشد عدد 11 یعنی همان کد کلید # که به در اینجا به عنوان کلید ثبت تعریف شده و وقتی شرط برقرار شود یعنی ما کلید ثبت را فشار دادیم میکرو اعداد وارد شده را با یک ضرب و تقسیم ساده به هم می چسباند و به متغییر SP اختصاص داده می شود. از کلید * با کد 10 هم به عنوان کلید DEL استفاده شده.

در روتین adc_isr هم با استفاده از وقفه ADC عمل آنالوگ به دیجیتال انجام شده و دمای قرائت شده در متغییر temp قرار می گیرد.

در روتین main هم دستورات مربوط به پیکره بندی LCD و وقفه INT0 و ADC که همگی با Code Wizard انجام شد قرار گرفته است. در آخر هم عملیات مربوط به محاسبات کنترلر PID نوشته شده که به شرح زیر می باشد:


error=SP-temp; //H1 pterm=kp*error; //H2 iterm=(ki*error)+last_iterm; //H3 dterm=(error-last_error)*kd; //H4 D=(pterm+iterm+dterm)*100; //H5 if(D<1) D=1; //H6 if(D>1020) D=1020; //H7 last_iterm=iterm; //H8 last_error=error; //H9 D2=D; //H10 HD=D2/256; //change to int val [xx xx] //H11 LD=D2%256; //H12

  1. خطای فعلی برابر است با مقدار مطلوب منهای دمای اندازه گیری شده.
  2. مقدار خطای فعلی در ضریب تناسبی Kp ضرب می شود و جمله اول معادله یعنی قسمت تناسبی را ایجاد می کند.
  3. مقدار خطای فعلی در ضریب انتگرالی Ki ضرب می شود و با مقدار خطای قبلی جمع می شود و جمله دوم معادله یعنی قسمت انتگرالی را ایجاد می کند. (همانطور که می دانید انتگرال حاصل جمع می باشد)
  4. مقدار خطای فعلی از خطای قبلی کم می شود و در ضریب مشتق گیر Kd ضرب می شود و جمله سوم معادله یعنی قسمت مشتق گیر را ایجاد می کند.
  5. حاصل جمع سه قسمت در عدد 100 ضرب شده و در متغییر D قرار می گیرد.
  6. شرطی جهت جلوگیری از کوچکتر شدن D
  7. شرطی جهت جلوگیری از بزرگتر شدن D از 1020 (ماکزیمم OCR0 تایمر)
  8. برای مرحله بعدی خطای فعلی انتگرالی در درون متغییر خطای قبلی انتگرالی قرار می گیرد.
  9. برای مرحله بعدی خطای فعلی مشتق گیر در درون متغییر خطای قبلی مشتق گیر قرار می گیرد.
  10. کپی مقدار D
  11. عدد درون D2 یک عدد در حوزه شانزده بیتی می باشد که با یک عمل ضرب و تقسیم ساده به اجزای  هشت بیتی سبک و سنگین تجزیه می کنیم

 بعد از اجرای دستورات مرحله 10 و 11 ORC1BL و ORC1BH که حاصل نتیجه عملیات PID می باشد بارگذاری شده و موج PWM کنترل شده را ایجاد و به استفاده از یک تقویت ترانزیستوری به هیتر اعمال می شود و بنابراین دمای هیتر همواره روی مقدار SP باقی خواهد ماند.

اصول کار مدار: بعد اجرای شبیه سازی سیستم شروع کار میکند تا دمای هیتر را به دمای SP برساند. برای تغییر دادن SP می توانید کلید فشاری را کلیک کرده تا یک وقفه رخ دهد و برنامه وارد روتین اسکن کیبورد شود در اینجا شما می توانید SP را از 0 تا 99 وارد کنید جهت تصحیح کلید * را فشار دهید و برای ثبت نهایی SP کلید # را فشار دهید.

این پروژه همراه با توضیحات آن تنها در وب سایت www.picpars.com به صورت متن باز ارئه شده و کپی برداری از آن تنها با ذکر منبع امکان پذیر می باشد.

با تشکر فراوان سید محسن قاسمیان

ورژن نرم افزار ها: CodeVisionAVR V2.04.4a  و Proteus 7.7 sp2 Professional

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.




فایل های ضمیمه ( ورود - عضويت )

فایل شماره 108 | حجم 76 کیلوبایت | دانلود 1569 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  دانلود پروژه کنترل دمای هیتر با استفاده از کنترل کننده PID با میکروکنترلر AVR

منبع www.picpars.com  پسورد: www.picpars.com


لینک ثابت این صفحه:   


© کپی برداری از مطالب این سایت تنها با ذکر منبع مجاز می باشد

در صورت داشتن هر گونه سوال، نظر و پیشنهاد راجب این مطلب می‌توانید در قسمت نظرات همین صفحه مطرح نمائید. همچنین با شرکت در نظر سنجی های سایت، ما را در بهبود بخشیدن به مطالب یاری کنید.


پی-آیسی-پارس برنامه-نویسی-میکروکنترلرها میکرو میکروکنترلر میکروکنترولر برنامه زبان بیسیک سی فایل دانلود رایگان کنترل کنترلر پی ای دی کنترلpid کنترلرpid هوشمند تناسبی انتگرالی مشتق گیر خطا انالوگ دیجیتال مدولاسیون micro microcontroler avr pic C 8051 pdf Proteus schematic source bascom Download electronic free picpars picpars.com pid PID controlerPID conrol pid pwm adc Proportional Integral Derivative

ارسال شده در مورخه : يكشنبه، 10 بهمن ماه، 1389 توسط مدیریت بازدید [10046]   پرینت

مرتبط باموضوع :

 پروژه RFID - آر اف آی دی - 100 درصد عملی - پروژه ساخت  [ دوشنبه، 5 مهر ماه، 1389 ] 191068 مشاهده
 دانلود پروژه کامل چراغ راهنمایی (trafic _ light) تحت کدویژن  [ چهارشنبه، 3 شهريور ماه، 1389 ] 11609 مشاهده
 پروژه کنترل از راه دور 5 کاناله مادون قرمز به زبان سی  [ شنبه، 9 ارديبهشت ماه، 1391 ] 697 مشاهده
 دانلود پروژه کامل ماشین حساب مهندسی با AVR با (Codevision)  [ پنجشنبه، 4 شهريور ماه، 1389 ] 8193 مشاهده
نام شما:
ایمیل شما:

در مورخه : دوشنبه، 28 شهريور ماه، 1390 (IP آدرس : )

سلام

با تشکر از برنامه بسیار جالبتون

من فقط با زبان بیسیک اشنایی دارم .لطفا برنامه رو به زبان بیسیک هم قرار بدید

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : پنجشنبه، 31 شهريور ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) (IP آدرس : )

سلام به دوستان عزیزم این برنامه عین بقیه مطالبتون عالیه فقط زحمت بکشید برای ماها که فقط بیسیک مسلطیم .برنامه رو به زبان بیسیک برامون بزارید

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : پنجشنبه، 31 شهريور ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) (IP آدرس : )

سلام به دوستان عزیز.

من این برنامه رو با بیسیک پیاده کردم البته بدون کیپدوالبته فعلا.یعنی دمارو تو برنامه یه عدد ثابت قرار میدم بعد از کامپایل واجرا به عنوان ست پوینت دما به سمت اون میره.مشکل اینجاس که تو دماهای کم  5 درجه و تا دمای 100 درجه  که به ست پوینت میدم 20 درجه اختلاف دما دارم.لطفا راهنماییم کنید(ایشا... بتونم کاملش کنم وتو سایت قرار بدم).شما pwm خروجی رو برابر با چی قرار دادید.من برابر با D قرار دادم.شما چطور  هم hd ,ld رو به pwm دادید.من از ocr2 واز پایه portd.7 استفاده می کنم

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : جمعه، 1 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) (IP آدرس : )

واقعا یه نفر تو این سایت نیست جواب ادم رو بده؟

 

جوابیه ها

نام شما:
ایمیل شما:

در مورخه : شنبه، 2 مهر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

سلام دوست عزیز اینجا همه فقط استفاده می کنن واقعا کسی کمک نمکنه و همین باعث دلسری من شده که سایت دیر به دیر آپدیت میشه.

نکته اول: دمای پیش فرض هیتر روی 25 درجه هست و وقتی شما ست پوینت رو به 5 کاهش میدهید پس باید در propertic هیتر در قسمت Ambient Temperature دمای محیط رو روی صفر درجه بزارید.

نکته دوم: ضرایب اولیه PID در برنامه برای دمای مطلوب 68 تنظیم شده مطمئنا برای دما های دیگر باید این ظرایب کمی تغییر کنند. باید توجه داشته باشیم که این ضرایب به صورت تجربی یعنی با آزمون و خطا بدست آمده اند و قانونا شما باید از طریق محاسبات علمی این ضرایب را بدست آورید تا سیستم با دقت خیلی بالاتری کار کند.

اما در مورد HD , LD در اینجا من کار خاصی نکردم فقط محتوای متغییر D که 16 بیتی هستش رو به دو متغییر 8 بیتی سبک و سنگین تجزیه کردم و دادم به PWM این خاصیت زبان C هست و توی بیسک نیازی به این کار نیست چون خود کامپایلر این کار رو براتون انجام میده.

 

امیدوارم توضیحات کامل باشه

با تشکر

 

ارسال جوابیه ]

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : شنبه، 2 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) (IP آدرس : )

سلام واقعا ممنون که بالاخره جواب دادید.توضیحاتتون مطمءنا کامله ولی چون من زبان C کار نکردم منظور شمارو خوب درک نکردم.برنامه ای که من با بیسیک نوشتم البته بدون کیپد اینه لطفا راهنماییم کنید مشکل من از کجاست که دما 4 الی 6 درجه بیشتر از میزان SETPOINT میرسه؟بازم متشکرم.

'------------------------------  #include <mega32.h> ---------------------------
$regfile = "m32def.dat"
'$crystal = 11059200
$crystal = 4000000
$baud = 9600
'--------------------------- #include <lcd.h> ----------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
Db7 = Portb.7 , Rs = Portb.0 , E = Portb.2
'----------------------------  #include <keypad.h> -----------------------------
'Config Kbd = Portb

' char buffer[64];
 'float SP=50,temp,error,last_error,last_iterm,kp=.025,ki=.0000075,kd=1;
' float pterm,iterm,dterm,D;
'unsigned int  D2,LD,HD;

Dim Setpoint As Byte , Temp As Single , Error As Single , Last_error As Single
Dim Last_iterm As Single , Kp As Single , Ki As Single , Kd As Single
Dim Pterm As Single , Iterm As Single , Dterm As Single , D As Single
Dim D2 As Word , Lowd As Word , Highd As Word , A As Word , B As Single , C As Word , E As Word
Setpoint = 80
Kp = 0.020                                                  '0.025
Ki = 0.0000075
Kd = 1
C = 0
E = 0
'--------   interrupt [EXT_INT0] void ext_int0_isr(void)      ------------------
'Config Single = Scientific , Digits = 7
Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 64

'-----------   interrupt [ADC_INT] void adc_isr(void)---------------------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
' Config Adc = Single , Prescaler = Auto , Reference = Internal
 Start Adc
Enable Interrupts

'-------------------------------------------------------------------------------



Do

'----------------------------    get tempreture   ------------------------------
A = Getadc(0)
B = A / 200
Temp = B * 100
'---------------------------  while(1) -----------------------------------------

            Error = Setpoint - Temp
            Pterm = Kp * Error
            Iterm = Ki * Error
            Iterm = Iterm + Last_iterm
            Dterm = Error - Last_error
            Dterm = Dterm * Kd
            D = Pterm + Iterm
            D = D + Dterm
            D = D * 100
            If D < 1 Then
            D = 1
            End If
            If D > 1020 Then
            D = 1020
            End If
            Last_iterm = Iterm
            Last_error = Error
            D2 = D
            Highd = D2 / 256                                'change to int val [xx xx]
            Lowd = D2 Mod 256

'-----------------   sprintf(temp,SP,pterm,iterm,dterm)   ----------------------
'Ocr2 = D
C = C + 1
E = C Mod 2
If E = 0 Then
Ocr2 = Highd                                                'D
Else
Ocr2 = Lowd                                                 ' - Highd
End If
'-------------------------------------------------------------------------------
                                                    'Lowd - Highd'D2
Locate 1 , 1 : Lcd Temp
'Locate 1 , 1 : Lcd D
Locate 2 , 1 : Lcd "KP= " : Lcd Pterm
Locate 3 , 1 : Lcd "KI= " : Lcd Iterm
Locate 4 , 1 : Lcd "KD= " : Lcd Dterm


 Loop
 End
ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : يكشنبه، 3 مهر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

دوست عزیز شما ست پوینت رو روی 68 بزارید و بعد اجرا کنید. ببینید چقدر اختلاف دارید؟

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : يكشنبه، 3 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

اختلاف دما میرسه به 5.5

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : يكشنبه، 3 مهر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

دوست عزیز من بیسیک زیاد کار نکردم و خیلی اش یادم رفته ولی فکر کنم باید Ocr2 رو برابر با D قرار بدهید. در ضمن Kp = 0.020 قرار دادید که توی برنامه سی مقدرا اون 0.025 هستش که این خودش تقزیبا 0.5 درجه اختلاف درست میکنه.

در ضمن شما می تونید با بالابردن kp به صورت تدریجی به مقدار مطلوب نزدیک بشید

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : يكشنبه، 3 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

سلام.متشکر که جواب دادید.

با kp=.025  اختلاف دما 5 درجه هست.ولی با kp=.020  اختلاف دما 4 درجه هست.

با ocr2=d  اختلاف دما 11 درجه هست.

البته وقتی اون قسمت اخر برنامه رو به صورت زیر تغییر دادم تو هر دمای ست پوینتی دقیق عمل کرد .اما علمی نیست


E = Highd + Lowd
E = E / 4
Ocr2 = E

دارم روش کار می کنم اگه ایشال... به نتیجه رسیدم  براتون میفرستم.همینکه راهنمایی می کنید موجب دلگرمی من میشه.اگه چیز دیگه ای هم به نظرتون تو برنامه اشتباهه ممنون میشم بگید تا بررسی کنم

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : يكشنبه، 3 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

ازتون ممنونم.
چندتا سوال برام پیش اومده  ما تو کنترلر pid  طبق شکلی که براتون قرار میدم
Pterm = Kp * Error  که به نظر درسته چون تو شکل هم  p=kp*e
و همچنین در مورد Iterm = (Error + Last_iterm)*ki که طبق شکل ki ضرب در انتگرال خطا(که همان مجموع خطاهاست)

اما در مورد Dterm = Error - Last_error*kd   متوجه نمیشم که چرا این رابطه رو نوشتین.مگه طبق شکل
مقدار ترم دی برابر با مشتق خطا نسبت به زمان که در اخر ضربدر kd شده نیست؟ پس چرا شما نوشتید
Dterm = Error - Last_error*kd  رابطه بین این دورو من متوجه نمیشم.ممنون میشم راهنماییم کنید.راستی چه شکلی باید عکس رو براتون اپلود کنم؟بازم ممنون

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : دوشنبه، 4 مهر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

سلام دوست عزیز برنامه تون رو چک کردم یه سری اشکال داشت:

فرکانس برنامه 4مگا هستش و فرکانس کاری تایمر باید 15.625 کیلوهرتز باشه بنابراین Prescale=256 باید باشه.

شما از تایمر2 استفاده کردید در صورتی که باید از تایمر1 استفاده کنید (16بیتی)

همچنین PWM بابد 10 بیتی انتخاب شود

مشخصات زبان C برای پیکره بندی تایمر:

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 15.625 kHz
// Mode: Fast PWM top=0x03FF
// OC1A output: Inverted
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off

پیکره بندی به زبان بیسیک:

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 256

و اگر اشتباه نکم باید Compare1a = Highd
Compare1b = Lowd

من پیکره بندی به زبان بیسک براتون انجام دادم چک ببین جواب میده.

برای ارسال فایل می توانید به ایمیل سایت picpars [at] gmail [dot] com بفرستید.

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : دوشنبه، 4 مهر ماه، 1390http://www.picpars.com (IP آدرس : )

مثل همیشه خیلی خیلی ممنونم.بعد از تست کردن نتیجه رو اعلام می کنم

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : چهارشنبه، 6 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

دستت درد نکنه .از همون دستوری که بالا گفتید استفاده کردم.بالاخره درست شدsmiley

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : پنجشنبه، 7 مهر ماه، 1390توسط
(مشخصات کاربر raminrayat | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )

سلام .بالاخر تونستم.با توضیحی که شما دادید جواب بگیرم.اما من با یه مشکل دیگه مواجه شد

اونم اینه که من از تایمر 1 واسه خوندن دما از سنسور smt160 که خروجی pwm داره استفاده کردم.حالا به نظر شما میشه از تایمر1 هم برای خوندن دما وهم برای ایجاد pwm  استفاده کرد؟

Config Timer1 = Timer , Prescale = 1
Enable Timer1

 

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 256

ارسال جوابیه ]

نام شما:
ایمیل شما:

در مورخه : دوشنبه، 11 مهر ماه، 1390http://www.picpars.com (IP آدرس : )

از برنامه های جالب شما سپاسگزارم

ارسال جوابیه ]

 
نام شما: [ کاربر جدید ]

نام شما (ضروری): 
ایمیل شما : 
نظر:
کد امنیتی
کد امنیتی

  [ بازگشت ]
  • امتیاز بدهید
  • انتخاب ها
  • اشترک گذاری
آیا این مطالب مورد رضایت شما واقع گردید؟ لطفا با رای دادن به این مطلب ما را در بهبود بخشیدن به مطالب کمک کنید. با اینکار به سایر دوستان‌تان نیز کمک خواهید کرد.


 فایل پی دی اف فایل پی دی اف

 گرفتن پرينت از اين مطلب گرفتن پرينت از اين مطلب

 ارسال به دوستان ارسال به دوستان

 گزارش این پست به مدیر سایت گزارش این پست به مدیر سایت

پروژه های آماده
پروژه کنترل سروو موتور از 0 تا 180 درجه

کنترل زاویه ای 0 تا 180 درجه؛ قابلیت تعریف بیش 100 برنامه مجزا توسط کاربر؛ تعیین زاویه برای هر پله حرکت سروو موتور؛ تعیین سرعت حرکت سروو موتور؛ تعیین مدت زمان کارکرد در هر برنامه از 1 تا 255 دقیقه. منوی کاربری بسیار آسان برای تعریف برنامه ها. جزئیات...


عناوین مطالب
عناوین مطالب را در موضوعات مربوطه جستجو کنید!
یک موضوع انتخاب کنید:



لینک باکس مهم‌ترین‌ ها
  • پروژه‌ها
  • برترین‌ها
  • پر بازدید
  • بیشترین نظرات
cash10-H7

سالنامه فارسی
ش ی د س چ پ ج
  12345
6789101112
13141516171819
20212223242526
2728293031

دوشنبه

1

1 خرداد ماه، 1391
21/05/2012


رویداد ها:
روز بزرگداشت ملاصدرا - روز بهره وری و بهینه سازی مصرف

جستجو در تقویم ...
cash40-D1

آمار کاربران

نظرسنجی
نظر شما در مورد کیفیت سایت چیست؟

خیلی عالیه
میتونه بهتر باشه
جای کار داره
خوب نیست
نظری ندارم!



شما میتوانید در این مورد نظر مکتوب خود را بنویسید: مشاهد نتایج و ثبت نظر

نظرسنجی ها

تعداد آراء: 679    نظرات: 42

تبادل لینک
PicPars با تمامی وب سایتها و وبلاگها تبادل لینک میکند. ابتدا لینک ما در وب خود ثبت کنید و سپس لینک خود را از اینجا برای ما ارسال کنید. در اولین فرصت لینک شما در سایت ثبت می شود.

پیشنهاد ما

سفارش طراحی پروژه
مرورگر پیشنهادی ما
نرم افزار دانلود فایلها
برنامه فشرده سازی







امتیاز به سایت
امتیاز به این صفحه
با یک امتیاز مثبت از طریق Gmail تان از سایت حمایت کنید