اطلاعیه

Collapse
No announcement yet.

شهاب سنگ led

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

    #61
    پاسخ : شهاب سنگ led

    بچه ها من با مگا 8 یه دونه درست کردم. البته میشد ازتموم پایه های میکرو استفاده کرد ولی من زیاد نخواستم پیچیدش کنم:
    فیلم :
    http://www.mediafire.com/?ahemlsbjtq0zz24
    حجم 2 مگ.
    برنامشا خودم به زبان سی نوشتم. PWM نرمافزاری هست. به شکل تابع نوشتم و کار کردن باهاش خیلی راحته.
    یوتی سایکل هم از 1 تا 100 درصد تغییر میکنه. به همین خاطر کیفیت کار بالاست و تغییر رقص ال ای دی ها راحته
    Weakness of attitude becomes weakness of character
    Albert Einstein

    دیدگاه


      #62
      پاسخ : شهاب سنگ led

      مبارک باشه انشالله!
      سورس رو بذار

      دیدگاه


        #63
        پاسخ : شهاب سنگ led

        نوشته اصلی توسط حمیدرضا رضائی
        مبارک باشه انشالله!
        سورس رو بذار
        کد:
        #include <mega8.h>
        #include <delay.h>
        
        signed char duc=101,i,j,x,z;
        unsigned int k;
        char led[23];
        
        // Timer 0 overflow interrupt service routine
        interrupt [TIM0_OVF] void timer0_ovf_isr(void)
        {
          TCNT0=70;
         duc--; 
          for(i=0;i<24;i++)
          {
            if(led[i]==duc)
              {
                if(i<8)
                  PORTB=PORTB|1<<i;
                if(i>7&i<16)
                  PORTC=PORTC|1<<(i-8);
                if(i>15)
                 PORTD=PORTD|1<<(i-16); 
              }
          }
         
        if(duc==1)
         {
          PORTB=0;
          PORTC=0;
          PORTD=0;
          duc=101;
         }
        
        }
        
        
        
        void main(void)
        {
        // Declare your local variables here
         
        PORTB=0x00;
        DDRB=0xFF;
        PORTC=0x00;
        DDRC=0xFF;
        PORTD=0x00;
        DDRD=0xFF;
        
        // Timer/Counter 0 initialization
        // Clock source: System Clock
        // Clock value: 1000.000 kHz
        TCCR0=0x02;
        TCNT0=0x00;
        
        // Global enable interrupts
        #asm("sei")
        
        
        
        while (1)
           {
           z=2;
           x=0;
            for(j=0;j<8;j++)
              led[j]=-15*j;
              
            for(j=0;j<8;j++)
              led[j+8]=-15*j; 
              
            for(j=0;j<8;j++)
              led[j+16]=-15*j;
            
        
           //for(z=0;z<3;z++) 
           for(k=0;k<300;k++)
            {
             for(j=0;j<8;j++)
             {
              if(j>=x)
                led[j+8*z]++;
              else
                led[j+8*z]--;
             }
             
             if((15*x+97)<k)
             x++;
             
             delay_ms(4);    
            } 
            
           }
        }
        Weakness of attitude becomes weakness of character
        Albert Einstein

        دیدگاه


          #64
          پاسخ : شهاب سنگ led

          دوستانی که کدویژن دارن تست کنن.
          مشکل ما هم استفاده از همهآ‌ی پایه های میکرو هست. مثلا 32 پین mega32.
          یه توضیحی هم در مورد روش کار بدید لطفا.

          دیدگاه


            #65
            پاسخ : شهاب سنگ led

            نوشته اصلی توسط حمیدرضا رضائی
            دوستانی که کدویژن دارن تست کنن.
            مشکل ما هم استفاده از همهآ‌ی پایه های میکرو هست. مثلا 32 پین mega32.
            یه توضیحی هم در مورد روش کار بدید لطفا.
            من اومدم کلاک تایمر صفر را 1 مگ از قرار دادم و با توجه به مقدار اولیه تایمر با فرکانس تقریبا 50 کیلو تایمر آور فلو میشه و اون کدی که در isr تایمر صفر هست وظیفه تولید pwm را داره. مقدار duc (مخفف دیوتی سایکل :smile: :smile در هر آورفلو کم میشه(شروع از 100) و هر کدوم از pwm هایی که قراره اون دیوتی را داشته باشن یک میشن و وقتی duc صفر میشه تمام پایه ها صفر شده و دوباره همین روند برای سیکل بعدی تکرار میشه. با توجه به ماتریس [led[23 هر درایه ماتریس دیوتی سایکلی که باید پین مورد نظر داشته باشه را نشون میده.
            حالا فقط کافی که مقدار ماتریس را تغییر داده تا هر شدت نوری که لازمه را روی هر پایه داشته باشیم.
            Weakness of attitude becomes weakness of character
            Albert Einstein

            دیدگاه


              #66
              پاسخ : شهاب سنگ led

              دوستان بنظزتون این ledها که یکی یکی روشن میشن 3تا 3تا بزاریم یا بیشتر اینجوری دراز تر میشه فک کنم با سرعت هم که میره تو چشم نمیزنه 3تا 3تا روشن میشن بنظرتون جواب میده؟ :redface: :redface:
              a happy person is one who wants happiness for other

              دیدگاه


                #67
                پاسخ : شهاب سنگ led

                نوشته اصلی توسط sky_man847
                دوستان بنظزتون این ledها که یکی یکی روشن میشن 3تا 3تا بزاریم یا بیشتر اینجوری دراز تر میشه فک کنم با سرعت هم که میره تو چشم نمیزنه 3تا 3تا روشن میشن بنظرتون جواب میده؟ :redface: :redface:
                بله جواب میده. اما از کیفیت کار کم میشه. اگر طول کلی خیلی زیاد نیست :rolleyes: با مگا 32 میشه تا 32 تا ال ای دی را جدا گونه کنترل کرد.
                Weakness of attitude becomes weakness of character
                Albert Einstein

                دیدگاه


                  #68
                  پاسخ : شهاب سنگ led

                  نوشته اصلی توسط sky_man847
                  دوستان بنظزتون این ledها که یکی یکی روشن میشن 3تا 3تا بزاریم یا بیشتر اینجوری دراز تر میشه فک کنم با سرعت هم که میره تو چشم نمیزنه 3تا 3تا روشن میشن بنظرتون جواب میده؟ :redface: :redface:
                  نه دوست من نوع بازاریش هم همین طور هست 3 تا 3تا هستش
                  قم الکترونیک

                  دیدگاه


                    #69
                    پاسخ : شهاب سنگ led

                    نوشته اصلی توسط حمیدرضا رضائی
                    دوستانی که کدویژن دارن تست کنن.
                    مشکل ما هم استفاده از همهآ‌ی پایه های میکرو هست. مثلا 32 پین mega32.
                    یه توضیحی هم در مورد روش کار بدید لطفا.
                    روش کاره pwm کردن همه ی پایه ها اینطوریه که شما برنامه ات داخل یک حلقه do...loop قرار میگیره شما از یک تایمر هم استفاده می کنی بعد برای تایمر سابروتینی تعیین می کنی مثل اینجا که Led_rgb: هست بعد از هر بار سرریز شدن تایمر و پرش به سابروتین متغییری به نام pwm رو یک واحد اضافه می کنی بعد حالا برای هر پروت یک عددی انتخاب می کنی این عدد باید با مقدار pwm مقایسه بشه و این عدد پورت قابل تغییر با تغییر اون مقدار دیتوی سایکل تغییر می کنه و متغییر pwm از 0 تا 255 میشماره و هر بار با متغییر هر پورت مقایسه میشه اگر مساوی بود با متغییر هر پورت اون پورت set میشه و اگر کوچکتر بود reset یه جورایی مثل همون مثلث معروف pwm هست اما اینجا مثلث نداریم و فقط یک متغییر به نام pwm به جای اون اومده
                    توی این برنامه متغییر پورت c0 هست که من مقدار 100 رو بهش دادم شما با تغییر این متغییر بر حسب نیازت توی برنامه دیوتی سایکل رو تغییر میدید
                    کد:
                    $regfile = "m8def.dat"
                    $crystal = 8000000
                    Config Timer0 = Timer , Prescale = 1
                    Enable Interrupts
                    Enable Ovf0
                    On Ovf0 Led_rgb
                    Config Pinc.0 = output
                    Config Pinc.1 = Output
                    Config Pinc.2 = Output
                    Config Pinc.3 = Output
                    Config Pinc.4 = Output
                    Config Pinc.5 = Output
                    Config Pinc.6 = Output
                    Config Pinc.7 = Output
                    Dim Pwm As Byte , C0 As Byte
                    Start Timer0
                    
                    Do
                    c0=100
                    
                    Loop
                    
                    
                    Led_rgb:
                    If Pwm = 255 Then
                    Pwm = 0
                    End If
                    If Pwm = C0 Then Set Pinc.0
                    If Pwm < C0 Then Reset Pinc.0
                    
                    
                    Incr Pwm
                    Return
                    قم الکترونیک

                    دیدگاه


                      #70
                      پاسخ : شهاب سنگ led

                      دوستان به نظر بنده برای ساخت این نوع افکت برای led ها اصلا لازم نیست از میکرو استفاده بشه :agree:فقط کافیه از مدار زیر استفاده بشه با یه خازن موازی با هر led که مقدار خازن هم تجربی بدست می آد ، یکسری درایور هم می خواد که اگه از میکرو هم استفاده کنی بازم باید بزاری برای clk هم یه اسیلاتور RC هم باشه کفایت می کنه تمام

                      http://uploadtak.com/images/r6353_abshari.rar

                      خیلی خیلی ارزون تر از میکرو در می آد دنگ و فنگ اضافی هم نداره اگه به روش کارخانه ای هم بخواد تولید انبوه بشه مطمئن باشین سایزش خیلی خیلی خیلی کوچیک میشه :wow:
                      به نظر من اصلا جالب نیست که بخواییم ساده ترین مدارا رو هم با میکرو ببندیم و پیچیدش کنیم
                      خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                      [hr]

                      دیدگاه


                        #71
                        پاسخ : شهاب سنگ led

                        نوشته اصلی توسط حمیدرضا رضائی
                        دوستانی که کدویژن دارن تست کنن.
                        مشکل ما هم استفاده از همهآ‌ی پایه های میکرو هست. مثلا 32 پین mega32.
                        یه توضیحی هم در مورد روش کار بدید لطفا.
                        کسی تست نکرد؟
                        من برای تست مدار رو بستم
                        ولی کریستال نگذاشتم فرکانس کاری رو ه میک مگ داخلی در نظر گرفتم ولی هیچ ال ای دی روشن نمیشه وقتی هم میخام کد هگز تولید کنم
                        شش تا وارنینگ میده که از این خط هستش
                        led[j+8]=-15*j;

                        حالا بگید مشکلم کجاست

                        نورپردازان باران نور شهرستان آران وبیدگل
                        barannoor69@yahoo.com

                        دیدگاه


                          #72
                          پاسخ : شهاب سنگ led

                          نوشته اصلی توسط 4850
                          دوستان به نظر بنده برای ساخت این نوع افکت برای led ها اصلا لازم نیست از میکرو استفاده بشه :agree:فقط کافیه از مدار زیر استفاده بشه با یه خازن موازی با هر led که مقدار خازن هم تجربی بدست می آد ، یکسری درایور هم می خواد که اگه از میکرو هم استفاده کنی بازم باید بزاری برای clk هم یه اسیلاتور RC هم باشه کفایت می کنه تمام

                          http://uploadtak.com/images/r6353_abshari.rar

                          خیلی خیلی ارزون تر از میکرو در می آد دنگ و فنگ اضافی هم نداره اگه به روش کارخانه ای هم بخواد تولید انبوه بشه مطمئن باشین سایزش خیلی خیلی خیلی کوچیک میشه :wow:
                          به نظر من اصلا جالب نیست که بخواییم ساده ترین مدارا رو هم با میکرو ببندیم و پیچیدش کنیم
                          هدف ما اینه که بتونیم علاوه بر این افکت، افکت های دیگهآ‌ای رو هم پیاده سازی کنیم.بتابراین وجود میکرو الزامیه.

                          دیدگاه


                            #73
                            پاسخ : شهاب سنگ led

                            راحت ترین راهی که نخواهیم خودمون رو اذیت کنیم توی برنامه ای که اقای رضائی گذاشتن افکت های دیگه رو هم اعمال کنیم اینه که برنامه بعد از اینکه یک سیکل کامل انجام شد باید دوباره از اول اجرا بشه دیگه که ایشون اومدن تایمر واچ داگ رو فعال کردن تا برنامه ریست بشه خوب ما باید توی برنامه اونجایی که هنوز تایمر ها رو فعال نکردیم یعنی دقیقا بعد از تعریف متغییر ها بیاییم یک حلقه ی WHILE با تعداد مشخص بنویسیم و اول افکت هایی که می خواهیم رو اعمال کنیم و بعد از خروج از حلقه ی WHILE برنامه به تایمر ها میرسه و اونها رو پیکربندی می کنه و اینجاست که افکت جذاب LED آبشاری شروه میشه و بعد دوباره برنامه ریست میشه و از اول

                            اضافه شده در تاریخ :
                            من تست کردم جواب میده :wow: توضیحش توی برنامه زیر نوشتم

                            کد:
                            '*******************------*******************
                            $regfile = "m8def.dat"
                            $crystal = 8000000
                            $hwstack = 80
                            $swstack = 62
                            $framesize = 62
                            Config Watchdog = 1024
                            
                            Ddrd = &B11111111
                            Ddrb = &B11111111
                            Ddrc = &B111111
                            
                            Led_01 Alias Portd.0
                            Led_02 Alias Portd.1
                            Led_03 Alias Portd.2
                            Led_04 Alias Portd.3
                            Led_05 Alias Portd.4
                            Led_06 Alias Portd.5
                            Led_07 Alias Portd.6
                            Led_08 Alias Portd.7
                            Led_09 Alias Portb.0
                            Led_10 Alias Portb.1
                            Led_11 Alias Portb.2
                            Led_12 Alias Portb.3
                            Led_13 Alias Portb.4
                            Led_14 Alias Portb.5
                            Led_15 Alias Portc.0
                            Led_16 Alias Portc.1
                            Led_17 Alias Portc.2
                            Led_18 Alias Portc.3
                            Led_19 Alias Portc.4
                            Led_20 Alias Portc.5
                            
                            
                            Dim Tmrcount As Byte
                            Dim Pwm_01 As Byte
                            Dim Pwm_02 As Byte
                            Dim Pwm_03 As Byte
                            Dim Pwm_04 As Byte
                            Dim Pwm_05 As Byte
                            Dim Pwm_06 As Byte
                            Dim Pwm_07 As Byte
                            Dim Pwm_08 As Byte
                            Dim Pwm_09 As Byte
                            Dim Pwm_10 As Byte
                            Dim Pwm_11 As Byte
                            Dim Pwm_12 As Byte
                            Dim Pwm_13 As Byte
                            Dim Pwm_14 As Byte
                            Dim Pwm_15 As Byte
                            Dim Pwm_16 As Byte
                            Dim Pwm_17 As Byte
                            Dim Pwm_18 As Byte
                            Dim Pwm_19 As Byte
                            Dim Pwm_20 As Byte
                            Dim Glow As Byte
                            Dim T As Byte
                            Dim Glow_count As Byte
                            Dim Led_step As Byte
                            Dim Flag As Bit
                            Dim Ran_time2 As Word
                            
                            
                            
                            While T < 20               توی اینجا می تونید افکتهایی که میخواهیم روی پروت ها اعمال کنید رو بنویسد من فعلا یک پورت رو 20 بار صفر یک می کنم 
                            Toggle Led_01              اگه بخواهید افکتهای جذاب بدید باید از جداول لوک پ استفاده کنید
                            Waitms 100
                            Incr T
                            Wend
                            Glow = 100
                            Const Count_max = 63
                            
                            Config Timer1 = Timer , Prescale = 256 , Clear Timer = 1
                            Compare1a = 1200
                            Config Timer2 = Timer , Prescale = 8 , Clear Timer = 1
                            Ocr2 = 200
                            On Oc1a Isr_timer1
                            On Oc2 Isr_timer2
                            Enable Oc1a
                            Enable Oc2
                            Enable Interrupts
                            
                            Do
                            
                            !nop
                            If Flag = 1 Then
                              Gosub Next_led
                                       Reset Watchdog
                              Flag = 0
                            End If
                            Loop
                            
                            End
                            
                            Isr_timer1:
                            Set Flag
                            Return
                            
                            Isr_timer2:
                            If Tmrcount = 0 Then
                             Tmrcount = Count_max
                             Portd = 0
                             Portb = 0
                             Portc = 0
                            Else
                              Start Watchdog
                            
                             If Pwm_01 = Tmrcount Then Set Led_01
                             If Pwm_02 = Tmrcount Then Set Led_02
                             If Pwm_03 = Tmrcount Then Set Led_03
                             If Pwm_04 = Tmrcount Then Set Led_04
                             If Pwm_05 = Tmrcount Then Set Led_05
                             If Pwm_06 = Tmrcount Then Set Led_06
                             If Pwm_07 = Tmrcount Then Set Led_07
                             If Pwm_08 = Tmrcount Then Set Led_08
                             If Pwm_09 = Tmrcount Then Set Led_09
                             If Pwm_10 = Tmrcount Then Set Led_10
                             If Pwm_11 = Tmrcount Then Set Led_11
                             If Pwm_12 = Tmrcount Then Set Led_12
                             If Pwm_13 = Tmrcount Then Set Led_13
                             If Pwm_14 = Tmrcount Then Set Led_14
                             If Pwm_15 = Tmrcount Then Set Led_15
                             If Pwm_16 = Tmrcount Then Set Led_16
                             If Pwm_17 = Tmrcount Then Set Led_17
                             If Pwm_18 = Tmrcount Then Set Led_18
                             If Pwm_19 = Tmrcount Then Set Led_19
                             If Pwm_20 = Tmrcount Then Set Led_20
                             Decr Tmrcount
                            End If
                            
                            If Glow_count = 0 Then
                              Glow_count = Glow
                              If Pwm_01 > 0 Then Decr Pwm_01
                              If Pwm_02 > 0 Then Decr Pwm_02
                              If Pwm_03 > 0 Then Decr Pwm_03
                              If Pwm_04 > 0 Then Decr Pwm_04
                              If Pwm_05 > 0 Then Decr Pwm_05
                              If Pwm_06 > 0 Then Decr Pwm_06
                              If Pwm_07 > 0 Then Decr Pwm_07
                              If Pwm_08 > 0 Then Decr Pwm_08
                              If Pwm_09 > 0 Then Decr Pwm_09
                              If Pwm_10 > 0 Then Decr Pwm_10
                              If Pwm_11 > 0 Then Decr Pwm_11
                              If Pwm_12 > 0 Then Decr Pwm_12
                              If Pwm_13 > 0 Then Decr Pwm_13
                              If Pwm_14 > 0 Then Decr Pwm_14
                              If Pwm_15 > 0 Then Decr Pwm_15
                              If Pwm_16 > 0 Then Decr Pwm_16
                              If Pwm_17 > 0 Then Decr Pwm_17
                              If Pwm_18 > 0 Then Decr Pwm_18
                              If Pwm_19 > 0 Then Decr Pwm_19
                              If Pwm_20 > 0 Then Decr Pwm_20
                             Else
                             Decr Glow_count
                            End If
                            
                            Return
                            
                            Next_led:
                            Select Case Led_step
                              Case 1
                              Pwm_20 = Count_max
                              Case 2
                              Pwm_19 = Count_max
                              Case 3
                              Pwm_18 = Count_max
                              Case 4
                              Pwm_17 = Count_max
                              Case 5
                              Pwm_16 = Count_max
                              Case 6
                              Pwm_15 = Count_max
                              Case 7
                              Pwm_14 = Count_max
                              Case 8
                              Pwm_13 = Count_max
                              Case 9
                              Pwm_12 = Count_max
                              Case 10
                              Pwm_11 = Count_max
                              Case 11
                              Pwm_10 = Count_max
                              Case 12
                              Pwm_09 = Count_max
                              Case 13
                              Pwm_08 = Count_max
                              Case 14
                              Pwm_07 = Count_max
                              Case 15
                              Pwm_06 = Count_max
                              Case 16
                              Pwm_05 = Count_max
                              Case 17
                              Pwm_04 = Count_max
                              Case 18
                              Pwm_03 = Count_max
                              Case 19
                              Pwm_02 = Count_max
                              Case 20
                              Pwm_01 = Count_max
                            End Select
                            
                            Incr Led_step
                            If Led_step = 20 Then Glow = 60
                            If Led_step > 20 Then
                            
                              Ran_time2 = Rnd(1200)
                              If Ran_time2 < 600 Then Ran_time2 = 600
                              Compare1a = Ran_time2
                            
                              Ran_time2 = Rnd(6000)
                              If Ran_time2 < 2000 Then Ran_time2 = 2000
                              Waitms Ran_time2
                              Led_step = 1
                              Ocr2 = 200
                              Glow = 8
                            End If
                            Return
                            
                            '*******************------*******************
                            قم الکترونیک

                            دیدگاه


                              #74
                              پاسخ : شهاب سنگ led

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

                              1- اگه بخام سرعتشو کمتر کنم باید کلیت برنامه رو تغییر بدم ؟؟

                              2- اگر بخام با مگا 16 استفاده کنم جواب میده ؟ چه تغییراتی باید تو برنامه بدم ؟

                              3- نمونه ساخته شده در بازار روی هر پایه چند تا LED گذاشته ؟ 3 یا 4 تا ؟

                              ودر اخر قیمت این LED ابشاری در بازار چنده ؟؟
                              یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                              دیدگاه


                                #75
                                پاسخ : شهاب سنگ led

                                سلام دوستان اگه کسی درست کرد و یک قابه قشنگ و ضدآب هم براش درست کرد من خریدارم.این پست رو دادم که هم به تولید کننده ایرانی کمکی بشه و هم شوقه دوستان در این تاپیک کمی بشتر بشه.
                                ساخت سوئیچینگ-داریور ال ای دی- لامپ و پروژکتور ال ای دی

                                دیدگاه

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