اطلاعیه

Collapse
No announcement yet.

کمک در اندازه گیری ولتاژ ac

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

    کمک در اندازه گیری ولتاژ ac

    با سلام و عرض خسته نباشید : اساتید محترم لطفا راهنمایی بفرمایید
    چندین روزه هر جور مدار sample برای تبدیل AC به DC برای محافط ردیف بسته ام، در همه ولتاژ ها درست عمل می کنه ،همچنین
    وقتی توی رنج 180 و 240 ولت منبع تغذیه AC را تنظیم می کنم (رنج کاری محافظ ) باز هم درست عمل می کنه ،
    ولی اگر در ولتاژ 180 و 240 نیم ولت یا 0.8 ولت به منبع تغذیه AC اضافه کنم دیگه عمل نمی کنه و گیج میشه ! مثلا ولتاژ را به 335.8V که تغییر بدم دیگه عمل نمی کنه! و پورت مورد نظر را وصل نمی کنه.
    مثل اینکه وقتی در دو ولتاژ مذکور عدد اعشاری میاد وسط دیگه گیج میشه . توی عمل هم از اتو ترانس استفاده می کنم وقتی ولتاژ را کم کم تغییر بدم و بیارم توی رنج 180 و 240 ( جوری که ولتاژ بین 179 و 180 باشه یا اینکه ولتای بین 239 و 240 باشد ) دیگه درست عمل نمی کنه !
    unsigned int read_adc(unsigned char adc_input){
    ADMUX=adc_input|0X00;
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;

    while(1){
    adc_in1=read_adc(0);
    adc_in=adc_in1/2.025;
    op=adc_in;
    ; {


    در ضمن از توابع روند کردن هم استفاده کردم ولی متاسفانه مشکل حل نشد.
    adc_in1=floor(read_adc(0));
    adc_in=floor(adc_in1/2.025);
    منتظر راهنمایی اساتید با تجربه هستم. با تشکر

    #2
    پاسخ : کمک در اندازه گیری ولتاژ ac

    بسم الله الرحمن الرحیم

    دوست عزیز فقط صرفا یادآوری چند نکته که ممکن است به شخص جنابعالی کمک کند:
    [list type=decimal]
    [li]مقدار ورودی آنالوگ نباید از 5 ولت عبور کند. از طرفی دیگر ، آیا در منطقه ای که شما می فرمائید که کار نمی کند مقدار دی سی 5 ولت کمتر است؟؟[/li]
    [li]اینکه دقت در قرائت چه مقداری باشد بستگی به شرایط تبدیل دارد. به هر حال روشهایی هست از جمله True RMS که می تواند نرم افزاری یا سخت افزاری باشد[/li]
    [li]کد برنامه را از طریق گزینه مخصوص این کار (یعنی آیکونی به این شکل : # ) به نمایش بگذارید . زیرا اینجوری قابل خواندن نیست.[/li][/list]

    والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

    هوشمندانه بپرسيد...

    دیدگاه


      #3
      پاسخ : پاسخ : کمک در اندازه گیری ولتاژ ac

      نوشته اصلی توسط رضا اصغریان
      بسم الله الرحمن الرحیم

      دوست عزیز فقط صرفا یادآوری چند نکته که ممکن است به شخص جنابعالی کمک کند:
      [list type=decimal]
      [li]مقدار ورودی آنالوگ نباید از 5 ولت عبور کند. از طرفی دیگر ، آیا در منطقه ای که شما می فرمائید که کار نمی کند مقدار دی سی 5 ولت کمتر است؟؟[/li]
      [li]اینکه دقت در قرائت چه مقداری باشد بستگی به شرایط تبدیل دارد. به هر حال روشهایی هست از جمله True RMS که می تواند نرم افزاری یا سخت افزاری باشد[/li]
      [li]کد برنامه را از طریق گزینه مخصوص این کار (یعنی آیکونی به این شکل : # ) به نمایش بگذارید . زیرا اینجوری قابل خواندن نیست.[/li][/list]
      با سلام و عرض خسته نباشید : مهندس عزیز سپاسگزارم از بابت راهنمایی. ج) مقدار دی سی 5 ولت کمتر است؟ بله زیر 5 ولت است ،مثلا توی ولتاژ 2.54 ولت سمپل که اعداد بعد از دو رقم اعشار مرتب بالا و پایین میشه، درست عمل نمی کنه. ب) این روش True RMS که میفرمایید را اگر بزرگواری بکنید توضیح بدین شاید مشکل را حل کردم.
      مشکل مدار را توی این یکی دو ساعت تا حدودی فهمیدم چیه ، مشکل اینه . وقتی خازن C6 را کمتر از 33 میکرو باشه مشکل پست قبل که توضیح دادم پیش میاد.
      از انجایی که چنین ظرفیتی از نوع خازن پلی استر اصلا وجود نداره و الکترولیتی هم جا بزنم طبق گفته دیگر دوستان منفجر میشه، همچنین باز فکر کنم استفاده از چنین طرفیتی معقول نباشه،
      فعلا برای تست توی پرتیوس الکترولیتی 33 میکرو جا زده ام و دقت مدار در حد 0.1 ولت است یعنی اگر 0.1 ولت ولتاژ از محدوده مجاز بگذره رله را قطع می کنه. بنابراین مشکل اصلی اینه که ما یک ولتاژ sample کاملا DC و صاف و ثابت نداریم و مرتب اعداد بعد از دو رقم اعشار بالا و پایین میشه و میکرو نمی تونه اونو قرائت کنه ،حالا اگر بشه این دقت را باز به 0.01 ولت رساند فکر کنم خیلی خوب میشه. این هم کد ها خدمت حضرتعالی. با تشکر فراوان

      کد:
      float adc_in=0,adc_in1=0;

      کد:
      unsigned int read_adc(unsigned char adc_input){
      
        ADMUX=adc_input|0X00;
        ADCSRA|=0x40;
        while ((ADCSRA & 0x10)==0);
        ADCSRA|=0x10;
        return ADCW;
      while(1){
      adc_in1=read_adc(0);
      adc_in=adc_in1/2.025;
      op=adc_in; 
      sa=op/10;  
      sa1=op%10; 
      da=sa/10; 
      da1=sa%10; {
      
      adc_in1=floor(read_adc(0));
       adc_in=floor(adc_in1/2.025);

      دیدگاه


        #4
        پاسخ : کمک در اندازه گیری ولتاژ ac

        به نظرم یک محدوده هیسترزیس برای آستانه پائینی و یکی هم برای حد بالائی ولتاژ در نظر بگیرید و یکی هم اینکه دقت می تونه بالا باشه اما بهتره تغییرات صفحه نمایش، پس از ده درصد تغییر در مقدار کمیت مورد نظر، رخ بده تا پرشهای مکرر، کاربر سیستم را گیج نکند.

        دیدگاه


          #5
          پاسخ : کمک در اندازه گیری ولتاژ ac

          نوشته اصلی توسط مهندس نوآور
          باید بفرمائید ولتاژ سیگنال A.C رو تا چه فرکانسی می خواهید اندازه بگیرید
          با تشکر مهندس عزیز ، نوشته امضای جالبی داری لذت بردم. ولتاژ برق شهر که 50 ولته و توی پرتیوس هم روی 50 تنظیم شده است. همچنین یک delay یک و چند میلی ثانیه برای read_adcin1 گذاشتم ولی تاثیر انچنانی که مشکل را اساسی حل کند متاسفانه نداشت. با تشکر مجدد
          .............................................
          همچنین قبلا که گفتم وقتی ولتاژ را کم کم تغییر بدم و بیارم توی رنج 180 و 240 ( جوری که ولتاژ بین 179 و 180 باشه یا اینکه ولتای بین 239 و 240 باشد ) دیگه درست عمل نمی کنه، روی تصویر پایین خازن C6 را اینجا و با این ظرفیت جا زده بودم.سپاس و درود

          دیدگاه


            #6
            پاسخ : کمک در اندازه گیری ولتاژ ac

            با سلام مجدد : اقای مهندس اصغریان عزیز : این چند روز تایپیک ها را مطالعه کردم در این صفحه بیان کرده اید (یک پست مانده به اخر صفحه )
            http://www.eca.ir/forum2/index.php?topic=90086.15
            یک مدار بسیار بسیار کاربردی و مهم دیگر هست به نام بهره گین واحد ( یک 1) که می توان بافر ولتاژ آنی هم به آن گفت
            که ولتاژ ورودی برابر ولتاژ خروجی است و کاملا ایزوله شده. هر گاه در طراحی هایتان بخواهید دو طبقه ، دو قسمت ، یا دو جز را طوری منفک کنید که بر روی یکدیگر هیچ تاثیر و تداخلی نداشته باشند. این مدارر بسیار بسیار مفید و کارا و راهبردی است.Vout=Vin

            حالا مشکل من هم همینه که :"دو قسمت ، یا دو جز را طوری منفک کنید که بر روی یکدیگر هیچ تاثیر و تداخلی نداشته باشند" وقتی ولتاژ بیاد توی محدوده تفکیک 180 و 179 و یا محدوده 239 و 240 که باید این دو ولتاژ از هم تفکیک بشوند میکرو درست عمل نمی کنه ( دچار مشکلات پست های بالا را که قبلا بیان کردم میشه ).
            حالا استفاده از Op-amp را پیشنهاد می دهید یا اینکه نرم افزاری هم مشکل را حل کرد؟ اگر نرم افزاری بشه اقتصادی تر و راحتره ، فکر کنم توی 90 درصد محافظ ها از Op-amp استفاده نشده . بنابراین باید راهی باشه ،اگر نباشه پس این محافظ ها را چطوری بدون Op-amp درست کرده اند ! با تشکر فراوان منتظرم لطفا منو راهنمایی کنید بد جوری توی این قسمت ولتاژ sample گیر کرده ام

            دیدگاه


              #7
              پاسخ : کمک در اندازه گیری ولتاژ ac

              اگه خیلی هزینه براتون مهم نیست بهترین راه استفاده از آیسی مثل ad736 هست RMS-TO-DC.
              خروجی تقسیم مقاومتی رو بدید به این آیسی
              AYRIC

              دیدگاه


                #8
                پاسخ : کمک در اندازه گیری ولتاژ ac

                نوشته اصلی توسط RezaMahzoonie
                اگه خیلی هزینه براتون مهم نیست بهترین راه استفاده از آیسی مثل ad736 هست RMS-TO-DC.
                خروجی تقسیم مقاومتی رو بدید به این آیسی
                سلام ، مرسی مهندس عزیز ، متاسفانه امروزه هزینه ها حرف اول را میزنه . با تشکر @};-

                دیدگاه


                  #9
                  پاسخ : کمک در اندازه گیری ولتاژ ac

                  بسم الله الرحمن الرحیم
                  نوشته اصلی توسط amiri630
                  ... این چند روز تایپیک ها را مطالعه کردم ...
                  دوست عزیزم خیلی خوشحالم که برای حل مشکلاتتان به مطالعه و بررسی روی می آورید. خیلی از مراجعه کنندگان به ECA و خیلی وبسایت های دیگر در سراسر دنیا بیشتر دنبال ماهی خریدن یا ماهی پیدا کردن هستند ولی هستند فراوان افرادی که همچون جنابعالی به دنبال هنر ماهیگیری (آنهم در همه شرائط از بحرانی و طوفانی گرفته تا آرام و آفتابی) باشند.

                  همانطور که در پست های قبلی هم اشاره کردم من به دلیل گرفتاری های شغلی و زندگی خصوصی کمتر می توانم به این جا سر بزنم. لذا عذرخواهی من در خصوص تاخیر در ارسال را بپذیرید. امیدوارم که تا حالا مشکل شما برطرف شده باشد. اما ...

                  استفاده از اپ امپ در ساختن یک بافر یا ایزوله کننده موضوعی کلی در الکترونیک است و خیلی مخصوص میکروکنترلر ها نیست. اما به عنوان یک نکته خیلی مهم در میکروهای PIC به دلیل ساختار ذاتی آنها ؛ این است که به هیچ عنوان امکان ندارد شما خروجی یک پ - امپ را مستقیما به یک پین ورودی وصل کنید. به علت عدم تطبیق امپدانس وضعیتی عجیب حاصل می شود. دست کم باید یک مقاومت 10 کیلو اهم بین خروجی اپ امپ تا ورودی میکرو قرار دهید. چون من صرفا از PIC استفاده می کنم نمی دانم که آیا این عدم تطبیق امپدانس در دیگر خانواده های میکروها اتفاق می افتد یا خیر.

                  این بحث سخت افزاری بود. اما یک مسئله در اولین پست شما جلب توجه می کند که در یک محدوده کار می کند اما بعد از آن کار نمی کند!!! شما به خاطر اینکه مطمئن شوید در محاسبات ریاضی و داخل کامپایلرتان همه چیز رو به راه است میتوانید یک ولوم ساده را یکسرش به 5 ولت و سر دیگر به زمین و سر وسط را به ورودی آنالوگ بدهید. ببینید و بررسی بفرمائید که با همین برنامه ای که نوشته اید (هیچ چیز را در نرم افزارتان تغییر ندهید) ، آیا نتیجه قرائت شده ، مطلوب است؟؟(من از کامپایلر PICBASIC PRO استفاده می کنم).

                  اگر نتیجه کارتان با ولوم ساده و تغییر بین 0 تا 5 صحیح بود . آنگاه بپردازید به سخت افزار و بقیه ماجرا....
                  اما من حدس میزنم که اگر ولوم و 0 تا 5 ولت بگذارید بازهم به مشکل بر میخورید. تقسیم بر عدد شناور!! شاید ؛ شاید

                  در انتها اینکه خیلی به پروتئوس و نتایج آن استناد نکنید. در عمل خیلی چیزها مثل پروتئوس نیست و بالعکس.

                  موفق باشید.

                  انشالله مشکل کار شما فقط با پیگیری و همت خودتان برطرف خواهد شد .
                  والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

                  هوشمندانه بپرسيد...

                  دیدگاه


                    #10
                    پاسخ : کمک در اندازه گیری ولتاژ ac

                    بسم الله الرحمن الرحیم

                    نوشته اصلی توسط RezaMahzoonie
                    بهترین راه استفاده از آیسی مثل ad736 هست RMS-TO-DC.
                    خروجی تقسیم مقاومتی رو بدید به این آیسی
                    پیشنهاد استفاده از قطعه سخت افزاری برای رسیدن به RMS ، پیشنهاد فوق العاده ای است.

                    همانطور که آقای محزونیه به آن اشاره داشته اند. امکان این که انرژی خروجی از یک قطعه بیشتر از مقدار تغذیه شده به آن باشد وجود ندارد. یعنی اگر شما این چیپ را به طور متقارن مثبت و منفی 16 ولت تغذیه کنید. باید کمتر از 6 ولت پیک تو پیک به این قطعه بدهید.
                    اگر چه رفتن به سمت RMS برای اندازه گیری بسیار دقیق ولتاژ است. که شاید این دقیت خیلی برای کار شما لازم نباشد.
                    والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

                    هوشمندانه بپرسيد...

                    دیدگاه


                      #11
                      پاسخ : پاسخ : کمک در اندازه گیری ولتاژ ac

                      نوشته اصلی توسط رضا اصغریان
                      بسم الله الرحمن الرحیم
                      دوست عزیزم خیلی خوشحالم که برای حل مشکلاتتان به مطالعه و بررسی روی می آورید. خیلی از مراجعه کنندگان به ECA و خیلی وبسایت های دیگر در سراسر دنیا بیشتر دنبال ماهی خریدن یا ماهی پیدا کردن هستند ولی هستند فراوان افرادی که همچون جنابعالی به دنبال هنر ماهیگیری (آنهم در همه شرائط از بحرانی و طوفانی گرفته تا آرام و آفتابی) باشند.

                      همانطور که در پست های قبلی هم اشاره کردم من به دلیل گرفتاری های شغلی و زندگی خصوصی کمتر می توانم به این جا سر بزنم. لذا عذرخواهی من در خصوص تاخیر در ارسال را بپذیرید. امیدوارم که تا حالا مشکل شما برطرف شده باشد. اما ...

                      استفاده از اپ امپ در ساختن یک بافر یا ایزوله کننده موضوعی کلی در الکترونیک است و خیلی مخصوص میکروکنترلر ها نیست. اما به عنوان یک نکته خیلی مهم در میکروهای PIC به دلیل ساختار ذاتی آنها ؛ این است که به هیچ عنوان امکان ندارد شما خروجی یک پ - امپ را مستقیما به یک پین ورودی وصل کنید. به علت عدم تطبیق امپدانس وضعیتی عجیب حاصل می شود. دست کم باید یک مقاومت 10 کیلو اهم بین خروجی اپ امپ تا ورودی میکرو قرار دهید. چون من صرفا از PIC استفاده می کنم نمی دانم که آیا این عدم تطبیق امپدانس در دیگر خانواده های میکروها اتفاق می افتد یا خیر.

                      این بحث سخت افزاری بود. اما یک مسئله در اولین پست شما جلب توجه می کند که در یک محدوده کار می کند اما بعد از آن کار نمی کند!!! شما به خاطر اینکه مطمئن شوید در محاسبات ریاضی و داخل کامپایلرتان همه چیز رو به راه است میتوانید یک ولوم ساده را یکسرش به 5 ولت و سر دیگر به زمین و سر وسط را به ورودی آنالوگ بدهید. ببینید و بررسی بفرمائید که با همین برنامه ای که نوشته اید (هیچ چیز را در نرم افزارتان تغییر ندهید) ، آیا نتیجه قرائت شده ، مطلوب است؟؟(من از کامپایلر PICBASIC PRO استفاده می کنم).

                      اگر نتیجه کارتان با ولوم ساده و تغییر بین 0 تا 5 صحیح بود . آنگاه بپردازید به سخت افزار و بقیه ماجرا....
                      اما من حدس میزنم که اگر ولوم و 0 تا 5 ولت بگذارید بازهم به مشکل بر میخورید. تقسیم بر عدد شناور!! شاید ؛ شاید

                      در انتها اینکه خیلی به پروتئوس و نتایج آن استناد نکنید. در عمل خیلی چیزها مثل پروتئوس نیست و بالعکس.

                      موفق باشید.

                      انشالله مشکل کار شما فقط با پیگیری و همت خودتان برطرف خواهد شد .
                      سلام مهندس عزیز خسته نباشید. ممنونم از توضیحات شما ،ولتاژ 0 تا 5 ولت درسته ، دقیق عمل می کنه و با چرخاندن ولوم به طرف 0 و ماگزیمم 5 ولت میل می کنه .وقتی یک ولتاژ ac را به dc تبدیل می کنیم (برای نمونه گیری ) چون از خازن باظرفیت بالا نمیشه استفاده کرد ،پس ولتاژdc خالص نیست و بعد از اعشار همیشه اعداد شناوری داریم که مدام بالا و پایین میشوند ،بنابراین میکرو نمیتونه درست این عدد شناور را بخونه (در واقع عدد ثابتی نداریم که توسط میکرو قرائت بشه) . در مورد این که فرمودین به پروتئوس و نتایج آن استناد نکنید. در عمل خیلی چیزها مثل پروتئوس نیست و بالعکس، کاملا درسته و به شخصه دیده ام خیلی موارد توی شبیه سازی درسته ولی در عمل و مونتاژ درست نیست. با تشکر از همه دوستان و عزیزانی که مرا را راهنمایی کردند. موفق باشید.سپاس

                      دیدگاه


                        #12
                        پاسخ : پاسخ : کمک در اندازه گیری ولتاژ ac

                        بسم الله الرحمن الرحیم

                        نوشته اصلی توسط amiri630
                        ...چون از خازن باظرفیت بالا نمیشه استفاده کرد ،پس ولتاژdc خالص نیست و بعد از اعشار همیشه اعداد شناوری داریم که مدام بالا و پایین میشوند ،بنابراین میکرو نمیتونه درست این عدد شناور را بخونه
                        بله این فرمایش شما کاملا صحیح است . نوسان یا Fluctuation به شدت وجود دارد. حتی اگر به جای اندازه گیری ولتاژ متناوب شما بخواهید دما را (مثلا خروجی LM35) با دقت بالا (مثلا 10 بیتی ) اندازه گیری کنید همین اتفاق می افتد.

                        پس چه باید کرد:

                        یک راه نرم افزاری این است که شما از ده تا یا بیست تا نمونه معدل بگیرید. همیشه ورودی را با 19 تای قبلی جمع بزنید و بر 20 تقسیم کنید. اینجوری به صورت منطقی خیلی جلو نوسان گرفته می شود. به جای نمایش دادن مقدار اصلی مبدل ، متوسط مقادیر را نمایش دهید.

                        موفق و سربلند باشید/
                        والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

                        هوشمندانه بپرسيد...

                        دیدگاه


                          #13
                          پاسخ : کمک در اندازه گیری ولتاژ ac

                          ممنونم مهندس عزیز :با تشکر فراوان
                          فکر کنم از این راها هم بشه استفاده کرد ولی متاسفانه مبتدی هستم و تجربه ای ندارم.
                          http://henrysbench.capnfatz.com/henrys-bench/acs712-arduino-ac-current-tutorial/
                          مهندس شرمنده وقت کردید یک مثالی از معدل گیری ولتاژ با توجه به کد های زیر بنویس ما هم یاد بگیریم . با تشکرمجدد
                          کد:
                          unsigned int read_adc(unsigned char adc_input)
                            {
                            ADMUX = adc_input|0x00;
                            delay_us(10);
                            ADCSRA|=0x40;
                            while ((ADCSRA & 0x10)==0);
                            ADCSRA|=0x10;
                            return ADCW;
                            }
                          کد:
                          while(1)
                          {  
                             adc_in1=read_adc(0);
                             adc_in=adc_in1/2.025;
                             op=adc_in; 
                             sa=op/10;  
                             sa1=op%10; 
                             da=sa/10; 
                             da1=sa%10;

                          دیدگاه


                            #14
                            پاسخ : کمک در اندازه گیری ولتاژ ac

                            بسم الله الرحمن الرحیم

                            در حد بضاعت اندک خودم این نمونه تقدیم حضورتان می گردد.

                            کد:
                            average=0
                            for i=1 to 20
                            adc_in1=read_adc(0)
                            average=average+adc_in1
                            next i
                            adc_in1=average / 20
                            adc_in=adc_in1/2.025
                            امیدوارم که مفید فایده باشد
                            والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

                            هوشمندانه بپرسيد...

                            دیدگاه


                              #15
                              پاسخ : کمک در اندازه گیری ولتاژ ac

                              نوشته اصلی توسط رضا اصغریان
                              بسم الله الرحمن الرحیم

                              در حد بضاعت اندک خودم این نمونه تقدیم حضورتان می گردد.

                              کد:
                              average=0
                              for i=1 to 20
                              adc_in1=read_adc(0)
                              average=average+adc_in1
                              next i
                              adc_in1=average / 20
                              adc_in=adc_in1/2.025
                              امیدوارم که مفید فایده باشد
                              سلام مهندس خسته نباشید : منبع سعادتی مهندس عزیز؛ مشکل حل شد سپاسگزارم. امیدوارم به خداوند متعال هر ارزویی داری براورده بشه -O< راهنمایی های حضرتعالی برای این حقیر ارزشمند و کارساز بود. باز هم تشکر میکنم. @};- @};- @};-

                              دیدگاه

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