امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
(سؤال)راه اندازی سنسور SRF05 با AVR
نویسنده پیام
b3hrouz آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 8
( 0 تشکر در 0 ارسال )
ارسال: #1
Question  (سؤال)راه اندازی سنسور SRF05 با AVR
سلام
من ميخوام با استفاده از سنسور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_COMPvoid 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


فایل‌(های) پیوست شده
.pdf   SRF05.pdf (اندازه: 155.91 KB / تعداد دفعات دریافت: 235)
(آخرین ویرایش در این ارسال: ۲۶-فروردین-۱۳۸۹, ۱۸:۵۲:۵۵، توسط b3hrouz.)
۲۶-فروردین-۱۳۸۹, ۱۸:۴۴:۴۹
ارسال‌ها
پاسخ
b3hrouz آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 8
( 0 تشکر در 0 ارسال )
ارسال: #2
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
دوستان و خرد ورزان عزيز بازم يه سرچ کردم و يه مثال گير اوردم که
اين کار رو باSRF04 کرده بود و با توجه به اينکه SRF04بهSRF05 دقيقاً در مد 1 يکسان عمل ميکنن يکی بياد راهنمايی بده که چجوری کدشو واسه مگا 16 و LCD بزنم

من الان ميدونم که مسئله حال شدس ولی ميخوام يه نابغه بياد راهنمايی بده
يه وقت نزنم بسوزنمش آخه کلّی پول رفته پاش


فایل‌(های) پیوست شده
.pdf   SRF04andLCD.pdf (اندازه: 485.2 KB / تعداد دفعات دریافت: 296)
۲۷-فروردین-۱۳۸۹, ۰۸:۳۰:۵۲
ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #3
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
پایه ارسال امواج رو به یکی از خروجی های میکرو وصل می کنی. مثلا A0
این کد 30 میکرو ثانیه پایه رو 1 میکنه. برای اینکه امواج ارسال بشه.
کد:
PORTA.0 = 1;
delay_us(30);
PORTA.0 = 0;

بعد از ارسال امواج باید تایمر میکرو فعال کنی. تایمر 1 که 16 بیتی هست بهتره. بیشتر می شمره ...
کد:
TCCR1B = 0x01;
do{
}while (PINA.1);
پایه دریافت امواج به A1 وصل شده. اگه موج دریافت بشه A1 صفر میشه و از حلقه بیرون میاد.
بعد از دریافت باید تایمر رو غیرفعال کنی و مقدارش رو بخونی...
کد:
TCCR1A = 0x00;
itoa(TCNT1,str);
lcd_puts(str);

خودم تا جالا نبستم! بعد از خوندن تایمر باید زمان رو محاسبه کنی و ضربدر سرعت صوت و ... از این کارا کنی تا فاصله بدست بیاد.
یه سری ریزه کاری های دیگه هم داره. تنظیم وقفه سر ریز تایمر (که ّاگه موج دریافت نشد...)...
فعلا ببند ببین چی میشه...

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۷-فروردین-۱۳۸۹, ۱۰:۳۳:۱۳، توسط محمد حسینی.)
۲۷-فروردین-۱۳۸۹, ۱۰:۳۱:۵۵
ارسال‌ها
پاسخ
تشکر شده توسط : b3hrouz, t3r!p3000, k1_elo0
b3hrouz آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 8
( 0 تشکر در 0 ارسال )
ارسال: #4
Question  RE: (سؤال)راه اندازی سنسور SRF05 با AVR
من الان بايد از چه فرکانسی استفاده کنم که اين 30 ميکرو درست در بياد؟
کريستال خارجی بايد بزارم؟
شما ميگی موج دريافت بشه پايه صفر ميشه ولی تو ديتا شيت نوشته يک؟
۲۷-فروردین-۱۳۸۹, ۱۰:۵۱:۱۸
ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #5
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
نقل قول: من الان بايد از چه فرکانسی استفاده کنم که اين 30 ميکرو درست در بياد؟
کريستال خارجی بايد بزارم؟
باید کریستال میکرو درست معرفی کنی. برای avr اگه از کریستال خارجی استفاده نکردی و کریستال داخلی هم تغییر ندادی 1 مگ معرفی کن.
نقل قول: شما ميگی موج دريافت بشه پايه صفر ميشه ولی تو ديتا شيت نوشته يک؟
خب بستگی به ماژول داره. هرچی تو دیتا شیت نوشته درسته.

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۷-فروردین-۱۳۸۹, ۱۷:۱۴:۲۳، توسط محمد حسینی.)
۲۷-فروردین-۱۳۸۹, ۱۷:۱۲:۰۷
ارسال‌ها
پاسخ
تشکر شده توسط : b3hrouz, t3r!p3000
b3hrouz آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 8
( 0 تشکر در 0 ارسال )
ارسال: #6
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
من يه مسئله اي رو درک نميکنم وقتی من از 1 مگ استفاده کنم خود ميکرو ميفهمه که چه جوری اون 10us رو درست کنه
چون بايد اون 10us که ميکرو داره توليد ميکنه با واقعيت بخونه ديگه ,نه؟

اگه خوده ميکرو ميفهمه پس اصلاً من هيچ فرکانسی تعريف نکنم بهتره ديگه
همون 1 مگ بمونه نه؟
۲۷-فروردین-۱۳۸۹, ۱۷:۲۲:۳۰
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #7
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
واسه همین فرکانس رو به کامپایلر تعیین می کنیم !

کامپایلر با توجه به زمان پالس میکرو وتاخیر تو برنامه حلقه ای می سازه که زمان انجامش اونقدر طول می کشه و پالس دریافت می کنه تا با زمان تو برنامه یکی بشه !

نمی دونم مفهوم رو گفتم یا نه !

تو میکروپروسسور ها چجوری تاخیر درست می کردین !
حالا خود کامپایلر همون کارها رو می کنه !!!

اگه شما فرکانس رو دو برابر معلوم به کامپایلر تعیین کرده باشین مدت زمان انجام تاخیرها نصف میشه !!

و میکرو اگه فیوزبیتش رو عوض نکرده باشین فابریکی رو یک مگ داخلی هستش !!!
۲۷-فروردین-۱۳۸۹, ۱۷:۳۲:۴۵
ارسال‌ها
پاسخ
تشکر شده توسط : b3hrouz, محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #8
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
اگه از کدویزارد استفاده نمی کنی حتما باید از Porject - configure قسمت c compiler مقدار clock رو تنظیم کنی. چون مثل بیسکام، تو کد برنامه معرفی نمیشه، خیلی ها به این موضوع دقت نمی کنن.
کامپایلر باید بفهمه چه حلقه ای برای ایجاد تاخیر بسازه. میکرو که چیزی حالیش نیست!!Biggrin

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۷-فروردین-۱۳۸۹, ۱۸:۰۳:۱۵
ارسال‌ها
پاسخ
تشکر شده توسط : b3hrouz, t3r!p3000
b3hrouz آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 8
( 0 تشکر در 0 ارسال )
ارسال: #9
Question  RE: (سؤال)راه اندازی سنسور SRF05 با AVR
گرفتم!!!!

آقا يکی بياد يه حالی بده اين کدی که واسهSRF04 تو PDF -srf04andlcd گذاشتم که ماله مگا 128 هست رو اديت کنه يه LCDبزنه تنگش و ماله مگا 16 بکنه يه راهنمايی هم بده ما چه جوری اينو ران کنيم کد تو صفحه 7 از ebook دوم(ُSRF04andLCD) هست

راستی SRF05همون SRF04هستش البته تو مد 1


خير از جوونيد ببينی جوون همه چی حاضره هاا ولی اين کد رو من ميترسم خودم تغيير بدم اشتباه کار کنم اينSRF 05 نازنين بسوزه داغش رو دلم بمونه


با تشکر خیلی فراوان
۲۷-فروردین-۱۳۸۹, ۱۸:۲۶:۰۰
ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #10
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
نگران نباش. شزط می بندم نمی تونی با کدنویسی بسوزونیش! Biggrin من تضمین می کنم!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۷-فروردین-۱۳۸۹, ۱۸:۴۶:۳۰
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, b3hrouz
bahmannaghavi آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 0
( 4 تشکر در 1 ارسال )
ارسال: #11
RE: (سؤال)راه اندازی سنسور SRF05 با AVR
اول با یک پالس با پهنای 20 میکرو ثانیه پایه تریگر را فعال کن بعد منتظر باش تا پایه اکو یک بشه تایمر 16 بیتی را روشن کن منتظر باش تا پایه اکو صفر بشه اگه زمان بالاتر 30 میلی ثانیه مانع نیست اگه کمتر 24 میلی ثانیه زمان را بر 2 تقسیم کن ضرب کن در 330 m/s مثل 5میلی ثانیه * 330 برابر 0.165m
۰۷-اردیبهشت-۱۳۸۹, ۲۱:۴۷:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : b3hrouz, t3r!p3000, محمد حسینی, k1_elo0


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [پروژه] راه اندازی آیسی فلش w25qxx Ambassador 0 1,154 ۲۰-مرداد-۱۳۹۹, ۱۸:۲۲:۵۶
آخرین ارسال: Ambassador
  معرفی یک سنسور جریان برای اتصال به میکرو ؟ mega16 6 1,738 ۲۷-اردیبهشت-۱۳۹۹, ۱۷:۳۸:۳۲
آخرین ارسال: Ambassador
  اتصال سنسور lm35 در فاصله 12 متری به میکرو ؟ mega16 3 1,643 ۲۷-بهمن-۱۳۹۸, ۱۸:۴۳:۲۸
آخرین ارسال: aKaReZa75
  برنامه راه اندازی رله از طریق پورت شبکه (enc28j60) haisam 15 14,252 ۲۰-آبان-۱۳۹۷, ۰۹:۵۲:۵۹
آخرین ارسال: ali3000aab
  راه اندازی ماژول gy-955 با AVR و کدویژن hadikh73 6 7,689 ۰۴-شهریور-۱۳۹۷, ۱۲:۰۸:۲۱
آخرین ارسال: hadikh73
  [سوال] راه اندازی LCD با ATMEGA16 or 32 parviz2012 11 28,343 ۱۱-مرداد-۱۳۹۷, ۰۵:۵۱:۰۵
آخرین ارسال: ninechip
  ربات مسیریاب ۲۴ سنسور Erfanbeigi 3 2,650 ۰۷-آبان-۱۳۹۶, ۰۰:۴۲:۴۱
آخرین ارسال: 1نفر
  راه اندازی سنسور sht11 blackstar368 10 10,511 ۲۶-دى-۱۳۹۵, ۱۲:۲۲:۴۷
آخرین ارسال: ehsan1082
Cool مشکل در راه اندازی ال سی دی گرافیکی sed winnuke 0 2,411 ۱۹-مهر-۱۳۹۵, ۱۳:۱۱:۳۰
آخرین ارسال: winnuke
  راه اندازی tdc-gp2 mostafa-m 0 2,114 ۰۸-مهر-۱۳۹۵, ۱۹:۵۸:۰۰
آخرین ارسال: mostafa-m

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 6 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS