سلام
برای یک پروژه سعی دارم از یک سنسور مادون قرمز استفاده کنم
و روشی رو برای حذف نور محیط استفاده کردم که طبق اون یک بار گیرنده مادون قرمز با روشن بودن فرستنده مادون قرمز مقدار رو محاسبه میکنه و بار دیگه با خاموش بودن فرستنده محاسبه میکنه و تفاوت اون رو ثبت میکنه..
وقتی این برنامه رو با بیسیک نوشتم کاملا جواب داد و مشکلی نداشت.
اما همون رو با سی نوشتم ،، دچار مشکل شد و دیگه مقدار تفاوت بین دو حالت روشن و خاموش رو احساس نکرد..(در ال سی دی مقدار 0 نشان داده شد)
کسی در این مورد میتونه راهنمایی کنه؟؟؟
بیسیک:
Main:
Mcount = 0
Miangin2 = 0
While Mcount < 200
''''''''&# 039;''''''' 9;'''''''' ''''''sensor 2
Portb.1 = 1
After2 = Getadc(0)
Portb.1 = 0
Before2 = Getadc(0)
Pure2 = Before2 - After2
Pure2 = Abs(pure2)
Miangin2 = Miangin2 + Pure2
Incr Mcount
Wend
Miangin2 = Miangin2 / 200
Cls
Locate 1 , 1
Lcd Miangin2
Waitms 25
Goto Main
سی:
int main(void)
{
DDRB=0x03;
lcdInit();
ADCSRA|=(1<<ADSC);
adc_init();
while(1)
{
d=0;
sh=0;
while (sh<200){
sh++;
while (!(ADCSRA&(1<<ADIF)));
PORTB=0x02;
a=ADCW;
PORTB=0x00;
b=ADCW;
c=b-a;
c=abs(c);
d=+c;
}
d=(d/200);
lcdClear();
lcdGotoxy(1,1);
itoa(d,buffer,10);
lcdPuts(buffer);
_delay_ms(25);
}
}
برای یک پروژه سعی دارم از یک سنسور مادون قرمز استفاده کنم
و روشی رو برای حذف نور محیط استفاده کردم که طبق اون یک بار گیرنده مادون قرمز با روشن بودن فرستنده مادون قرمز مقدار رو محاسبه میکنه و بار دیگه با خاموش بودن فرستنده محاسبه میکنه و تفاوت اون رو ثبت میکنه..
وقتی این برنامه رو با بیسیک نوشتم کاملا جواب داد و مشکلی نداشت.
اما همون رو با سی نوشتم ،، دچار مشکل شد و دیگه مقدار تفاوت بین دو حالت روشن و خاموش رو احساس نکرد..(در ال سی دی مقدار 0 نشان داده شد)
کسی در این مورد میتونه راهنمایی کنه؟؟؟
بیسیک:
Main:
Mcount = 0
Miangin2 = 0
While Mcount < 200
''''''''&# 039;''''''' 9;'''''''' ''''''sensor 2
Portb.1 = 1
After2 = Getadc(0)
Portb.1 = 0
Before2 = Getadc(0)
Pure2 = Before2 - After2
Pure2 = Abs(pure2)
Miangin2 = Miangin2 + Pure2
Incr Mcount
Wend
Miangin2 = Miangin2 / 200
Cls
Locate 1 , 1
Lcd Miangin2
Waitms 25
Goto Main
سی:
int main(void)
{
DDRB=0x03;
lcdInit();
ADCSRA|=(1<<ADSC);
adc_init();
while(1)
{
d=0;
sh=0;
while (sh<200){
sh++;
while (!(ADCSRA&(1<<ADIF)));
PORTB=0x02;
a=ADCW;
PORTB=0x00;
b=ADCW;
c=b-a;
c=abs(c);
d=+c;
}
d=(d/200);
lcdClear();
lcdGotoxy(1,1);
itoa(d,buffer,10);
lcdPuts(buffer);
_delay_ms(25);
}
}
دیدگاه