اطلاعیه

Collapse
No announcement yet.

کنترل شدت نور LED

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

    #16
    پاسخ : کنترل شدت نور LED

    من با atmega128 کار می کنم.
    من 8 خروجی PWM احتیاج دارم.
    می خواهم با استفاده از دستور lookup شدت نور یه led رو کم یا زیاد کنم.
    مثلا به این مثال توجه کنید
    for a = 0 to 7
    dd = lookup(a , ani)

    pwma1 = dd
    porta = &H00
    next
    loop
    end

    ani:
    data 0 , 255 , 127 , 0 , 255 , 127 , 0 , 255

    دیدگاه


      #17
      پاسخ : کنترل شدت نور LED

      می خواهم نور هر led رو همزمان تغییر بدم مثلا اگر led اولی پور نور است led بعدی کم نور باشد و led بعدی خاموش باشد همین طور تا led شماره 8

      دیدگاه


        #18
        پاسخ : کنترل شدت نور LED

        شما با mega128 عملا 7 تا PWM دارید ( به پایه PB7 دقت کنید )

        برای این کار که شما میخواهید ، فکر کنم Mega8 هم کافیه . مثلا برای Duty cycle تقریبا برابر 50 ،شما میتونید بنویسید :

        config portA.1=output

        do
        set portA.1
        reset ProtA.1
        loop

        که برابر مقدار 127 از جدول Lookup شماست .

        اگه خواستید روی این کار کنیم

        دیدگاه


          #19
          پاسخ : کنترل شدت نور LED

          یه مثال بزن که چطور می شود نور 8 led رو به صورت جداگانه کم و زیاد بشه همچنین با استفاده از دستور lookup باشد.

          دیدگاه


            #20
            پاسخ : کنترل شدت نور LED

            Config Timer1 = Pwm , Pwm = 8 , Prescale = 1
            در کانفیگ بالا Pwm = 8 یعنی چه؟
            و prescale = 1 یعنی چه؟
            با تشکر

            دیدگاه


              #21
              پاسخ : کنترل شدت نور LED

              نوشته اصلی توسط feshwari
              Config Timer1 = Pwm , Pwm = 8 , Prescale = 1
              در کانفیگ بالا Pwm = 8 یعنی چه؟
              و prescale = 1 یعنی چه؟
              با تشکر
              یعنی 8 بیتی باشه .

              با تنظیم prescale درواقع فرکانس PWM را تنظیم میکنیم

              (F.PWM=F.OSC/(510*Prescale


              دیدگاه


                #22
                پاسخ : کنترل شدت نور LED

                سلام آقا مجید
                من توانستم نور led رو کم و زیاد کنم. حالا می خواهم اول هر ولتاژ رو در یک مدار ذخیره کنم بعد بعد انیبل همه رو یه جا بزنم تا خروجی هر مدار یک ولتاژ مختلف داشته باشیم
                اینو چکار کنم؟

                دیدگاه


                  #23
                  پاسخ : کنترل شدت نور LED

                  منظورتون اینه که از ابتدا مشخص کنید کدام LED چقدر نور داشته باشه ؟ و بعد که فرمان دادید هر LED با نور از پیش تعیین شده روشن بشه ؟

                  دیدگاه


                    #24
                    پاسخ : کنترل شدت نور LED

                    نوشته اصلی توسط مجید نصراله زاده
                    با این برنامه شروع کن

                    $regfile = "m32def.dat"

                    $crystal = 1000000

                    Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down

                    Enable Timer1

                    Start Timer1

                    Dim A As Byte
                    Do
                    For A = 0 To 255
                    Pwm1a = A
                    Waitms 50
                    Next A
                    For A = 255 To 0 Step -1
                    Pwm1a = A
                    Waitms 50
                    Next A
                    Loop


                    و LED رو به پایه OC1A وصل کن

                    lموفق باشید
                    سلام
                    آقا اینی که نوشتید میشه به بان c با کد ویژن بزارید
                    ممنون میشم
                    دنبال کار میگردم تو تهران کسی سراغ داره

                    دیدگاه


                      #25
                      پاسخ : کنترل شدت نور LED

                      نوشته اصلی توسط khoshtip118


                      سلام
                      آقا اینی که نوشتید میشه به بان c با کد ویژن بزارید
                      ممنون میشم
                      بعد از چند ساعت خودم انجام دادم میزارم اگه کسی خواست
                      واسه کدویژن
                      /************************************************** ***
                      This program was produced by the
                      CodeWizardAVR V2.03.4 Standard
                      Automatic Program Generator
                      © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
                      http://www.hpinfotech.com

                      Project :
                      Version :
                      Date : 2009/01/29
                      Author :
                      Company :
                      Comments:


                      Chip type : ATmega8
                      Program type : Application
                      Clock frequency : 8.000000 MHz
                      Memory model : Small
                      External RAM size : 0
                      Data Stack size : 256
                      ************************************************** ***/

                      #include <mega8.h>
                      #include <delay.h>
                      int i,j;

                      // Declare your global variables here

                      void main(void)
                      {
                      // Declare your local variables here

                      // Input/Output Ports initialization
                      // Port B initialization
                      // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
                      // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
                      PORTB=0x00;
                      DDRB=0xFF;

                      // Port C initialization
                      // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                      // 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=0x00;

                      // Timer/Counter 0 initialization
                      // Clock source: System Clock
                      // Clock value: Timer 0 Stopped
                      TCCR0=0x00;
                      TCNT0=0x00;

                      // Timer/Counter 1 initialization
                      // Clock source: System Clock
                      // Clock value: 8000.000 kHz
                      // Mode: Fast PWM top=00FFh
                      // OC1A output: Discon.
                      // OC1B output: Non-Inv.
                      // Noise Canceler: Off
                      // Input Capture on Falling Edge
                      // Timer 1 Overflow Interrupt: Off
                      // Input Capture Interrupt: Off
                      // Compare A Match Interrupt: Off
                      // Compare B Match Interrupt: Off
                      TCCR1A=0x21;
                      TCCR1B=0x09;
                      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
                      MCUCR=0x00;

                      // Timer(s)/Counter(s) Interrupt(s) initialization
                      TIMSK=0x00;

                      // Analog Comparator initialization
                      // Analog Comparator: Off
                      // Analog Comparator Input Capture by Timer/Counter 1: Off
                      ACSR=0x80;
                      SFIOR=0x00;

                      while (1)
                      {
                      // Place your code here

                      TCNT1=0;
                      for(j=255;j>50;j--)
                      {
                      OCR1B=j;
                      delay_ms(50);

                      }
                      for(i=50;i<255;i++)
                      {
                      OCR1B=i;
                      delay_ms(50);

                      }


                      };
                      }





                      حالا یه سوال
                      دوستان اگه بخوایم یه دیمر مثل دیمر های معمولی یعنی با مقاومت درست کنیم به شرطی که دیجیتال باشه
                      چون این Pwm همون 0 و یک میفرسته ولی به خاطر تغییر سرعت ما فک میکنیم که نور کم و زیاد میشه
                      ولی تو مقاوتی ها واقعا کم و زیاد میشه
                      اگه بخوایم یه دیمر انجوری ولی دیجیتال درست کنیم چی کار باید کنیم؟
                      دنبال کار میگردم تو تهران کسی سراغ داره

                      دیدگاه


                        #26
                        پاسخ : کنترل شدت نور LED

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

                        دیدگاه


                          #27
                          پاسخ : کنترل شدت نور LED

                          سلام .............

                          حالا یه سوال ...
                          لینک زیر رو ملاحظه بفرمایید .. اگه لازم دونستید همونجا بحث رو ادامه بدیم .. موفق باشید ..

                          http://www.eca.ir/forum2/index.php?topic=24541.0
                          دوستان! مدتی کمتر به سایت میام ..

                          دیدگاه


                            #28
                            پاسخ : کنترل شدت نور LED

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

                            دیدگاه


                              #29
                              پاسخ : LED های پور نور

                              نوشته اصلی توسط مجید نصراله زاده


                              میکرو شما جی هست ؟
                              مثلا Mega32 جهار کانال pwm داره و mega64 هشت عدد که عملا از 7 تا از اونها میتونی خروجی بگیری
                              در ضمن شما باید از اسمی که برای خروجی های pwm در نظر گرفته شده استفاده کنید . به اسم پایه های میکرو تون نگاه کنید

                              مثلا تایمر 1 در mega32 2 تا pwm به نامهای A و B دارد .

                              اگه دقیقا بفرمایید با PWm چکار میخواهید بکنید ( البته فرموده بودید LED ) و اینکه چند تا مورد تیازتون هست شاید بهتر بتونم کمک کنم . در ضمن نوع میکرو را بفرمایید
                              :question: :question:

                              دیدگاه


                                #30
                                پاسخ : کنترل شدت نور LED

                                اتفاقی افتاده ؟

                                :eek: :eek:

                                دیدگاه

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