اطلاعیه

Collapse
No announcement yet.

درخواست کنترل نور led

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

    درخواست کنترل نور led

    سلام خدمت دوستان و اساتید محترم
    من به مداری احتیاح دارم که یه تعداد پاور led مثلا ساعت 8صبح روشن بشه و ساعت6 عصر خاموش شه.
    ولی مهتر اینه که آروم آروم روشن شه و همینطور آروم خاموش بشه.مثلا طی 20دقیقه به حداکثر نورش برسه و شب هم برعکس طی 20 دقیقه خاموش شه.
    اگه دوستان همچین برنامه ای یا مشابه این داشته باشین خیلی ممنون میشم اینجا قرار بدین.
    مرسی

    #2
    پاسخ : درخواست کنترل نور led

    میخوای با روشن و خاموش شدن هوا روشن بشه یا سر ساعت؟
    [glow=red,2,300]تاپیک های ایجاد شده[/glow]

    دیدگاه


      #3
      پاسخ : درخواست کنترل نور led

      سلام،مرسی از جوابتون
      میخوام ساعتی باشه.8صبح تا6عصر
      ممنون

      دیدگاه


        #4
        پاسخ : درخواست کنترل نور led

        با میکرو باشه خوبه؟
        اینجوری
        adc رو بخون بعد با توجه به نور یه pwm خروجی بده

        دیدگاه


          #5
          پاسخ : درخواست کنترل نور led

          اگه میخوای دقیق باشه باید از آی سی ساعت استفاده کنی
          با میکرو ساعت میخونی و بعد برسی میکنی که بین 8 تا 6 بود روشن بشه
          برای روشن شدن هم باید از PWM استفاده کنی تا کم کم بتونی نور LED زیاد کنی
          حالا بازم سوال داری دقیقتر بپرس تا راهنمایی کنیم
          [glow=red,2,300]تاپیک های ایجاد شده[/glow]

          دیدگاه


            #6
            پاسخ : درخواست کنترل نور led

            نوشته اصلی توسط reza javahery
            با میکرو باشه خوبه؟
            اینجوری
            adc رو بخون بعد با توجه به نور یه pwm خروجی بده
            بابا یکی این ADMIN را تشویق کنه :applause: خوب جواب میده
            با تشکر از راهنمای شما دوست گرامی
            کمتر سخن گویم
            بیشتر عمل کنیم

            دیدگاه


              #7
              پاسخ : درخواست کنترل نور led






              دانلود


              سورس برنامه به زبان میکروسی



              کد:
              sbit LCD_RS at PORTD0_bit;
              sbit LCD_EN at PORTD1_bit;
              sbit LCD_D4 at PORTD4_bit;
              sbit LCD_D5 at PORTD5_bit;
              sbit LCD_D6 at PORTD6_bit;
              sbit LCD_D7 at PORTD7_bit;
              
              
              sbit LCD_RS_Direction at DDD0_bit;
              sbit LCD_EN_Direction at DDD1_bit;
              sbit LCD_D4_Direction at DDD4_bit;
              sbit LCD_D5_Direction at DDD5_bit;
              sbit LCD_D6_Direction at DDD6_bit;
              sbit LCD_D7_Direction at DDD7_bit;
              
              
              char _flag = 0;
              char _seconds, _hours, _minutes, _lastminutes;
              char current_duty = 0;
              
              
              char message[3]="St";
              
              
              void read_time()
              {
                 TWI_Start();
                 TWI_Write(0xD0);
                 TWI_Write(0);
                 TWI_Start();
                 TWI_Write(0xD1);
                 _seconds = bcd2dec(TWI_Read(1) & 0x7F);
                 _minutes = bcd2dec(TWI_Read(1) & 0x7F);
                 _hours =  bcd2dec(TWI_Read(0) & 0x3F);
                 TWI_Stop();
              }
              
              
              void chang_pwm_up()
              {
                if(_flag = 0)
                {
                 current_duty += 25;
                 PWM2_Set_Duty(current_duty);
                 _flag = 1;
                }
              }
              void chang_pwm_down()
              {
                if(_flag = 0)
                {
                 current_duty -= 25;
                 PWM2_Set_Duty(current_duty);
                 _flag = 1;
                }
              }
              
              
              void main()
              { 
               TWI_Init(100000);
               TWI_Start();
               TWI_Write(0xD0);
               TWI_Write(0x07);
               TWI_Write(0x80);
               TWI_Stop();
               
               PWM2_Init(_PWM2_FAST_MODE, _PWM2_PRESCALER_8, _PWM2_NON_INVERTED, current_duty);
               DDB3_bit = 1;
               
               DDD2_bit = 0;
               
               Lcd_Init();
               Lcd_Cmd(_LCD_CLEAR);
               Lcd_Cmd(_LCD_CURSOR_OFF);
               Lcd_Out(1,6,message);
               Delay_ms(200);
               
               while(1) 
               {
                 read_time();
                 
                 Lcd_Cmd(_LCD_CLEAR);
                 ByteToStr(_hours,message);
                 Lcd_Out(1,5,message);
                 ByteToStr(_minutes,message);
                 Lcd_Out(1,8,message);
                 Lcd_Chr(1,8,':');
                 
                 if (_hours >= 14 && _hours <15)
                 {
                  if (_lastminutes != _minutes)
                  {
                    _lastminutes = _minutes;
                    _flag = 0;
                  }
                  switch (_minutes)
                  {
                    case 0:case 1:  chang_pwm_up();
                    case 2:case 3:  chang_pwm_up();
                    case 4:case 5:  chang_pwm_up();
                    case 6:case 7:  chang_pwm_up();
                    case 8:case 9:  chang_pwm_up();
                    case 10:case 11: chang_pwm_up();
                    case 12:case 13: chang_pwm_up();
                    case 14:case 15: chang_pwm_up();
                    case 16:case 17: chang_pwm_up();
                    case 18:case 19: chang_pwm_up();
                    case 20:case 21: chang_pwm_up();
                    default:  PWM2_Set_Duty(255);
                  }
                 }   
                 
                 if (_hours >= 18 && _hours < 19)
                 {
                  if (_lastminutes != _minutes)
                  {
                    _lastminutes = _minutes;
                    _flag = 0;
                  }
                  switch (_minutes)
                  {
                    case 0:case 1:  chang_pwm_down();
                    case 2:case 3:  chang_pwm_down();
                    case 4:case 5:  chang_pwm_down();
                    case 6:case 7:  chang_pwm_down();
                    case 8:case 9:  chang_pwm_down();
                    case 10:case 11: chang_pwm_down();
                    case 12:case 13: chang_pwm_down();
                    case 14:case 15: chang_pwm_down();
                    case 16:case 17: chang_pwm_down();
                    case 18:case 19: chang_pwm_down();
                    case 20:case 21: chang_pwm_down();
                    default:  PWM2_Set_Duty(0);
                  }
                 }
                 Delay_ms(900);
               }
              }


              [glow=red,2,300]تاپیک های ایجاد شده[/glow]

              دیدگاه


                #8
                پاسخ : درخواست کنترل نور led

                سلام دوستان .مرسی از راهنمایی هاتون
                و درود بر ادمین عزیز
                و تشکر ویژه بخاطر زحمتی که کشیدین و وقتی که گذاشتین
                . :applause:
                حسابی شرمنده شما شدیم
                بعد مونتاژ و تست نهایی نتیجه رو اینجا اعلام میکنم.
                ممنون از همه
                مرسی

                دیدگاه

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