اطلاعیه

Collapse
No announcement yet.

کنترل شدت نور LED با استفاده از برنامه نویسی

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

    کنترل شدت نور LED با استفاده از برنامه نویسی

    سلام دوستان..

    من میخوام برنامه ای بنویسم که نور LED را کنترل کنه.یعنی آروم آروم نورش کم باشه بعد زیاد بشه بعد دوباره آرو آروم نورش کم بشه تا خاموش بشه.
    .از تایمر ها اصلا نمیخوام استفاده کنم ..
    من برنامه زیر رو نوشتم ولی این برنامه باعث میشه LED با سرعت چشمک بزنه و کاری که میخوامو انجام نمیده..
    کسی میدونه برنامه نویسیشو؟ لطفا با Cبزارید.
    #include <mega16.h>
    #include <delay.h>

    int a;
    int b;
    void main(void){
    DDRB=0xFF;
    a=1;
    b=50;
    while (1){
    PORTB=0X00;
    for (a=1;a<=50;a++)
    {
    for (b=50;b>=1;b--)
    {
    PORTB.0=0;
    delay_ms(b);
    b--;
    PORTB.0=1;
    delay_ms(a);
    a++;
    if(a==50)
    {
    PORTB.0=0;
    if(b==1)
    {
    PORTB.0=1;
    }
    }
    }
    }
    }
    }

    #2
    پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

    اولا باید بگم که delay اصلا دقیق نیست و اینکه برای این کار شما حتما باید از pwm استفاده کنید تا نتیجه ی مطلوب را بگیرید . کاری هم نداره خیلی خیلی ساده است اگر خواستید از pwm استفاده کنید بگید من در خدمتم. :nerd: :nerd:
    اما اگه می خواهید از همین روش استفاده کنید یه خازن 100nf بین خروجی و gnd قرار بدید شاااااااایییییییییید جواب بده
    موفق باشید :nice:
    چيزي را بگو که بتواني بنويسي
    چيزي را بنويس که بتواني امضا کني
    چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

    دیدگاه


      #3
      پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

      نه از خازن نمیخوام استفاده کنم..درواقع نمیخوام قطعه اضافه کنم..با برنامه نویسی میخوام باشه..
      اگه میشه برنامشو بگید چه شکلی pwm رو روی بقیه پورتها شبیه سازی کنم..من برنامه زیر رو برای شبیه سازی pwm روی بقیه پورتها انجام دادم ولی دوباره led شروع به چشمک زدن کرد و اصلا نورش تغیر نکرد..
      include <mega16.h>
      #define xtal 8000000

      void timer0_delay(){
      TCCR0=0x03; // Clock value: 125.000 kHz
      while(!(TIFR & 0x02)); //H1
      TIFR |= 0x02; //H2
      }

      void main(void){
      DDRA=0xff;
      PORTA=0;
      TCNT0=0x00;
      OCR0=0x00;

      while (1){
      timer0_delay();
      PORTB.0=~PORTB.0;
      };
      }

      لطفا برنامشو اگه کسی داره و دقیق کار میکنه بزارید..با C باشه.

      دیدگاه


        #4
        پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

        شما میتونید led را مستقیما به portd.5 (OC1A) و تایمر یک را با یه مد مثلا Ph. correct PWM top=ICR1 راه اندازی کنید . :job:
        چيزي را بگو که بتواني بنويسي
        چيزي را بنويس که بتواني امضا کني
        چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

        دیدگاه


          #5
          پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

          سلام
          دوست عزیز من قبلا این کارو کردم
          http://www.mediafire.com/?rwrc70wtz3d55gl
          این فایلشه با پروتئسش رو پروتئس خوب جواب نمیده اما ببندیش خوبه
          اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
          هيتلر

          دیدگاه


            #6
            پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

            تو برنامه ی آقا سعید تو قسمت while یه delay هست که هرچی اونا کمتر کنید سرعت خاموش و روشن شدن بیشتر می شود .
            موفق باشید :job:
            چيزي را بگو که بتواني بنويسي
            چيزي را بنويس که بتواني امضا کني
            چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

            دیدگاه


              #7
              پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

              ممنون از راهنمایی ولی توی این برنامه که شما گذاشتید محدودیت پایه هست..یعنی ما فقط از 2 تا پایه میکرو میتونیم استفاده کنیم..
              من حدود 18 تا led دارم که میخوام از 18 پورت میکرو استفاده کنم..
              چه شکلی باید این روش pwm رو با برنامه نویسی برای بقیه پورتها بسازم؟

              دیدگاه


                #8
                پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                نوشته اصلی توسط mehran640
                ممنون از راهنمایی ولی توی این برنامه که شما گذاشتید محدودیت پایه هست..یعنی ما فقط از 2 تا پایه میکرو میتونیم استفاده کنیم..
                من حدود 18 تا led دارم که میخوام از 18 پورت میکرو استفاده کنم..
                چه شکلی باید این روش pwm رو با برنامه نویسی برای بقیه پورتها بسازم؟
                میتونی با یه ترانریستور این کارو بکنی
                pwm رو بده به بیس
                اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                هيتلر

                دیدگاه


                  #9
                  پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                  مداری که دارم به این شکل است :
                  18 تا led که 3 تا 3 تا سری شده ( این میشه درایو 1 )
                  18 تا led دیگه که 3 تا 3 تا سری شده ( این میشه درایو 2 )
                  18 تا ledدیگه که 3 تا 3 تا سری شده ( این میشه درایو 3)
                  18 تا led دیگه که 3 تا 3 تا سری شده ( این میشه درایو 4)
                  18 تا ledدیگه که 3 تا 3 تا سری شده ( این میشه درایو 5)

                  حالا هر کدام از دارایو ها با یه tip41 به یکی از پین های میکرو متصل شده.
                  حالا میخوام این آروم آروم روشن شدن led ها برای هر درایو اتفاق بیافتد..
                  .......
                  چیکار باید بکنم؟
                  لطفا راهنمایی کنید...

                  ممنون..

                  دیدگاه


                    #10
                    پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                    نوشته اصلی توسط mehran640
                    مداری که دارم به این شکل است :
                    18 تا led که 3 تا 3 تا سری شده ( این میشه درایو 1 )
                    18 تا led دیگه که 3 تا 3 تا سری شده ( این میشه درایو 2 )
                    18 تا ledدیگه که 3 تا 3 تا سری شده ( این میشه درایو 3)
                    18 تا led دیگه که 3 تا 3 تا سری شده ( این میشه درایو 4)
                    18 تا ledدیگه که 3 تا 3 تا سری شده ( این میشه درایو 5)

                    حالا هر کدام از دارایو ها با یه tip41 به یکی از پین های میکرو متصل شده.
                    حالا میخوام این آروم آروم روشن شدن led ها برای هر درایو اتفاق بیافتد..
                    .......
                    چیکار باید بکنم؟
                    لطفا راهنمایی کنید...

                    ممنون..
                    خوب اگه هر کودومو میخوای به pwm وصل کنی باید میکروتو عوض کنی یدونه بزاری که بیشتر pwm داشته باشه یا اینکه با spi یا i2c میکرو رو 2 تا کنی
                    یه راه دیگم هیت استفاده از and منطقی میشه با یه en هر کودومو روشن کنی اما شدت کمو زیاد شدن نور یکی چون pwm که به and ها میره و بعد به tip41 با هم یکیه اما میشه تو زمانای مختلف هر کودومو که خواستی روشن کنی
                    به زبونه ساده تر میشه هر کودومو تو زمان که دوست داری روشن کنی
                    اما بعد روشن شدن شدت نور با اونی که باهاش and کردی یکیه
                    اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                    هيتلر

                    دیدگاه


                      #11
                      پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                      میخوام درایو 1 ابتدا نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه.بعد درایو 2 نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه.بعد درایو 3 نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه.بعد درایو 4 نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه و به همین ترتیب تا آخر..

                      چیکار باید انجام بدم؟

                      دیدگاه


                        #12
                        پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                        نوشته اصلی توسط mehran640
                        میخوام درایو 1 ابتدا نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه.بعد درایو 2 نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه.بعد درایو 3 نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه.بعد درایو 4 نورش آروم آروم زیاد بشه بعد آروم آروم کم بشه تا خاموش بشه و به همین ترتیب تا آخر..

                        چیکار باید انجام بدم؟
                        میتونی از and استفاده کنی.اما برنامه نویسیش مشکلتر میشه . مشکل برنامه نویسی که نداری؟
                        اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                        هيتلر

                        دیدگاه


                          #13
                          پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                          از multiplxer هم میشه اینجوری یه pwm هم بیشتر نمیخوای
                          اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                          هيتلر

                          دیدگاه


                            #14
                            پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                            :-?

                            شما میتونید به صورت نرم افزاری چیزی حدود 500 تا کانال مجزای PWM تولید کنید!

                            مشکلی از نظر سرعت و... هم ندارید!

                            در ضمن برای کنترل نور LED یک PWM حدود 4 بیت هم کافیه!

                            دیدگاه


                              #15
                              پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی

                              نوشته اصلی توسط حامِد مٌهری
                              :-?

                              شما میتونید به صورت نرم افزاری چیزی حدود 500 تا کانال مجزای PWM تولید کنید!

                              مشکلی از نظر سرعت و... هم ندارید!

                              در ضمن برای کنترل نور LED یک PWM حدود 4 بیت هم کافیه!
                              سلام حامد جان
                              اگه میشه بگو ما هم بدونیم :mrgreen:
                              اگه این روش بشه خیلی عالیه
                              اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                              هيتلر

                              دیدگاه

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