اطلاعیه

Collapse
No announcement yet.

کنترل RGB با PIC

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کنترل RGB با PIC

    سلام

    توی pic basic pro برنامه کنترل RGB را نوشتم و از دستور pwm pin , duty , cycle استفاده کردم

    .

    3 تا Led هم به 3 تا از پین های میکرو وصل کردم

    میخوام همزمان نور led ها کم و زیاد بشه اما مثلا اول قرمز کم میشه و بعد میره سراغ آبی

    یعنی تا دستور تمام نشه نمیره خط بعد

    مثلا با دیوتی 50% و cycle 100

    pwm gpio.0 ,127 , 100
    طول میکشه تا این دستور تمام بشه

    Pic من 12f675 هست .

    میشه با دستور HPWM این کار را انجام داده و اگر میشه مثالی بزنین

    ممنون
    خواستن >> توانستن >> موفقیت

    #2
    پاسخ : کنترل RGB با PIC

    سلام
    بله یک راه حل استفاده از pwm سخت افزاری یا همون hardware pwm هست. فرمت فرمان به صورت زیر :

    HPWM channel,relation_on_off,frequency
    در قسمت channel شماره کانال ccp مورد نظر رو رو که معمولا یک یا دو هست رو تائین میکنیم . در قسمت relation_on_off مقدار پهنای پالس رو از یک تا 255 قرار میدیم که برای 50 درصد نصف مقدار کل هست یعنی 127 و باقی مقادیر هم با استفاده از تناسب میشه محاسبه کرد.

    اما در این میکرو به نظر نمیرسه که hpwm رو ساپورت کنه چون پایه های مورد نظر با ccp1/ و ccp2/ مشخص میشن و من تو این میکرو که همچین چیزی ندیدم .ظاهرا میکروهایی که دوتا تایمر یا بیشتر دارن HPWM رو ساپورت میکنن .چ.ن تایمر دوم مسئول مستقیم کنترل HPWM هست. مثلا سری 16F87XA همشون دو تا روی پورت C دارن.








    اضافه شده در تاریخ :
    سلام
    ای کاش کار بردتون رو مطرح میکردین تا مدار مناسبی بشه پیشنهاد کرد . در حال حاضر امکان پذیر ترین راهها استفاده از 3 تا مثلا 12f675 به طور همزمانه که با PWM نرم افزاری کارکنند و یا استفاده از میکروییست که 3 تا hpwm داشته باشه . oo:
    18F452 دقیق3 تا داره دوتا رو پورت C و یکی روی پورتB
    DSPIC30F3010 هم که کلا اینکاره هستند یعنی اصولا در کنترل توان 6 فازه موتورها و رکتیفایرهای قدرت و فوق قدرت عنصر اصلی کنترل هستند .

    موفقیت یک فرایند است نه یک اتفاق...

    ******** استفاده از گزینه تشکر نشانه اهمیت و احترام شما به پیگیری شخص نظر دهنده است ********

    دیدگاه


      #3
      پاسخ : کنترل RGB با PIC

      سلام.
      دوستان اصلا نیازی به میکرو قوی تری ندارید. میتونید از یک همچین کدی ینویسید.

      r as byte
      g as byte
      b as byte
      i as byte
      loop1:

      portb=255
      for i=0 to 255
      if i=r then portb.0=0
      if i=g then portb.1=0
      if i=b then portb.2=0

      goto loop1

      با ست کردن متغیر های r,g,b میتونید رنگهای مختلف رو ایجاد کنید. البته خیلی وقته با pic basic کار نکردم ممکن مشکل دستوری داشته باشه.

      دیدگاه


        #4
        پاسخ : کنترل RGB با PIC

        دوست خوبم دستور pwm pin,duty cycle,frequncy از cpu کمک می گیره چون از ماژول استفاده نمی کنه!
        ماژول ccp ماژولی هستش که هم سیگنال تولید میکنه و هم مقایسه و...! تنها باید تنظیمش کنی و تمومه!برای استفاده از این ماژول دستور hpwm استفاده میشه! البته قبلش باید یه سری تنظیمات رو انجام بدی!این دستور تو میکرو هایی که ماژول دارند کار میکنه!به قول دوستمون معمولا از تایمر 2 استفاده میکنن!
        دستورات رو ببینید:

        DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
        DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
        DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
        DEFINE CCP2_BIT 1 'Hpwm 2 pin bit

        البته این دستورات هم به درد می خورن:

        DEFINE HPWM2_TMR 1 'Hpwm 2 timer select
        DEFINE HPWM3_TMR 1 'Hpwm 3 timer select

        که فکر میکنم تو تایمر 8 بیتی هم جواب بده!من اینو امتحان نکردم ولی به محض امتحان کردنش خبرتون می کنم!

        می تونید از میکرو pic16f887 استفاده کنید!تو سایت میکرو سی هم کامل در موردش گفته!فکر کنم 4 تا خروجی pwm داشته باشه البته 2تا ماژول داره که دوتا خروجی اضافی هم از اینا کمک می گیرند!

        دیدگاه

        لطفا صبر کنید...
        X