ايران ويج

نسخه‌ی کامل: ارتباط تک سیمه دو میکرو بدون زمین مشترک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام به اساتید محترم.
من می خوام دو میکرو که به فاصله 100 متری از هم هستند ارتباط یک طرفه برقرار کنم(یکی فرستنده و دیگری دریافت کننده).من مجبور هستم فقط از یک رشته سیم استفاده کنم و منبع تغذیه هم دو عدد باطری 9 ولت هستش.من برای دریافت از میکرو فرستنده حتی 1 یا صفر هم برام کافی هستش.اما چون این دو میکرو را نمی تونم زمین کنم از هر ارتباطی و یادیجیتال یا آنالوگ نتونستم جواب بگیرم.
بدجوری کارم گره خورده، ممنون میشم در این مورد کمکم کنید.
(۲۷-تير-۱۳۸۹, ۱۸:۵۱:۰۲)novintablo نوشته است: [ -> ]سلام به اساتید محترم.
من می خوام دو میکرو که به فاصله 100 متری از هم هستند ارتباط یک طرفه برقرار کنم(یکی فرستنده و دیگری دریافت کننده).من مجبور هستم فقط از یک رشته سیم استفاده کنم و منبع تغذیه هم دو عدد باطری 9 ولت هستش.من برای دریافت از میکرو فرستنده حتی 1 یا صفر هم برام کافی هستش.اما چون این دو میکرو را نمی تونم زمین کنم از هر ارتباطی و یادیجیتال یا آنالوگ نتونستم جواب بگیرم.
بدجوری کارم گره خورده، ممنون میشم در این مورد کمکم کنید.

سلام

بهتر نیست از ماژول های rf استفاده کنید؟
با این rf ها همه کار می تونید بکنید، یکم به نویز (بعضی وقتا) حساسه که با خازن قابل حله . آنتن هم برای فاصله های کم نمی خواد ولی بذارید ..........

قیمتشون هم مناسبه .
http://upload.parsiking.com/file5/1279566631.jpg
فقط زمانی که دیتا ارسال می کنید یه chr(13) هم به آخر رشته اضافه کنید چون رو همین موضوع من یه چند روز گیر کردم.
منظورتون از chr(13) چیه؟میشه در برنامه توضیح بدید؟
مهندس اگه با دستور printbin دیتا ارسال می کنین در گیرنده هم با waitkey یا inkey دیتا رو بخونین !

ولی اگه تو گیرنده بخواین با دستور input دیتا رو بخونین اونوقته که تو فرستنده باید کد enter که 13 میشه رو هم بفرستین !!

می تونین تو فرستنده با دستور print دیتا رو ارسال کنین که نیازی نباشه چون خودش ارسال می کنه کد enter رو !!!
سلام
علی جون میشه یه برنامه کاربردی (بعنوان مثال) برای ارتباط با یک سیم بین دو میکرو بذاری!!؟؟!!
مهندس ارتباط یک سیمه نداریم !!

یه 1wire هستش که خوب اونم به زمین نیاز داره !!!


ارتباط سريال 1WIRE


ويژگي هاي اين پروتکل به شرح زير است:

1-
در اين ارتباط از يک همرا با گراند و VCC ، که درمجموع سه سيم مي شود ، براي انتقال ديتا استفاده مي شود.

2-
بالا ترين فرکانس کلاک 2 کيلو هرتز است.

3-
در اين ارتباط ميتوان تعداد دو وسيله ي اصلي و تعدا د نامحدود وسيله جانبي را به هم متصل کرد.

4-
کليه خطوط بايد با مقامت 4.7 کيلو به vcc متصل شوند.

با دستور زير باس 1 WIRE مشخص مي شود:

کد php:
CONFIG 1WIRE pin 

Pin : نام پايه ي دلخواه ميکرو است که به عنوان وردي وخروجي داده 1 WIRE استفاده مي شود.
(اين پايه بايد با پايه اي که در قسمت compiler setting بسکام مشخص شده يکي باشد)(پايه اي که در بالا مشخص مي شود ، باس اصلي ميباشد که به دستگاه ديگر متصل است )

با دستور زير ميتوان داده را ازباس 1 WIRE خواند:

کد php:
var2 1WREAD( [ bytes] ) 
کد php:
var2 1WREADbytes port pin

دستور اول داده را از باس اصلي و دستور دوم داده را از ديگر دستگاه هاي جانبي ميخواند

var2 : يک متغير است که داده خوانده شده از باس در آن ريخته مي شود ، شما همچنين ميتوانيد معين کنيد چند بايت از باس خوانده شود ( [ bytes] ).

Port :نام پورتي است که دستگاه جانبي به آن متصل است .

Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است مانند :

کد php:
1wread(Pinb 2

با دستور زير ميتوان داده را در باس 1 WIRE نوشت:

کد php:
1WWRITE var1bytes 
کد php:
1WWRITE var1 bytes port pin 

دستور اول داده را در باس اصلي و دستور دوم داده را در باس ديگر دستگاه هاي جانبي ميريزد.

Var1 : متغير يا عدد ثابتي است که در باس نشته مي شود ، شما همچنين ميتوانيد معين کنيد چند بايت در باس نوشته شود

( [ bytes] ). ( تعداد بايت خوانده شده و نوشته در گذر گاه بايد با هم برابر باشد ،در غير اينصورت خطا بوجود ميايد)

Port : نام پورتي است که دستگاه جانبي به آن متصل است .

Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است مانند :

کد php:
1wwrite b 8,pinb,

با دستور زير باس 1 WIRE ريست مي شود ( داده هاي موجود در آن پاک مي شود):

کد php:
1WRESET 
کد php:
1WRESET PORT PIN 

دستور اول باس اصلي ودستور دوم ديگر باس ها را ريست ميکند

Port :نام پورتي است که دستگاه جانبي به آن متصل است .

Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است و بايد ريست شود
مانند :

کد php:
1wreset Pinb 

با دستور زير شماره دستگاه متصل شده به باس 1 WIRE خوانده مي شود :

کد php:
var2 1WIRECOUNT() 
کد php:
var2 1WIRECOUNTport pin

var2 : يک متغير از جنس word يا integer است که داده خوانده شده از باس در آن ريخته مي شود .

Port :نام پورتي است که دستگاه جانبي به آن متصل است .

Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است مانند :

کد php:
1wirecount(pinb 2

با دستور زير ميتوان داده را از دستگا هاي که به صورت سريال به يک باس متصل شده اند را خواند:

کد php:
var2 1WSEARCHFIRST() 
کد php:
var2 1WSEARCHFIRSTport pin
کد php:
var2 1WSEARCHNEXT() 
کد php:
var2 1WSEARCHNEXTport pin

var2 : يک متغير از جنس long است که داده خوانده شده از باس در آن ريخته مي شود .

Port :نام پورتي است که دستگاه جانبي به آن متصل است .

Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است .

مثال :

کد php:
$regfile "m16def.dat" $crystal 8000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Pind.2 Db5 Pind.3 Db6 Pind.4 Db7 Pind.5 Rs Pind.0 Pind.1
Config 1wire 
Portb.0 'use this pin
Dim A As Byte , C As Byte
Wait 1
1wreset
1wwrite &H33
Do
A = 1wread(8 , Pinb , 0)
Locate 1 , 1 : Lcd Hex(a)
Wait 1 : Incr C
1wwrite C , 8 , Pinb , 0
Locate 2 , 1 : Lcd C
Loop
End 

[تصویر:  d2fb62ebd2e5468fa149.PNG]

منبع : http://www.iranled.com/forum/showthread.php?tid=10869
حالا برای سیم ارسال کننده دیتا میشه از سیم نول برق ویا مثلا لوله گاز ویا آب و یا دیگر رسانا ها استفاده کرد
یعنی مثلا یکمی تقویتش کرد واز این گونه وسایل دریافتش کرد؟؟؟

منظورم اینه که دیگه یه سیم اضافی کشیده نشه!!!!
خوب مهندس جان خودت تست کن !!

چون ارتباط یه طرفه لازم هستش از پورت سریال هم استفاده کنی دستوراتش راحت تره !!
باوود رو هم بیار پایین پایین !! ( مثلا 300 )!!

تست کردی جوابشو هم بذار !!
نقل قول: سلام به اساتید محترم.
من می خوام دو میکرو که به فاصله 100 متری از هم هستند ارتباط یک طرفه برقرار کنم(یکی فرستنده و دیگری دریافت کننده).من مجبور هستم فقط از یک رشته سیم استفاده کنم و منبع تغذیه هم دو عدد باطری 9 ولت هستش.من برای دریافت از میکرو فرستنده حتی 1 یا صفر هم برام کافی هستش.اما چون این دو میکرو را نمی تونم زمین کنم از هر ارتباطی و یادیجیتال یا آنالوگ نتونستم جواب بگیرم.
بدجوری کارم گره خورده، ممنون میشم در این مورد کمکم کنید.

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

از ماژول های فرستنده گیرنده مخابراتی استفاده کنین
چون علاوه بر مشکل زمین مشترک ، مشکل افت سیگنال هم خواهد بود !!!!!!!!!!!!!!!!!

میگم میشه به یه میکرو سه تا ماژول با ارتباط سریال وصل کرد ؟؟
اره !

البته اگه ماژول ها فرکانساشون یکی نباشه که تداخل کنن !!!

با دستور open تو بسکام می تونی هر چقدر بخوای پورت سریال بهش اضافه کنی !!
صفحه‌ها: 1 2