اطلاعیه

Collapse
No announcement yet.

گیر کردن رله هنگام متصل شدن برق به مدار

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

    گیر کردن رله هنگام متصل شدن برق به مدار

    با سلام بر مهندسین
    من یک مدار تایمر دارم داخل اش از رله استفاده است : هنگامی برق به مدار وصل میشه: صفحه lcd چند ثانیه روشن می شود و بعد ساعت و... را نشان می دهد و همچنین رله چند ثانیه گیر می کنه و بعد رها میشه !! الان مشکل این جا هست الان رله موقع ایا برق به مدار وصل میشه گیر می کنه و رها نمیشه !!! قبلا اینطوری نبود!!! به نظر شما مشکل از چی هست؟ ایا روی رله نیوز هست که باعث میشه اینطوری بشه؟
    چند کد هم بود که با تغییر شان دادم ولی به نتیجه نرسیدم !!
    کد اصلی:
    کد:
    DDRB.7=0xFF; این کد مرتبط به رله است
    DDRC.0=0xFF; بازر
    PORTD=0XFF; دکمه
    سپاس

    #2
    پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

    الهم کل نویز
    نقشه سخت افزار رو بزار
    گاهی نمی شود که نمی شود
    گاهی قرعه نگفته به نام تو می شود
    گاهی گدای گدایی و چاره چیست
    گاهی تمام شهر گدای تو میشود
    ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

    دیدگاه


      #3
      پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

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

      www.intelart.ir


      ساخت کنترلر دما PID فازی با AVR [آموزشی]

      دیدگاه


        #4
        پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

        ممنون دوستان: نقشه مدار و یکسری از کد های مدار میزارم! لطفا ببنید مدار از نظر طراحی ایا مشکل داره یا کد ها !؟؟
        برای این مدار من با هزار بدبختی pcb طراحی کردم یک مدت خوب کار می کرد ولی الان چند روز هست کلا قاتی کرده !!

        کد مدار:
        کد:
        #include <mega8.h>
        #include <delay.h>
        #include <stdio.h> 
        #include <i2c.h>
        #include <ds1307.h>
        #include <alcd.h> 
        #define b_down   PIND.1
        #define b_up    PIND.2   
        #define b_set   PIND.0
        #define b_set_down PIND.3
        #define relay   PORTB.7 
        #define buzzer   PORTC.0 
        //____________________________________________________________
        void main(){ 
        char lcd_buffer1[16];
        
        unsigned char hr,min,sec,status=0,value=0,roz=0;
        unsigned char week,year,month,day;
        unsigned char en_hr=0,en_min=0,en_sec=0;
        unsigned char st_hr=0,st_min=0,st_sec=0;
        unsigned char en_year=0,en_month=0,en_day=0;
        unsigned char st_year=0,st_month=0,st_day=0;
        unsigned int main_year;
        DDRB.7=0xFF; 
        DDRC.0=0xFF;
        PORTD=0XFF;
        i2c_init();
        lcd_init(16);
        rtc_init(0,0,0);
        
        if(b_set == 0)
        {
          rtc_set_time(0,0,0);
          rtc_set_date(0,8,7,15);
          lcd_putsf("Successfully!");
          while(1)
          {
          }
        }
         
        delay_ms(20);
        rtc_get_time(&en_hr,&en_min,&en_sec); 
        rtc_get_time(&st_hr,&st_min,&st_sec);
        rtc_get_date(&week,&en_day,&en_month,&en_year);
        rtc_get_date(&week,&st_day,&st_month,&st_year);
        delay_ms(20);
            
          while (1){  
            while(status == 0)
            {
              rtc_get_time(&hr,&min,&sec);
              rtc_get_date(&week,&day,&month,&year); 
              main_year = year + 2000;
              
              if(b_up == 0)
              {
                roz++;
                if(roz == 2) roz = 0;
                while(b_up == 0); 
              }  
              
              if(roz == 0)
              {
                if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                {
                  value = 1;
                  relay = 1;
                  buzzer = 1;
                  delay_ms(3000);
                  buzzer = 0;
                } 
        
                if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                {
                  value = 0;
                  relay = 0;
                } 
              }
              else
              {
                if(hr == en_hr & min == en_min & sec == en_sec)
                {
                  value = 1;
                  relay = 1;
                  buzzer = 1;
                  delay_ms(3000);
                  buzzer = 0;
                } 
        
                if(hr == st_hr & min == st_min & sec == st_sec)
                {
                  value = 0;
                  relay = 0;
                } 
              }      
        
              lcd_clear();
        
              sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
              lcd_gotoxy(0,0);    
              lcd_puts(lcd_buffer1);
              sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
              lcd_gotoxy(0,1);    
              lcd_puts(lcd_buffer1); 
                 
              if(value == 0)  
                lcd_putsf("Off");
              else
                lcd_putsf("On"); 
                
              if(roz != 0)  
                lcd_putsf(" R");        
        
              if(b_set == 0)
              {
                status++;
                if(status == 19) status = 0;
                while(b_set == 0); 
              }
              delay_ms(200);
            }  
            
            rtc_get_time(&hr,&min,&sec);
            b:
            while(status == 1)
            {
              if(b_up == 0)
              {  
                hr++;
                if(hr == 25) hr = 0;
                delay_ms(70);
              }  
        
              if(b_down == 0)
              {  
                hr--;
                if(hr == -1) hr = 0;
                delay_ms(70);
              }  
             
              lcd_clear();  
              lcd_gotoxy(0,0);
              sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
              lcd_puts(lcd_buffer1);
              delay_ms(80); 
              lcd_clear();
              sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
              lcd_puts(lcd_buffer1);       
              delay_ms(80);
              if(b_set == 0)
              {
                rtc_set_time(hr,min,sec);
                status++;
                if(status == 19) status = 0;
                while(b_set == 0);  
              }
              if(b_set_down == 0)
              {
                status--;
                if(status == -1) status = 0;
                while(b_set_down == 0); 
                goto b; 
              }  
            }


        سپاس

        دیدگاه


          #5
          پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

          رله رو به همین صورتی که تو شماتیک هست متصل کردید؟؟؟؟؟میکروتون نسوخت؟ oo:
          واسه LED یه مقاومت بین 220 تا 330 اهم بزارید...
          واسه رله باید از دیود هرزگرد استفاده بشه...با ترانزیستور سوئیچش کنید نه اینکه مستقیم به میکرو متصل بشه...خازن با ظفیت بالا رو با تغذیه موازی کنید...
          تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

          www.intelart.ir


          ساخت کنترلر دما PID فازی با AVR [آموزشی]

          دیدگاه


            #6
            پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

            نوشته اصلی توسط Mahdi.Faani
            رله رو به همین صورتی که تو شماتیک هست متصل کردید؟؟؟؟؟میکروتون نسوخت؟ oo:
            واسه LED یه مقاومت بین 220 تا 330 اهم بزارید...
            واسه رله باید از دیود هرزگرد استفاده بشه...با ترانزیستور سوئیچش کنید نه اینکه مستقیم به میکرو متصل بشه...خازن با ظفیت بالا رو با تغذیه موازی کنید...
            ممنون دوست عزیز: نه دوست عزیز اینطوری رله را وصل نکردم این محیط شبیه سازی هست و مهم نیست چطوری وصل باشه! شماتیم اصلی که براش pcb زدم التیوم طراحی کردم که براتان میزارم!
            میگم راه حل بهتری سراغ دارید؟ مثلا میشه به جای رله از تریاک استفاده کرد؟ یا مثلا اگز از اپتوکپلر استفاده کنم ایا مشکل حل میشه؟ قضیه خازن موازی چی هست؟ متوجه نشدم!!
            راستی کد نویسی مشکل نداره؟



            سپاس

            دیدگاه


              #7
              پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

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

              www.intelart.ir


              ساخت کنترلر دما PID فازی با AVR [آموزشی]

              دیدگاه


                #8
                پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                نوشته اصلی توسط Mahdi.Faani
                اوکی
                کدتون رو والا یادم رفت نگاه کنم...
                اگه جریان مصرفی که از رله عبور میکنه کم هست بهتره از تریاک استفاده کنید...دیگه تمام این مشکلات برطرف میششه...از لحاظ هزینه ای هم تفاومتی ندارن به اون صورت..
                ممنون دوست عزیز: با تریاک میشه مدارات dc را راه اندازی کرد یا فقط به درد ac میخوره؟
                لطفا به کد ها هم نگاه بکنید !! شاید مشکل از کد ها هم باشه!!
                مثلا توی این 3 خط کد: من به خط اول مشکوک هستم (پورت B) !! یک فیلم چند ثانیه ای می گذارم! مشکل را میگم!
                کد:
                DDRB.7=0xFF; 
                DDRC.0=0xFF;
                PORTD=0XFF;
                توی فیلم زیر زمانیکه مدار اجرا میشه : هم رله فعال میشه و هم led و هم بازر !!! البته مدت 3 الی 4 ثانیه !!! و بعد مدار اجرا میشه و ساعت را نشان می دهد!!! گمان کنم مشکل از این چند ثانیه فعال شدن رله هست!!! ایا کاری میشه کرد که رله چند روشن نشود!!! هر چی هست از این 3 خط کد هست!!! مخصوصا این کد: DDRB.7=0xFF; من مثلا نوشتم relay=0 موقع اجرا مدار رله فعال نمیشه که اینجا ظاهرا خوب هست ولی موقع اجرا تایمر باید رله فعال بشه!! که نمیشه!! به نظرتان به صورت کد را تغییر بدم!؟
                حجم فیلم 1 مگابایت هست:
                http://s6.picofile.com/file/8210027650/bandicam_2015_09_03_17_03_05_905.zip.html

                سپاس

                دیدگاه


                  #9
                  پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                  سلام

                  شما به غیر از دید هرز گرد چیز دیگری واسه موتور نذاتشید؟

                  موتورتون چند وات هست؟

                  زمانی که موتور باید قطع بشه و قطع نمیشه شما با تست کن ببین پایه ای که به رله فرمان میده ولتاژش صفر هست یا نه چون اینجوری میشه فهمید مشکل از خرابی رله هست یا نویز یا ...
                  برد جوجه کشی:
                  مطالعه پست 1 (حتما مطالعه کنید)


                  مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                  دانلود

                  توجه:
                  این برد نیمه صنعتی و خانگی هست...
                  برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                  آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                  دیدگاه


                    #10
                    پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                    سلام
                    مشکل شما اینه که وقتی رجیستر ها رو تنظیم میکنید تا وقتی که مقدار دهی میکنید یه زمانی سپری میشه
                    همین باعث میشه lcd هیچی نشون نده و رله وصل بمونه
                    شما موقع تعریف پورت به عنوان خروجی پایه ها رو تو وضعیت مناسب تنظیم کن
                    و رویه LCD هم یه چیزی بنویس مثلا please wait

                    دیدگاه


                      #11
                      پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                      منظور دوستمون اینه بعد کانفیگ پورت , پین مربوط به رله رو 0 کن, اینطوری
                      کد:
                      DDRB.7=0xFF; 
                      relay = 0;
                      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                      دیدگاه


                        #12
                        پاسخ : گیر کردن رله هنگام متصل شدن برق به مدا&#

                        ممنون دوستان:
                        نوشته اصلی توسط mohammad...
                        سلام

                        شما به غیر از دید هرز گرد چیز دیگری واسه موتور نذاتشید؟

                        موتورتون چند وات هست؟

                        زمانی که موتور باید قطع بشه و قطع نمیشه شما با تست کن ببین پایه ای که به رله فرمان میده ولتاژش صفر هست یا نه چون اینجوری میشه فهمید مشکل از خرابی رله هست یا نویز یا ...
                        دوست عزیز: ان موتور الکی هست !! من توی واقعیت به جای موتور : پریز برق میزارم!! یا یک مودم !!
                        باشه ولتاژ می گیرم و اعلام می کنم.
                        سپاس

                        اضافه شده در تاریخ :
                        نوشته اصلی توسط ehsanbagheri
                        سلام
                        مشکل شما اینه که وقتی رجیستر ها رو تنظیم میکنید تا وقتی که مقدار دهی میکنید یه زمانی سپری میشه
                        همین باعث میشه lcd هیچی نشون نده و رله وصل بمونه
                        شما موقع تعریف پورت به عنوان خروجی پایه ها رو تو وضعیت مناسب تنظیم کن
                        و رویه LCD هم یه چیزی بنویس مثلا please wait
                        ممنون دوست عزیز: چطوری خروجی پایه ها رو تو وضعیت مناسب تنظیم کنم!!؟؟ من هر کاری کردم نشد!! ظاهر کد ها درست هست!!

                        اضافه شده در تاریخ :
                        نوشته اصلی توسط mahdi8866
                        منظور دوستمون اینه بعد کانفیگ پورت , پین مربوط به رله رو 0 کن, اینطوری
                        کد:
                        DDRB.7=0xFF; 
                        relay = 0;
                        ممنون دوست عزیز: این کد را اضافه کردم ولی تاثیری نداشت!!

                        دیدگاه


                          #13
                          پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                          شما مقدار در اینجا مقدار 8 بیتی رو به کانفیگ پین b.7 دادید
                          کد:
                          DDRB.7=0xFF;
                          DDRC.0=0xFF;
                          ]
                          درستش باید این باشه
                          کد:
                          DDRB=0xFF;
                          امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                          دیدگاه


                            #14
                            پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                            نوشته اصلی توسط mahdi8866
                            شما مقدار در اینجا مقدار 8 بیتی رو به کانفیگ پین b.7 دادید
                            کد:
                            DDRB.7=0xFF;
                            DDRC.0=0xFF;
                            ]
                            درستش باید این باشه
                            کد:
                            DDRB=0xFF;
                            ممنون دوست عزیز: تست کردم ولی باز جواب نداد!!
                            دوستان میخوام please wait بگذارم برای مدار !! ایا این کد درست هست؟
                            کد:
                            #include <mega8.h>
                            #include <delay.h>
                            #include <stdio.h> 
                            #include <i2c.h>
                            #include <ds1307.h>
                            #include <alcd.h> 
                            #define b_down   PIND.1
                            #define b_up    PIND.2   
                            #define b_set   PIND.0
                            #define b_set_down PIND.3
                            #define relay   PORTB.7 
                            #define buzzer   PORTC.0 
                            //____________________________________________________________
                            void main(){ 
                            char lcd_buffer1[16];
                            
                            unsigned char hr,min,sec,status=0,value=0,roz=0;
                            unsigned char week,year,month,day;
                            unsigned char en_hr=0,en_min=0,en_sec=0;
                            unsigned char st_hr=0,st_min=0,st_sec=0;
                            unsigned char en_year=0,en_month=0,en_day=0;
                            unsigned char st_year=0,st_month=0,st_day=0;
                            unsigned int main_year;
                            
                            //DDRB=0xFF; 
                            DDRB.7=0xFF; 
                            DDRC.0=0xFF;
                            PORTD=0XFF;
                            i2c_init();
                            lcd_init(16);
                            rtc_init(0,0,0);
                            
                            
                            
                            lcd_gotoxy(0,0);
                            lcd_putsf("please wait..");  
                             delay_ms(3000); 
                            lcd_clear();
                            
                            
                            rtc_get_time(&en_hr,&en_min,&en_sec); 
                            rtc_get_time(&st_hr,&st_min,&st_sec);
                            rtc_get_date(&week,&en_day,&en_month,&en_year);
                            rtc_get_date(&week,&st_day,&st_month,&st_year);
                            delay_ms(20);
                                
                              while (1){  
                                while(status == 0)
                                {
                                  rtc_get_time(&hr,&min,&sec);
                                  rtc_get_date(&week,&day,&month,&year); 
                                  main_year = year + 2000;
                                  
                                  if(b_up == 0)
                                  {
                                    roz++;
                                    if(roz == 2) roz = 0;
                                    while(b_up == 0); 
                                  }
                            سپاس

                            دیدگاه


                              #15
                              پاسخ : گیر کردن رله هنگام متصل شدن برق به مدا&#1585

                              please wait را گذاشتم ولی تاثیری نداشت !! بعد ان هم باز هم رله و.. فعال میشه چند ثانیه!!!
                              ولی مشکل را عاقبت تونستم پیدا کنم مشکل از این خط ها هست !! مرتبط به بازر میشه!!!
                              مشکل توی این سه خط هست!!! تابع delay -ms باعث میشه 3 ثانیه رله و lcd و بازر و .. فعال بشوند!! این کد در واقعا یک نوع هشدار دهنده هست که موقع ای که تایمر سر تایم مورد نظر برسد 3 ثانیه صدای بازر در می اید و بعد قطع میشه!! به نظر شما چکار کنم؟ که بازر از بین نرود!!؟؟

                              کد:
                              buzzer = 1;
                                       delay_ms(3000);
                                        buzzer = 0;

                              کد:
                               if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                                      {
                                        value = 1;
                                        relay = 1;
                                       buzzer = 1;
                                       delay_ms(3000);
                                        buzzer = 0;
                                      } 
                              
                                      if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                                      {
                                        value = 0;
                                        relay = 0;
                                      } 
                                    }
                                    else
                                    {
                                      if(hr == en_hr & min == en_min & sec == en_sec)
                                      {
                                        value = 1;
                                        relay = 1;
                                       buzzer = 1;
                                       delay_ms(3000);
                                        buzzer = 0;
                                      }


                              سپاس

                              دیدگاه

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