پاسخ : کنترل شدت نور LED با استفاده از برنامه نویسی
آقا من این مدار رو بستم و برنامه نویسیشم اجرا کردم..
دقیقا کار میکنه و جواب میده.ولی یه مشکلی هست.توی این برنامه نویسی led تقریبا با سرعت نسبتا زیاد نورش آروم آروم زیاد میشه.من میخوام خیلی آروم آروم نورش زیاد بشه..توی قسمت delay به جای 1ms نوشتم 2 دیدم خیلی تاثیری نداره و اگه حتی مقدار delay رو حدود 5ms بزاریم ledآکاملا روشن و ثابت میمونه.
برعکسشم انجام دادم و حدود 500us هم گزاشتم ولی دیدم باسرعت بسیار بالا چشمک میزنه..
حالا چیکار کنم؟
فکر کنم یه جا تو برنامه نویسیش مشکل هست..میخوام خیلی آروم آروم آروم led روشن بشه..
لطفا راهنمایی کنید..
اینم برنامه که دوست عزیز Saeed Saeb زحمت کشیده بود برام گذاشته بود..
میخوام خیلی آروم آروم آروم led روشن بشه..
لطفا راهنمایی کنید..
#include <mega16.h>
#include <delay.h>
void main(void)
{
unsigned int s;
unsigned int p;
unsigned int w;
unsigned int a;
unsigned int q;
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x30;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0xA3;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
while (1)
{
for(s=0;s<255;s++)
{
PORTC=0x01;
delay_ms(1);
OCR1A=s;
}
for(p=0;p<255;p++)
{
PORTC=0x02;
delay_ms(1);
OCR1A=p;
}
for(w=0;w<255;w++)
{
PORTC=0x04;
delay_ms(1);
OCR1A=w;
}
}
}
آقا من این مدار رو بستم و برنامه نویسیشم اجرا کردم..
دقیقا کار میکنه و جواب میده.ولی یه مشکلی هست.توی این برنامه نویسی led تقریبا با سرعت نسبتا زیاد نورش آروم آروم زیاد میشه.من میخوام خیلی آروم آروم نورش زیاد بشه..توی قسمت delay به جای 1ms نوشتم 2 دیدم خیلی تاثیری نداره و اگه حتی مقدار delay رو حدود 5ms بزاریم ledآکاملا روشن و ثابت میمونه.
برعکسشم انجام دادم و حدود 500us هم گزاشتم ولی دیدم باسرعت بسیار بالا چشمک میزنه..
حالا چیکار کنم؟
فکر کنم یه جا تو برنامه نویسیش مشکل هست..میخوام خیلی آروم آروم آروم led روشن بشه..
لطفا راهنمایی کنید..
اینم برنامه که دوست عزیز Saeed Saeb زحمت کشیده بود برام گذاشته بود..
میخوام خیلی آروم آروم آروم led روشن بشه..
لطفا راهنمایی کنید..
#include <mega16.h>
#include <delay.h>
void main(void)
{
unsigned int s;
unsigned int p;
unsigned int w;
unsigned int a;
unsigned int q;
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x30;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0xA3;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
while (1)
{
for(s=0;s<255;s++)
{
PORTC=0x01;
delay_ms(1);
OCR1A=s;
}
for(p=0;p<255;p++)
{
PORTC=0x02;
delay_ms(1);
OCR1A=p;
}
for(w=0;w<255;w++)
{
PORTC=0x04;
delay_ms(1);
OCR1A=w;
}
}
}
دیدگاه