اطلاعیه

Collapse
No announcement yet.

درایور PWM برای 60 عدد RGB LED

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

    درایور PWM برای 60 عدد RGB LED

    من میآ‌خوام 60 تا LED RGB رو درایو کنم. البته همهآ‌ی 60 تا LED همزمان روشن نیستن و نهایتا 5 تاشون همزمان روشن هستن.
    بهترین روش برای این کار چیه؟

    #2
    پاسخ : درایور PWM برای 60 عدد RGB LED

    سلام مهندس
    شما اول 18 تا pwm میسازین , و با باس pwm ها میدین
    از اون طرف برای هر 6 تا ال ای دی , یه دونه فعال کننده میزارین

    خب الان نزدیک 10 تا فعال کننده هست . با دیکودر فک کنم بشه ساخت
    یه خط فعال میشه , 18 تا pwm داده میشه ...
    خط بعدی فعال میشه ... الی آخر

    الان اگر فقط بخاین با سرعت زیاد خط ها رو pwm بدین و سریع برین خط بعدی سرعت پاسخ دهی LED ها رو در نظر بگیرین!

    دیدگاه


      #3
      پاسخ : درایور PWM برای 60 عدد RGB LED

      نوشته اصلی توسط Amir safari
      سلام مهندس
      شما اول 18 تا pwm میسازین , و با باس pwm ها میدین
      ....
      مهندس میشه بفرمائید چطور 18 تا PWM را با یه میکرو همزمان داشته باشیم :applause:
      :redface:
      کمتر سخن گویم
      بیشتر عمل کنیم

      دیدگاه


        #4
        پاسخ : درایور PWM برای 60 عدد RGB LED

        فکر کنم درایورهای PWM با تعداد خروجی بالا باید وجود داشته باشه
        IC های درایور PWM در بازار که هم موجود باشه و هم قیمتش مناسب باشه، چی هست؟

        دیدگاه


          #5
          پاسخ : درایور PWM برای 60 عدد RGB LED

          نوشته اصلی توسط حمیدرضا رضائی
          من میآ‌خوام 60 تا LED RGB رو درایو کنم. البته همهآ‌ی 60 تا LED همزمان روشن نیستن و نهایتا 5 تاشون همزمان روشن هستن.
          بهترین روش برای این کار چیه؟
          مهندس ترتیب قرار گیری led ها کنار هم چطوری و با چه فاصله ای است ؟
          :redface:
          کمتر سخن گویم
          بیشتر عمل کنیم

          دیدگاه


            #6
            پاسخ : درایور PWM برای 60 عدد RGB LED

            به شکل ساعت.
            یه نگاه به این لینک بندازید:
            http://www.bramknaapen.com/?p=604
            چیز جالبیه. خودش از TLC5940 استفاده کرده.
            اما نه سورس داره نه شماتیک.

            دیدگاه


              #7
              پاسخ : درایور PWM برای 60 عدد RGB LED

              منم مشکل تعداد بالای pwm داشتم! یه تایمر توی مد CTC راه بندازین , در هربار وقفه ی تطابق مقدار یه کانتر زیاد بشه و اگر به 256 رسید 0 بشه

              در هر بار تطابق مقدار کانترمون با 18 تا بافر مقایسه بشه و نسبت به مقادیری که توی اون بافرا هست خروجی که به یکی از IO ها وصله 0 یا 1 بشه .
              در آخر وقتی کانتر به مقدار ماکزیمم رسید همه ی خروجی ها رو ریست کنه و خوددش هم از 0 بشماره!!!
              من اینگونه با یه دونه mega64 شونصد تا pwm ساختم :mrgreen:

              ضمنا واچداگ یادت نره

              دیدگاه


                #8
                پاسخ : درایور PWM برای 60 عدد RGB LED

                نوشته اصلی توسط حمیدرضا رضائی
                من میآ‌خوام 60 تا LED RGB رو درایو کنم. البته همهآ‌ی 60 تا LED همزمان روشن نیستن و نهایتا 5 تاشون همزمان روشن هستن.
                بهترین روش برای این کار چیه؟
                سلام یک راه آسون اینه که بری یک درایور آر جی بی بخری و ال ای دی هایه هر رنگ رو سری کنی و بزنی به خروجیش و کنترل دار هم هست...کاری که من تو پروژکتورهای آر جی بی میکنم.
                ساخت سوئیچینگ-داریور ال ای دی- لامپ و پروژکتور ال ای دی

                دیدگاه


                  #9
                  پاسخ : درایور PWM برای 60 عدد RGB LED

                  نوشته اصلی توسط حمیدرضا رضائی
                  به شکل ساعت.
                  یه نگاه به این لینک بندازید:
                  http://www.bramknaapen.com/?p=604
                  چیز جالبیه. خودش از TLC5940 استفاده کرده.
                  اما نه سورس داره نه شماتیک.
                  مهندس با TLC5940 با صرفه نیست کار کنید حدود 12000 تومان است
                  من نگاه کرده میشه به راحتی با TLC5940 کار کرد دیتا شیت را دانلود کنید به راحتی خودتان متوجه میشید
                  یه فکر دیگه باید کرد.
                  :redface:
                  کمتر سخن گویم
                  بیشتر عمل کنیم

                  دیدگاه


                    #10
                    پاسخ : درایور PWM برای 60 عدد RGB LED

                    نوشته اصلی توسط ms2000
                    سلام یک راه آسون اینه که بری یک درایور آر جی بی بخری و ال ای دی هایه هر رنگ رو سری کنی و بزنی به خروجیش و کنترل دار هم هست...کاری که من تو پروژکتورهای آر جی بی میکنم.
                    مهندس ایجوری که نمیتونید برنامه دلخواه خودتان را اجراء کنید
                    :redface:
                    کمتر سخن گویم
                    بیشتر عمل کنیم

                    دیدگاه


                      #11
                      پاسخ : درایور PWM برای 60 عدد RGB LED

                      نوشته اصلی توسط Amir safari
                      منم مشکل تعداد بالای pwm داشتم! یه تایمر توی مد CTC راه بندازین , در هربار وقفه ی تطابق مقدار یه کانتر زیاد بشه و اگر به 256 رسید 0 بشه

                      در هر بار تطابق مقدار کانترمون با 18 تا بافر مقایسه بشه و نسبت به مقادیری که توی اون بافرا هست خروجی که به یکی از IO ها وصله 0 یا 1 بشه .
                      در آخر وقتی کانتر به مقدار ماکزیمم رسید همه ی خروجی ها رو ریست کنه و خوددش هم از 0 بشماره!!!
                      من اینگونه با یه دونه mega64 شونصد تا pwm ساختم :mrgreen:

                      ضمنا واچداگ یادت نره
                      مهندس میشه فایل پروتیوس قرار بدید ببنیم چه کار کردید
                      با یه مگا 16 یا 8 کار کنید لطفا و 16 خروجی بدید کافیه
                      قبلا تشکر میکنیم :applause:
                      :redface:
                      کمتر سخن گویم
                      بیشتر عمل کنیم

                      دیدگاه


                        #12
                        پاسخ : پاسخ : درایور PWM برای 60 عدد RGB LED

                        نوشته اصلی توسط mpc
                        مهندس با TLC5940 با صرفه نیست کار کنید حدود 12000 تومان است
                        من نگاه کرده میشه به راحتی با TLC5940 کار کرد دیتا شیت را دانلود کنید به راحتی خودتان متوجه میشید
                        یه فکر دیگه باید کرد.
                        :redface:
                        هر IC میآ‌تونه 16 LED رو درایو کنه.
                        IC ارزونتری نیست؟

                        دیدگاه


                          #13
                          پاسخ : درایور PWM برای 60 عدد RGB LED

                          این که میزارم با ctc نیست , با over flew هست. 8 تا هم خروجی داره!
                          کد:
                          
                          #include <mega16.h>
                          #include <delay.h>
                          
                          unsigned int counter=0;
                          unsigned char value1=0,value2=0,value3=0,value4=0,value5=0,value6=0,value7=0,value8=0;
                          // Timer 0 overflow interrupt service routine
                          interrupt [TIM0_OVF] void timer0_ovf_isr(void)
                          {
                          // Place your code here
                          counter++;
                          if(counter>=20)
                          {
                           counter=0;
                           PORTD=0xff;
                          }
                          
                          if(counter==value1)PORTD.0=0;
                          if(counter==value2)PORTD.1=0;
                          if(counter==value3)PORTD.2=0;
                          if(counter==value4)PORTD.3=0;
                          if(counter==value5)PORTD.4=0;
                          if(counter==value6)PORTD.5=0;
                          if(counter==value7)PORTD.6=0;
                          if(counter==value8)PORTD.7=0;
                          //TCNT0=20;
                          }
                          
                          // Declare your global variables here
                          
                          void main(void)
                          {
                          // Declare your local variables here
                          
                          // Input/Output Ports initialization
                          // Port A initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTA=0x00;
                          DDRA=0xff;
                          
                          // Port B initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTB=0x00;
                          DDRB=0x00;
                          
                          // Port C initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTC=0x00;
                          DDRC=0x00;
                          
                          // Port D initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTD=0x00;
                          DDRD=0xff;
                          
                          // Timer/Counter 0 initialization
                          // Clock source: System Clock
                          // Clock value: 1000.000 kHz
                          // Mode: Normal top=FFh
                          // OC0 output: Disconnected
                          TCCR0=0x01;
                          TCNT0=0x00;
                          OCR0=0x00;
                          
                          // Timer/Counter 1 initialization
                          // Clock source: System Clock
                          // Clock value: Timer 1 Stopped
                          // Mode: Normal top=FFFFh
                          // OC1A output: Discon.
                          // OC1B output: Discon.
                          // Noise Canceler: Off
                          // Input Capture on Falling Edge
                          TCCR1A=0x00;
                          TCCR1B=0x00;
                          TCNT1H=0x00;
                          TCNT1L=0x00;
                          ICR1H=0x00;
                          ICR1L=0x00;
                          OCR1AH=0x00;
                          OCR1AL=0x00;
                          OCR1BH=0x00;
                          OCR1BL=0x00;
                          
                          // Timer/Counter 2 initialization
                          // Clock source: System Clock
                          // Clock value: Timer 2 Stopped
                          // Mode: Normal top=FFh
                          // OC2 output: Disconnected
                          ASSR=0x00;
                          TCCR2=0x00;
                          TCNT2=0x00;
                          OCR2=0x00;
                          
                          // External Interrupt(s) initialization
                          // INT0: Off
                          // INT1: Off
                          // INT2: Off
                          MCUCR=0x00;
                          MCUCSR=0x00;
                          
                          // Timer(s)/Counter(s) Interrupt(s) initialization
                          TIMSK=0x01;
                          
                          // Analog Comparator initialization
                          // Analog Comparator: Off
                          // Analog Comparator Input Capture by Timer/Counter 1: Off
                          // Analog Comparator Output: Off
                          ACSR=0x80;
                          SFIOR=0x00;
                          
                          // Global enable interrupts
                          #asm("sei")
                          
                          while (1)
                             {
                             value1=5;
                             value2=10;
                             value3=4;
                             value4=3;
                             value5=15;
                             value6=6;
                             value7=9;
                             value8=20; 
                            //  PORTD.0=0;
                            //  delay_ms(2000);
                            //  PORTD.0=1;
                            //  delay_ms(2000);
                             
                             // Place your code here
                          
                             };
                          }

                          دیدگاه


                            #14
                            پاسخ : درایور PWM برای 60 عدد RGB LED

                            سلام به همه ...
                            دوست عزیز نمیصرفه از LED Driver استفاده کنی ... یه دونه میکرو بزار مثلا ATTiny2313 فکر کنم 3000 بیشتر نباشه ... واسه ارتباطشون هم از پروتکل DMX512 استفاده کن .....

                            دیدگاه


                              #15
                              پاسخ : درایور PWM برای 60 عدد RGB LED

                              نوشته اصلی توسط microprocesor_2002
                              سلام به همه ...
                              دوست عزیز نمیصرفه از LED Driver استفاده کنی ... یه دونه میکرو بزار مثلا ATTiny2313 فکر کنم 3000 بیشتر نباشه ... واسه ارتباطشون هم از پروتکل DMX512 استفاده کن .....
                              یعنی برای هر LED یه ATTiny2313 بذارم؟

                              دیدگاه

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