اطلاعیه

Collapse
No announcement yet.

تنظیم نور با PWM ؟

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

    تنظیم نور با PWM ؟

    سلام ...
    من می خوام نور یه لامپو (DC ) با PWM کمو زیاد کنم برنامشم اینجوری نوشتم
    تو پروتئوسم جواب میده
    ولی تو عمل نور لامپ از زیاد شروع میکنه به کم شدن و دیپ سوئیچو که نگه دارم نور لامپ ثابت میمونه
    و به محضه اینکه دستمو از روش بردارم دوباره به کار خودش ادامه میده ...

    البته من تو برنامه نویسی مبتدیم :rolleyes:
    کد:
    This program was produced by the
    CodeWizardAVR V1.25.3 Standard
    Automatic Program Generator
    © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 3/4/2009
    Author : AMINI             
    Company : F4CG              
    Comments: 
    
    
    Chip type     : ATmega8
    Program type    : Application
    Clock frequency  : 16.000000 MHz
    Memory model    : Small
    External SRAM size : 0
    Data Stack size  : 256
    *****************************************************/
    
    #include <mega8.h>
    #include <delay.h>
    // Timer 1 overflow interrupt service routine
    interrupt [TIM1_OVF] void timer1_ovf_isr(void)
    { 
    
    
    // Reinitialize Timer 1 value
    TCNT1H=0xFF;
    TCNT1L=0xDA;
    // Place your code here
    
    
    }
    
    // Declare your global variables here
    int i=0;
    void main(void)
    {
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
    // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
    PORTB=0x00;
    DDRB=0x0F;
    
    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State6=T State5=T State4=T State3=P State2=P State1=P State0=P 
    PORTC=0x0F;
    DDRC=0x00;
    
    // Port D 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 
    PORTD=0x00;
    DDRD=0xFF;
    
    // 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: 250.000 kHz
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: On
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x03;
    TCNT1H=0xFF;
    TCNT1L=0xDA;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: 16000.000 kHz
    // Mode: Fast PWM top=FFh
    // OC2 output: Non-Inverted PWM
    ASSR=0x00;
    TCCR2=0x69;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x04;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // Global enable interrupts
    #asm("sei")
    
    while (1)
       {
       // Place your code here
       OCR2=i;
    if (PINC.0==0)
    { 
    i++;
    OCR2=i;
    delay_ms(100);
    } 
      
     if (PINC.1==0)
     {
     i--;
     OCR2=i; 
     delay_ms(100);
     } 
       };
    }
    ذكات علم ياد دادنه ....

    #2
    پاسخ : تنظیم نور با PWM ؟

    یه نفر پیدا نمیشه جواب بده :cry2:
    ذكات علم ياد دادنه ....

    دیدگاه


      #3
      پاسخ : تنظیم نور با PWM ؟

      ببینید این درسته...



      while (1)
      {

      // Place your code here

      OCR2=i;
      if (PINC.0==0)
      {
      i++;
      OCR2=i;
      delay_ms(100);
      }

      if (PINC.1==0)
      {
      i--;
      OCR2=i;
      delay_ms(100);
      }
      };
      }

      تو رو خدا یکی جواب بده :angry: :angry: :angry:
      ذكات علم ياد دادنه ....

      دیدگاه


        #4
        پاسخ : تنظیم نور با PWM ؟

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

        من که توی یه تاپیک دیگه براتون برنامه رو گذاشته بودم .. افاقه نکرد؟!! بفرمایید موردتون دقیقا چیه؛ در خدمتم ..
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #5
          پاسخ : تنظیم نور با PWM ؟

          سلام ......
          اون برنامه ای که شما دادین یه موج PWM درست می کرد ولی و برای اشنایی من خوب بود ... :applause:

          راستش الان می خوام بتونم این PWM رو کنترولش کنم یعنی با یه شاسی پهنای پالسمو زیاد و با یکی دیگه کم و خروجیشم مثلا بدم به یه

          لامپ 5v dc البته تغذیه لامپ جداست ...

          این برنامرو براش نوشتم تو پروتئوس راحت جواب میده ولی تو عمل نور لامپ از زیاد شروع به کم شدن میکنه...

          یه لطفی بکنید ببینید مشکل از برنامس یا جای دیگه

          با سپاس :redface:
          ذكات علم ياد دادنه ....

          دیدگاه


            #6
            پاسخ : تنظیم نور با PWM ؟

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

            متوجه شدم .. ببینید اونجاییکه شما توی تنظیمات CodeWizard میخواید خروجی تایمر در مد PWM رو تعیین کنید به جای اینکه از non-Inverted استفاده کنید از Inverted استفاده کنید و یا برعکس .. (اینی که میگم برعکس به این دلیله که شاید الان خروجیتون Invered باشه ..) این مرحله رو انجام بدید و نتیجه رو اعلام بفرمایید .. من منتظر میمونم .. موفق باشید ..
            دوستان! مدتی کمتر به سایت میام ..

            دیدگاه


              #7
              پاسخ : تنظیم نور با PWM ؟

              فرمایش شما رو انجام دادم ولی این بار نور لامپ از کم شروع به زیاد شدن میکنه و هر بار که شاسی رو می زنم نور لامپ همون جا ثابت میمونه
              تنظیمات code vizard رو هم تو قسمت timer 2 به این شکل کردم فقط اون موقه موقعه 250KHZ بود الان 16Mz (یه سوال کلاک تایمر چه تاثیری تو PWM داره یعنی با کمو زیاد کردنش چه اتفاقی میوفته ) برنامه درست بود ؟ اشکال از برنامه نیست؟


              // Timer/Counter 2 initialization
              // Clock source: System Clock
              // Clock value: 16000.000 kHz
              // Mode: Fast PWM top=FFh
              // OC2 output: Inverted PWM
              ASSR=0x00;
              TCCR2=0x79;
              TCNT2=0x00;
              OCR2=0x00;

              راستی اگه معطل شدین معذرت می خوام :redface:
              ذكات علم ياد دادنه ....

              دیدگاه

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