اطلاعیه

Collapse
No announcement yet.

تولید موج سینوسی با AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : تولید موج سینوسی با AVR

    نوشته اصلی توسط زوار
    به نظر شما اول سه تا موج PWM با اختلاف فاز 180 درجه بسازم؟در ضمن مهندس در MC3 مثل اینکه PWM TOP با PWM BOTTOM 180 درجه اختلاف فاز داشت و نات یکدیگر نبودند؟
    به عنوان اولین مرحله، ساخت 3 فاز می تواند شروع خوبی باشد. 180 درجه اختلاف فاز به معنای همان Not بودن دو شکل موج می باشد.

    نوشته اصلی توسط javad1354
    لطفا بفرمائید که من با یک اتمگا 8 و کریستال 8 مگ حداکثر چه فرکانسی میتونم برای موج PWM تولید کنم.
    برای دقت 8 بیت حداکثر فرکانس در مد Fast PWM است که 8000000/256 یا 31.25 کیلوهرتز می باشد. اینکه از PWM سخت افزاری یا نرم افزاری استفاده کنید، بستگی به نوع کاربرد شما دارد که به دلیل عدم اطلاع از آن، اظهار نظر خاصی نمی توانم انجام دهم.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #17
      پاسخ : تولید موج سینوسی با AVR

      با سلام مهندس منظورم از 180 درجه اختلاف فاز نات نیست 180 درجه اختلاف فاز فقط موقعی نات میشه که دیوتی سایکلمون 50%باشه منظورم از 180درجه اینه که شکل موج اول که شروع شد بعد از 180 درجه دومی شروع شود آیا برای اعمال به پل igbt اگر اینجوری باشه میشه یا باید نات باشه؟lمهندس میشه درباره این قسمت برنامتون یه توضیح بدید
      Delay=(ADCH?ADCH:1);
      OCR1A=sine[++index];
      OCR1B=sine[index];
      درضمن اینADCH? یعنی چی؟
      از اون lookup table چرا استفاده کردید؟
      من برای ساختن سه تا پالسم باید از lookup table استفاده کنم ؟اگر در برنامه شما
      OCR1A=sine[0];
      OCR1B=sine[75];
      OCR1c=sine[170];
      بذارم سه تا موجم درست میشه؟شرمنده سوالام زیاده ممنونم از پاسختون

      دیدگاه


        #18
        پاسخ : تولید موج سینوسی با AVR

        توضیحات اولیه شما مقداری مبهم است، اما در هر صورت باید Not سیگنال با لحاظ Dead time به پل اعمال شود.
        میشه درباره این قسمت برنامتون یه توضیح بدید
        Delay=(ADCH?ADCH:1);
        OCR1A=sine[++index];
        OCR1B=sine[index];
        درضمن اینADCH? یعنی چی؟
        برای مساوی قرار دادن Delay با ADCH، وضعیت صفر شدن خروجی ADC مطلوب نیست( با توجه به شکل برنامه). بنابراین یک تصمیم گیری روی مقدار ADCH انجام می شود و اگر غیر صفر بود که Delay با آن برابر قرار داده می شود و در غیر اینصورت با 1 برابر می شود. در زبان C
        z=((a>b)?x:y);

        به این معناست که اگر شرط درست بود(در اینجا a بزرگتر از b باشد) در اینصورت مقدار x و در صورت عدم برقراری شرط، مقدار y به z نسبت داده شود.

        از اون lookup table چرا استفاده کردید؟
        مقادیر سینوسی یکبار محاسبه و برای استفاده در flash ذخیره می شود.

        من برای ساختن سه تا پالسم باید از lookup table استفاده کنم ؟اگر در برنامه شما
        OCR1A=sine[0];
        OCR1B=sine[75];
        OCR1c=sine[170];
        بذارم سه تا موجم درست میشه؟
        در برنامه باید index دو فاز دیگر را باید با 84 و 170 جمع کنید، البته بصورتی که حاصل 8 بیتی بدون علامت باشد( راه حل را می توانم در قالب چند دستور برای شما بنویسم، اما می خواهم خودتان تلاش کنید تا نکات آن برای شما مفید واقع شود).
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #19
          پاسخ : تولید موج سینوسی با AVR

          سلام
          برای تولید یه موج سینوسی با فرکانس متغیر چکار باید کرد؟
          باید مقدار OCR رو برای هر فرکانس جداگانه محاسبه کرد؟

          دیدگاه


            #20
            پاسخ : تولید موج سینوسی با AVR

            با سلام مهندس منظورتون اینه که اینجوری بنویسم
            Delay=(ADCH?ADCH:1);
            OCR1A=sine[index++];
            OCR1B=sine[index+84];
            یک warning داره که میگه index سر ریز شده شکل موجم درست نیست

            دیدگاه


              #21
              پاسخ : تولید موج سینوسی با AVR

              به این صورت بنویسید:

              OCR1B=sine[(unsigned char)(index+84U)];
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #22
                پاسخ : تولید موج سینوسی با AVR

                با سلام مهندس و ممنون از پاسختون میشه یه توضیح در مورد فرکانس کریر بدید که چه طوری این فرکانس را ساختید؟

                دیدگاه


                  #23
                  پاسخ : تولید موج سینوسی با AVR

                  نوشته اصلی توسط lostlord
                  سلام
                  برای تولید یه موج سینوسی با فرکانس متغیر چکار باید کرد؟
                  باید مقدار OCR رو برای هر فرکانس جداگانه محاسبه کرد؟
                  سوال شما را در مراجعه قبلی به این تاپیک مشاهده نکرده بودم. در سورس مذکور هم فرکانس موج متغیر است، اما این تغییر فرکانس از طریق متغیر Delay در برنامه انجام می شود و نه تغییر OCR که یک حاصل آن غیرخطی بودن تغییرات فرکانس نسبت به چرخش ولوم (یا ولتاژ ورودی است). اما در کاربردهای دقیق تر باید از ترکیب تغییرات همزمان Delay و OCR استفاده کرد تا بتوان یک تغییر دقیق تر و خطی تر در فرکانس را بدست آورد.

                  نوشته اصلی توسط زوار
                  با سلام مهندس و ممنون از پاسختون میشه یه توضیح در مورد فرکانس کریر بدید که چه طوری این فرکانس را ساختید؟
                  فرکانس حامل PWM از فرمول موجود در Datasheet قابل محاسبه است:

                  f=fclk_I/O/(2 ⋅N⋅TOP)

                  و N=1 و TOP=255
                  اوژن: به معنای افکننده و شکست دهنده است
                  دانایی، توانایی است-Knowledge is POWER
                  برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                  وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                  قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                  اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                  ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                  دیدگاه


                    #24
                    پاسخ : تولید موج سینوسی با AVR

                    پروژه تولید PWM سینوسی 3 فاز که در این تاپیک مورد سوال بود، در بخش پروژه های تکمیل شده AVR قرار داده شد:

                    http://www.eca.ir/forum2/index.php?topic=47979.0
                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      #25
                      پاسخ : تولید موج سینوسی با AVR

                      با سلام وممنون از وقتی که به این انجمن اختصاص دادید و ما از تجربیات ارزشمند شما استفاده میکنیم میشه در مورد lookup table دوم که برای مقادیر تایمر نوشتید یه توضیح بدید,در ضمن این دستور چه کاری انجام میده؟TCCR1A&=~((1<<COM1A1)|(1<<COM 1B1)|(1<<COM1C1),
                      تایمرها در چه مدی کار میکنند؟ممنون از پاسختون

                      دیدگاه


                        #26
                        پاسخ : تولید موج سینوسی با AVR

                        lookup table دوم شامل مقدار OCR3A است که زمان خواندن جدول اول را تنظیم می کند. TIMER1 در مد Phase correct PWM و 8 بیتی و TIMER3 در مد CTC تنظیم شده اند. دستور مورد اشاره شما خروجی های PWM را غیر فعال می کند و سبب AND شدن رجیستر با 0x57 می شود.
                        اوژن: به معنای افکننده و شکست دهنده است
                        دانایی، توانایی است-Knowledge is POWER
                        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                        دیدگاه


                          #27
                          پاسخ : تولید موج سینوسی با AVR

                          با سلا م مهندس وممنون از پاسختون اتان میشه این شکل موجها را با گیت not به یک پل igbt اعمال کرد؟برای منحنیv/f باید چه کار کرد؟حیشه در مورد این منحنی یه توضیح بدید و بفرمایید برای این چه تغییری باید در شکل موج داد؟

                          دیدگاه


                            #28
                            پاسخ : تولید موج سینوسی با AVR

                            با Not کردن هر فاز و اعمال آن به یک IC درایور مانند IR2130 که Dead Time را به موج اضافه می کند، می توان یک پل سه فاز را راه اندازی کرد. بحث منحنی V/f این است که اگر مثلا ولتاژ DC پل سه فاز از یکسو کردن برق شهر حاصل شده باشد، فرکانس های حدود 50 تا 100 هرتز مشکلی نخواهند داشت. اما زمانی که فرکانس شروع به کاهش می کند، ولتاژ سینوسی هم باید به همان نسبت کاهش پیدا کند. برای این کار باید دامنه سینوسی در یک ضریب کوچکتر از یک ضرب شود تا نسبت V به f ثابت بماند. البته این کار نکات زیادی دارد که از حوصله این تاپیک خارج است، اما به شکل ابتدایی از طریق همین برنامه هم قابل انجام است.
                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


                              #29
                              پاسخ : تولید موج سینوسی با AVR

                              با سلام مهندس من نمیخوام این کار را به صورت ابتدایی انجام دهم ومیخوام این کار را تا ساختن یک اینورتر با کنترل توسط میکرو انجام دهم در اصل میخوام کار mc3phac را با میکرو انجام دهم لطفا اگر براتون مقدوره مرا راهنمایی کنید تا این کار را انجام دهم ممنونم

                              دیدگاه


                                #30
                                پاسخ : تولید موج سینوسی با AVR

                                نوشته اصلی توسط زوار
                                با سلام مهندس من نمیخوام این کار را به صورت ابتدایی انجام دهم ومیخوام این کار را تا ساختن یک اینورتر با کنترل توسط میکرو انجام دهم در اصل میخوام کار mc3phac را با میکرو انجام دهم لطفا اگر براتون مقدوره مرا راهنمایی کنید تا این کار را انجام دهم ممنونم
                                انجام منظور مورد نظر شما مستلزم پایه قوی در برنامه نویسی است که با توجه پست های قبلی شما به نظر می رسد باید خود را از نظر برنامه نویسی تقویت کنید. برای راهنمایی شما هم طبق روال گذشته مشکل خاصی وجود ندارد.
                                اوژن: به معنای افکننده و شکست دهنده است
                                دانایی، توانایی است-Knowledge is POWER
                                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                                دیدگاه

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