۲۶-فروردین-۱۳۸۹, ۱۸:۴۴:۴۹
سلام
من ميخوام با استفاده از سنسورSRF05 فاصله سنجی کنم ولی چيزه زيادی از اين سنسور بلد نيستم
من اين زير دتاشيت و يه سورس کد که تو اينترنت گير آوردم رو گذشتم اگه کسی فهميد که چجوری اينو مثلاً با مگا 16 استفاده کنم لطف کنه يه توضيحی بده البته روی کد C
--------------------------
من ميدونم که اول بايد يه پالس بفرستم بد پالس اکو رو بگيرم
و بد با استفاده از زمانه اکو و سرعت صوت بگم فاصله چقده
ولی نميدونم اين کارو چه جوری با کد سی انجام بدم
----------------------------
----------------------------
ملاحظات:
من خيلی خنگم لطف کنيد کامل توضيح بديد
لينکی هم که اين زير گذشتم باز اطّلاعاتی بيشتر همراه با سورس کد سی گذشته
ولی گويا واسه PIC زده کد رو
http://www.glacialwanderer.com/robots/sensors/srf05
من ميخوام با استفاده از سنسورSRF05 فاصله سنجی کنم ولی چيزه زيادی از اين سنسور بلد نيستم
من اين زير دتاشيت و يه سورس کد که تو اينترنت گير آوردم رو گذشتم اگه کسی فهميد که چجوری اينو مثلاً با مگا 16 استفاده کنم لطف کنه يه توضيحی بده البته روی کد C
--------------------------
من ميدونم که اول بايد يه پالس بفرستم بد پالس اکو رو بگيرم
و بد با استفاده از زمانه اکو و سرعت صوت بگم فاصله چقده
ولی نميدونم اين کارو چه جوری با کد سی انجام بدم
----------------------------
----------------------------
ملاحظات:
من خيلی خنگم لطف کنيد کامل توضيح بديد
کد php:
#define ENABLE_INT #asm("sei")
#define TRUE 1
#define FALSE 0
#define PORTBDDR 0d11111110
#define TRIGGER PORTD.1
#define ECHO PIND.0
#define LIMITLESS 25000
#define WAIT_FOR_ECHO 1
#define ECHO_MEASURE 2
// Timer 0 output compare interrupt service routine
int mS10 = 0;
int mS = 0;
int sec = 0;
int echomeasure = FALSE;
int echotimer;
int distance = LIMITLESS/58; //divide by 58 to get the distance in cm
//-----
interrupt [TIM0_COMP] void timer0_comp_isr(void)
{
if (echomeasure == WAIT_FOR_ECHO)
{
if (ECHO == 1)
{
echotimer = 0;
echomeasure = ECHO_MEASURE;
}
}
if (echomeasure == ECHO_MEASURE)
{
if (ECHO == 0)
{
distance = (echotimer*100)/58; //How to get the time i uS and then in cm??
echomeasure = FALSE;
}
else
echotimer++;
}
if (++mS10 == 10)
{
mS10 = 0;
if ((mS % 50) == 0) // How many times measureing are starting per sec.?
{
TRIGGER = 1;
echotimer = 0;
echomeasure = WAIT_FOR_ECHO;
delay_us(10);
TRIGGER = 0;
}
if (++mS == 1000)
{
mS = 0;
sec++;
}
}
}
لينکی هم که اين زير گذشتم باز اطّلاعاتی بيشتر همراه با سورس کد سی گذشته
ولی گويا واسه PIC زده کد رو
http://www.glacialwanderer.com/robots/sensors/srf05