اطلاعیه

Collapse
No announcement yet.

نوسان در وصل شدن رله ؟

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

    نوسان در وصل شدن رله ؟

    سلام و سال نو همه دوستان مبارک
    یک برنامه ای با میکرو و ADC آن نوشتم که میخوام وقتی vB1 کمتر از 3.20 ولت شد رله روشن و اگر بیشتر از 3.20 بود یک ال ای دی سبز روشن شود الان برنامه جوواب میده اما مشکل اینجاست که وقتی VB1 به 3.20 و کمی بالاتر و یا پایین تر آن قرار دارد رله مرتب قطع و وصل میشه ، برای رفع این مشکل چکار کنم ؟
      #include <mega8.h>
    #include <delay.h>
    #define ADC_VREF_TYPE 0x00

    float vB1=0;

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

    void read_voltage()
    {
    vB1=read_adc(3);
    vB1=(vB1*5)/1024;
    }

    void main(void)
    {
    PORTD.0=0; //Relay off
    DDRB.1=1;
    DDRD.0=1;
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x81;


    while (1)
    {
    read_voltage();

    if(vB1<=3.20)
    {

    PORTD.0=1; //Relay on
    }


    if(vB1>3.22 && vB1<=3.70)
    {
    PORTB.1=1; //green led on
    delay_ms(250);
    PORTB.1=0; //green led off
    delay_ms(250);
    }


    else
    {
    PORTB.1=0; // Green led
    PORTD.0=0; //Relay off
    }
    }
    }

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

    #2
    پاسخ : نوسان در وصل شدن رله ؟

    نوشته اصلی توسط fmicro نمایش پست ها
    سلام و سال نو همه دوستان مبارک
    یک برنامه ای با میکرو و ADC آن نوشتم که میخوام وقتی vB1 کمتر از 3.20 ولت شد رله روشن و اگر بیشتر از 3.20 بود یک ال ای دی سبز روشن شود الان برنامه جوواب میده اما مشکل اینجاست که وقتی VB1 به 3.20 و کمی بالاتر و یا پایین تر آن قرار دارد رله مرتب قطع و وصل میشه ، برای رفع این مشکل چکار کنم ؟
      #include <mega8.h>
    #include <delay.h>
    #define ADC_VREF_TYPE 0x00

    float vB1=0;

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

    void read_voltage()
    {
    vB1=read_adc(3);
    vB1=(vB1*5)/1024;
    }

    void main(void)
    {
    PORTD.0=0; //Relay off
    DDRB.1=1;
    DDRD.0=1;
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x81;


    while (1)
    {
    read_voltage();

    if(vB1<=3.20)
    {

    PORTD.0=1; //Relay on
    }


    if(vB1>3.22 && vB1<=3.70)
    {
    PORTB.1=1; //green led on
    delay_ms(250);
    PORTB.1=0; //green led off
    delay_ms(250);
    }


    else
    {
    PORTB.1=0; // Green led
    PORTD.0=0; //Relay off
    }
    }
    }

    سلام
    شرط روشن و خاموش شدن رو دو مقدار متفاوت بذارید. مثلا با ۳.۱ خاموش بشه و با ۳.۳ روشن.

    دیدگاه


      #3
      پاسخ : نوسان در وصل شدن رله ؟

      نوشته اصلی توسط hossein.m98 نمایش پست ها
      سلام
      شرط روشن و خاموش شدن رو دو مقدار متفاوت بذارید. مثلا با ۳.۱ خاموش بشه و با ۳.۳ روشن.
      [FONT=&amp]#include <mega8.h>
      #include <delay.h>
      #define ADC_VREF_TYPE 0x00

      float vB1=0;

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

      void read_voltage()
      {
      vB1=read_adc(3);
      vB1=(vB1*5)/1024;
      }

      void main(void)
      {
      PORTD.0=0; //Relay off
      DDRB.1=1;
      DDRD.0=1;
      ADMUX=ADC_VREF_TYPE & 0xff;
      ADCSRA=0x81;


      while (1)
      {
      read_voltage();

      if(vB1<=3.2)
      {

      PORTD.0=1; //Relay on
      }


      if(vB1>3.3 && vB1<=3.70)
      {
      PORTB.1=1; //green led on
      delay_ms(250);
      PORTB.1=0; //green led off
      delay_ms(250);
      }


      else
      {
      PORTB.1=0; // Green led
      PORTD.0=0; //Relay off
      }
      }
      }


      [/FONT]


      تغییر دادم مشکل حل نشد !
      خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

      دیدگاه


        #4
        پاسخ : نوسان در وصل شدن رله ؟

        درود
        مشکل شما بنظرسخت افزاری است (نه نرم افزاری) لطفا مدار تحریک رله را اینجا بگذارید ببینیم مشکل از کجاست فیلد رله چند ولتی است ؟؟ بنظرم باید آنرا با یک ترانزیستور درایو کنید همچنین منبع تغذیه مدار باید مناسب باشد یعنی بتواند جریان راه اندازی رله را تامین کند. دو سر فیلد رله را یک دیود موازی کنید (دیود هرز گرد) به هر حال تا مدار را نبینیم نمیتوان نظر قطعی داد.

        دیدگاه


          #5
          پاسخ : نوسان در وصل شدن رله ؟

          روی 3.2 ولت نوسان هست و هی فرمان به رله داده میشه

          دیدگاه


            #6
            پاسخ : نوسان در وصل شدن رله ؟

            نوشته اصلی توسط fmicro نمایش پست ها
            [FONT=&amp]#include <mega8.h>
            #include <delay.h>
            #define ADC_VREF_TYPE 0x00

            float vB1=0;

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

            void read_voltage()
            {
            vB1=read_adc(3);
            vB1=(vB1*5)/1024;
            }

            void main(void)
            {
            PORTD.0=0; //Relay off
            DDRB.1=1;
            DDRD.0=1;
            ADMUX=ADC_VREF_TYPE & 0xff;
            ADCSRA=0x81;


            while (1)
            {
            read_voltage();

            if(vB1<=3.2)
            {

            PORTD.0=1; //Relay on
            }


            if(vB1>3.3 && vB1<=3.70)
            {
            PORTB.1=1; //green led on
            delay_ms(250);
            PORTB.1=0; //green led off
            delay_ms(250);
            }


            else
            {
            PORTB.1=0; // Green led
            PORTD.0=0; //Relay off
            }
            }
            }


            [/FONT]


            تغییر دادم مشکل حل نشد !
            فکر کنم این کد هم مشکل داره

            دیدگاه


              #7
              پاسخ : نوسان در وصل شدن رله ؟

              نوشته اصلی توسط hossein.m98 نمایش پست ها
              فکر کنم این کد هم مشکل داره
              مدار تحریک رله بسیار ساده با یک ترانزیستور 547 است :


              دلیل: ادغام دو پست برای جلوگیری از اسپم

              نوشته اصلی توسط hossein.m98 نمایش پست ها
              فکر کنم این کد هم مشکل داره
              مهندس چه مشکلی ؟! الان نزدیکی مرز 3.2 رله مرتب قطع و وصل میشه و وقتی VB1 کامل بزرگتر از 3.3 شد رله پایدار میشه وروشن میمونه .
              خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

              دیدگاه


                #8
                پاسخ : نوسان در وصل شدن رله ؟

                نوشته اصلی توسط fmicro نمایش پست ها
                مدار تحریک رله بسیار ساده با یک ترانزیستور 547 است :


                دلیل: ادغام دو پست برای جلوگیری از اسپم



                مهندس چه مشکلی ؟! الان نزدیکی مرز 3.2 رله مرتب قطع و وصل میشه و وقتی VB1 کامل بزرگتر از 3.3 شد رله پایدار میشه وروشن میمونه .
                نه رفیق کد رو باید جوری بنویسی که با مقادیر بیشتر از ۳.۳ روشن بشه و با مقادیر کمتر از ۳.۲ خاموش بشه. بین این دوتا مقدار هم وضعیت قبلیشو حفظ کنه. معلومه وقتی یه سیگنال آنالوگ رو ملاک قرار بدی و معیار مقایسه یک نقطه باشه، با کوچکترین نوسانی روی سیگنال آنالوگ، منطق برنامه هم نوسانی بشه.

                دیدگاه


                  #9
                  پاسخ : نوسان در وصل شدن رله ؟

                  نوشته اصلی توسط hossein.m98 نمایش پست ها
                  نه رفیق کد رو باید جوری بنویسی که با مقادیر بیشتر از ۳.۳ روشن بشه و با مقادیر کمتر از ۳.۲ خاموش بشه. بین این دوتا مقدار هم وضعیت قبلیشو حفظ کنه. معلومه وقتی یه سیگنال آنالوگ رو ملاک قرار بدی و معیار مقایسه یک نقطه باشه، با کوچکترین نوسانی روی سیگنال آنالوگ، منطق برنامه هم نوسانی بشه.
                  خب مهندس جان چطوری کد رو تغییر بدم ؟
                  خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

                  دیدگاه


                    #10
                    پاسخ : نوسان در وصل شدن رله ؟

                    نوشته اصلی توسط fmicro نمایش پست ها
                    خب مهندس جان چطوری کد رو تغییر بدم ؟
                    برای رله، این باید جواب بده:

                    #include <mega8.h>
                    #include <delay.h>


                    #define ADC_VREF_TYPE 0x00


                    float vB1 = 0;


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


                    void read_voltage()
                    {
                    vB1 = read_adc(3);
                    vB1 = (vB1 * 5) / 1024;
                    }


                    void main(void)
                    {
                    PORTD.0 = 0; // Relay off
                    DDRB.1 = 1;
                    DDRD.0 = 1;
                    ADMUX = ADC_VREF_TYPE & 0xff;
                    ADCSRA = 0x81;


                    while (1)
                    {
                    read_voltage();


                    if (vB1 < 3.2)
                    {
                    PORTD.0 = 1; // Relay on
                    }
                    else if (vB1 > 3.3)
                    {
                    PORTD.0 = 0; // Relay off
                    }
                    }
                    }

                    دیدگاه


                      #11
                      پاسخ : نوسان در وصل شدن رله ؟

                      درود
                      جریان منبع تغذیه مدار چقدر است ؟ آیا قادر به تامین جریان فیلد رله است یا خیر ؟

                      دیدگاه


                        #12
                        پاسخ : نوسان در وصل شدن رله ؟

                        نوشته اصلی توسط hossein.m98 نمایش پست ها
                        برای رله، این باید جواب بده:

                        #include <mega8.h>
                        #include <delay.h>


                        #define ADC_VREF_TYPE 0x00


                        float vB1 = 0;


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


                        void read_voltage()
                        {
                        vB1 = read_adc(3);
                        vB1 = (vB1 * 5) / 1024;
                        }


                        void main(void)
                        {
                        PORTD.0 = 0; // Relay off
                        DDRB.1 = 1;
                        DDRD.0 = 1;
                        ADMUX = ADC_VREF_TYPE & 0xff;
                        ADCSRA = 0x81;


                        while (1)
                        {
                        read_voltage();


                        if (vB1 < 3.2)
                        {
                        PORTD.0 = 1; // Relay on
                        }
                        else if (vB1 > 3.3)
                        {
                        PORTD.0 = 0; // Relay off
                        }
                        }
                        }

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

                        دیدگاه


                          #13
                          پاسخ : نوسان در وصل شدن رله ؟

                          نوشته اصلی توسط fmicro نمایش پست ها
                          خب مهندس جان چطوری کد رو تغییر بدم ؟
                          با سلام*به شما و تبریک سال نو به همه دوستان ...
                          مشکلات کاهش،ولتاژ و نوسان در راه اندازی ی رله را هم اینجانب داشتم ..و وقتی که رله را با ت آن ترانزیستور
                          دارلینگتون راه اندازی کردم مشکل بر طرف شد ...میتوانی دوعدد ترانزیستور BC547 را بصورت دارلینگتون
                          متصل کنید ....

                          دیدگاه


                            #14
                            پاسخ : نوسان در وصل شدن رله ؟

                            نوشته اصلی توسط فرزاد الکترونیک نمایش پست ها
                            با سلام*به شما و تبریک سال نو به همه دوستان ...
                            مشکلات کاهش،ولتاژ و نوسان در راه اندازی ی رله را هم اینجانب داشتم ..و وقتی که رله را با ت آن ترانزیستور
                            دارلینگتون راه اندازی کردم مشکل بر طرف شد ...میتوانی دوعدد ترانزیستور BC547 را بصورت دارلینگتون
                            متصل کنید ....
                            چطوری دارلینگتون نوسان رله را از بین میبره لطفا توضیح بفرمایید ممنون
                            خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

                            دیدگاه


                              #15
                              پاسخ : نوسان در وصل شدن رله ؟

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

                              دیدگاه

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