برنامه مربوط به سنسور SRF05
سلام.من دارم يك ربات مين ياب درست ميكنم،كه از سنسور SRF05 براي اون استفاده كردم.حالا براي برنامه نويسي اين سنسور گير كردم!در ضمن ميخوام برنامه به زبان سي باشه!كسي ميتونه توبرنامه نويسيش بهم كمك كنه؟اگه نمونه كد هم داريد برام خواهشن بفرستيد.فقط دوستان من خيلي خيلي عجله دارم!!خواهش ميكنم يكي زود جوابمو بده!!ممنون.
نقل قول: برنامه مربوط به سنسور SRF05
دوست عزیز اگر یکی از تایمرهای 16بیتی میکرو آزاد باشد، با استفاده از Input Capture میکرو میتوانید براحتی اینکاررا انجام دهید کافیست تنظیمات آن را انجام داده و کدهای زیر را به برنامه اضافه کنید . دراین مثال از تایمر1 استفاده شده است. البته خروجی ماژول مربوطه باید به پایه IC1 میکرو وصل شود.
int measure; //SRF05 Result in cm
//*********************************
// Speed of sound in 20 degree =34000 cm/s
// (1/34000) * 1000000 = 29.4
// if Timer1_Period =2 us , scale_factor= 29.4 * 2 = 59
flash int scale_factor = 59 ; // scale_factor = 29.4 * Timer1_Period(uSecond)
//*********************************
interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{ int t_meas;
if (TCCR1B & 0x40) { //if Start Edge
TCCR1B &= ~(0x40); //Change trigger edge
TCNT1 = 0; //Initialize Timer1
}
else { //if End Edge
TCCR1B |= 0x40; //Change trigger edge
t_meas = (ICR1H << 8) | ICR1L ;
measure = (int)(t_meas / scale_factor); //Calculate distance
}
}
نقل قول: برنامه مربوط به سنسور SRF05
ممنون دوست عزيز.فقط يك سوال ديگه هم دارم؟
ميكرو من ATmega128 است،اين دستورات روش جواب ميده؟
نقل قول: برنامه مربوط به سنسور SRF05
نقل قول:
ميكرو من ATmega128 است،اين دستورات روش جواب ميده؟
باتوجه به راهنمای ماژول SRF05 به احتمال خیلی زیاد مشکلی نخواهدداشت . فقط بایستی اینتراپت ICP تایمر موردنظر فعال شده باشد . همچنین ارسال پالس تحریک ماژول میتواند در یکی ازوقفه های تایمرها در فواصل زمانی باتوجه به اقتضای پروژه بایستی انجام شود (با عرض حداقل 10میکروثانیه )
نقل قول: برنامه مربوط به سنسور SRF05
نقل قول: برنامه مربوط به سنسور SRF05
سلام داداش دمت گرم من از روش capture استفاده نکردم میشه یه اموزش معرفی کنی برای کار باهاش ؟؟؟؟؟
من ازتایمر 1 برای اندازه گیری زمان سطح 1 پالس استفاده کردم
ولی هرکاری میکنم یک عدد ثابت بمن نشون میدهد
ااز وقفه خارجی 1 در atmega32l استفاده کردم
به این صورت که با دیدن لبه بالا رونده تایمر 1 از اول شروع به کار کنه وبا دیدن لبه پایین رونده مقدار تایمر1 بخوانه وبعد اون 0کنه ولی اصلا جواب نداد
باید چیکار کنم.........................
نقل قول: برنامه مربوط به سنسور SRF05
نقل قول:
نوشته شده توسط
h.torabi
سلام داداش دمت گرم من از روش capture استفاده نکردم میشه یه اموزش معرفی کنی برای کار باهاش ؟؟؟؟؟
من ازتایمر 1 برای اندازه گیری زمان سطح 1 پالس استفاده کردم
ولی هرکاری میکنم یک عدد ثابت بمن نشون میدهد
ااز وقفه خارجی 1 در atmega32l استفاده کردم
به این صورت که با دیدن لبه بالا رونده تایمر 1 از اول شروع به کار کنه وبا دیدن لبه پایین رونده مقدار تایمر1 بخوانه وبعد اون 0کنه ولی اصلا جواب نداد
باید چیکار کنم.........................
ممکنه دوره کاری تایمر خیلی کوتاه باشد . از تقسیم فرکانس بزرگتر و تایمر 16 بیتی استفاده کنید