ايران ويج

نسخه‌ی کامل: ماژول اولتراسونیک SRF02
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11
مهندس برنامه کاملتو بذار !

منظورم باوود ماژول فوق باید چن باشه ؟؟؟
سلام
اینم برنامه ای که با یکی ازش جواب گرفتم و منم برای 5تا ماژول بهش نیاز دارم و بلد نیستم چیکار کنم اگه میشه این سورسو تکمیل کنین
ممنون

$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = _
Portb.4 , E = Portb.0 , Rs = Portb.5
Config Lcd = 16 * 2
Dim A As Byte
Dim B As Byte
Dim C As Word

Enable Interrupts

Cursor Off
Cls

Do

Printbin 0
Waitms 50
Printbin 84

A = Waitkey()
B = Waitkey()

C = A * 256
C = C + B


Locate 1 , 1 : Lcd "Range1=" : Lcd C : Lcd "Cm "

End If

Loop

End
این واسه اینکه دو تا وصل کنی !

کد php:
$regfile "m8def.dat" $crystal 12000000 $baud 9600

Config Lcdpin 
Pin Db4 Portb.1 Db5 Portb.2 Db6 Portb.3 Db7 Portb.4 Portb.0 Rs Portb.5
Config Lcd 
16 Cursor Off Cls

Dim A 
As Byte As Byte As Word

Enable Interrupts

Open 
"comd.3:9600,8,n,1" For Output As #1
Open "comd.2:9600,8,n,1" For Input As #2


Do

   
Printbin 0
   Waitms 50
   Printbin 84

   A 
Waitkey()
   
Waitkey()

   
256
   C 
B

   Home 
Lcd "Range1=" Lcd C Lcd "Cm   "


   
Printbin #1 , 0
   
Waitms 50
   Printbin 
#1 , 84

   
Waitkey(#2)
   
Waitkey(#2)

   
256
   C 
B

   Home L 
Lcd "Range2=" Lcd C Lcd "Cm   "

Loop 

فکر کنم روال کار رو متوجه بشی !
دیگه پنج تا رو خودت تعمیم بده !!!
سلام
دستت درد نکنه
دوستان سلام
ميخواستم ببينم سخت افزار را بايد چجوري وصل كرد ؟
فقط پورت سريال و تغذيه را وصل كنم حله ؟
اين دستور open را ميشه بيشتر توضيح بدين ؟
من ميخوام از 3 تا srf02 يا بيشتر استفاده كنم . تازه كار هم هستم در باره برنامه بسكام ممنون ميشم اگه توضيح كاملي بهم بدين
فقط پورت سریال و تغذیه کافیه !

open پورت سریال جانی واست میاره !
البته این دستور کارهای زیادی می کنه ولی استفاده ما اینجا ازش اینه !!!

برنامه قبل من رو ببینی روالش رو متوجه میشی !
(۲۷-آبان-۱۳۸۹, ۰۰:۱۶:۵۱)Gawky نوشته است: [ -> ]فقط پورت سریال و تغذیه کافیه !

open پورت سریال جانی واست میاره !
البته این دستور کارهای زیادی می کنه ولی استفاده ما اینجا ازش اینه !!!

برنامه قبل من رو ببینی روالش رو متوجه میشی !


دستت درد نكنه برنامه را كمي متوجه شدم .
حالا 1 چيزي خروجي اين ماژول به چه صورته ؟ يعني چجوري خروجي را برميگردونه تا بتونيم بر اساس اون خروجي برنامه 1 عمل ديگه را بهش بديم ؟
متوجه شدم بر اساس سانتي متر هست خروجيش ، يعني اكه 1 شئ در 10 سانتي متري اين ماژول ظاهر بشه عدد 10 را برميگردونه به ميكرو كه يعني 1 جسم با من 10 سانت فاصله داره ؟

ببين من اين قسمت برنامه را يكمي قاطي كردم اگه اشكال نداره برام توضيح ميدي ؟
کد:
Printbin 0
Waitms 50
Printbin 84

A = Waitkey()
B = Waitkey()

C = A * 256
C = C + B

Home : Lcd "Range1=" : Lcd C : Lcd "Cm "


Printbin #1 , 0
Waitms 50
Printbin #1 , 84

A = Waitkey(#2)
B = Waitkey(#2)

C = A * 256
C = C + B

Home L : Lcd "Range2=" : Lcd C : Lcd "Cm "

توي خط اول امدي ادرس ماژول اول را دادي بعد گفتي به صورت سانتي متر بخونه بعد مقدار هايي را كه پورت سريال برميگردونه توي متغير a و b ذخيره كن درسته ؟ اون عمليات ضرب و جمع را كه انجام دادي كه بعد توي متغير c ذخبره كردي براي چيه ؟
توي قسمت بعد امدي ادرس ماژول دوم را 1 دادي ؟ قسمت دوم را اگه توضيح مختصري بدي ممنونت ميشم
مهندس ما 16 بیات دریافت کردیم که فاصله بر هست سانتی متر هستش !
یعنی d0 تا d15
هشت بیت بالا تو یه متغیر و هشت بیت پایین هم تو یه متغیر دیگه ذخیره شده !

ضرب در 256 یعنی هشت بار شیفت به چپ برای اینکه بیت ها سرجاش خودشون باشه و با بین های پایین بعدش جمع شده و نشون داده میشه !!!

مثلا واسه 300 سانتی متر دیتای زیر دریافت میشه !

0000000100101100

که البته در دو بایت جدا ارسال میشه !

واسه شروع این بایت ارسال شده
00000001

و بعدش این :
00101100

که خوب با این دستوران این دو تا کنار هم می ذاریم :

که بایت بالا تو a و بایت پایین تو B هستش !!

کد php:
256



چون پورت سریال جانبی استفاده کردیم باید واسش یه ادرس تعیین کنیم که تو برنامه نشون بدیم می خوایم به اون آدرس دیتا بفرستیم یا بگیریم !!
ممنون دستت درد نكنه فهميدم.
کد php:
Printbin #1 , 0
   
Waitms 50
   Printbin 
#1 , 84

   
Waitkey(#2)
   
Waitkey(#2)

   
256
   C 


توي خط اول برنامه منظورت از #1 همون ادرس دوم سنسور دومي هست يعني ادرس دوم بايد جايگزين اين عدد بشه يا اين عدد همون ادرس هست ؟‌
( ببخشيد اگه گيراييم يكم پائين )
خوب آدرس ارسال و دریافت فرق داره !

من 1 رو واسه ارسال و 2 رو واسه دریافت در نظر گرفتم !

کد php:
Open "comd.3:9600,8,n,1" For Output As #1
Open "comd.2:9600,8,n,1" For Input As #2 
(۲۷-آبان-۱۳۸۹, ۱۷:۱۵:۳۶)Gawky نوشته است: [ -> ]خوب آدرس ارسال و دریافت فرق داره !

من 1 رو واسه ارسال و 2 رو واسه دریافت در نظر گرفتم !

کد php:
Open "comd.3:9600,8,n,1" For Output As #1
Open "comd.2:9600,8,n,1" For Input As #2 

اره عزيز اين را فهميدم .
مگه شما نميگي ادرس پيش فرض ماژول هاي srf02 ها 0 هست و اول بايد به اونها 1 ادرس اختصاص بدي ؟ با اين دستوري كه گفته بودي ؟
printbin 0
printbin 160
printbin 0
printbin 170
printbin 0
printbin 165
printbin 5

اينا همون دستوراتي هستن كه گفتي اگه بخوام ادرس يك ماژول را از صفر به 5 تغيير بديم .

خب حالا منظوره من اينه كه اين دو تا سنسوري كه گذاشتي از 1 ادرس خونده ميشن ( هردوتاشون صفر هستن ).
اگه سنسور دوم ادرسش مثلا 5 باشه اونوقت برنامه چه تغييري ميكنه ؟
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11