ايران ويج

نسخه‌ی کامل: مدار برای سنسور زاویه zct245an-232
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سلام دوستان
کسی مثال یا پروژه ای با سنسور زاویه zct245an-232 که خروجیش rs232 هستش داره بزاره انجا تا دیگران از جمله من استفاده کنیم (با میکرو ترجیحا به زبان c)
هر مثالی باشه مهم نیست من میخواهم بدونم میکرو خروجی این سنسور رو چگونه میخونه
مرسی
من با سنسور فوق کار نکردم ولی اینم آموزش ارسال اسلاعات با پورت سریال در میکرو با بسکام از کتاب آقای یه نفر ( سعید جون ) :



ارتباط سریال rs232 :


در این ارتباط از دوسیم به نام های rxd و txd استفاده میشود که خط rxd وسیله اول دیتا را از ان به بیرون منتقل میکندو خط خروجی دیتا است و به ورودی دیتا دستگاه دوم ( txd ) متصل میشود و خط txd ورودی دیتا است که به خروجی دیتای دستگاه دیگر (rxd ) متصل میشود.


در این روش میتوان نهایتا تا دووسیله را به هم متصل کرد .(از طریق یک پورت)

این پروتکل برای ارتباط میکرو با میکرو ، میکرو با کامپیوتر و کامپیوتر با کامپیوتر استفاده میشود ، برای ارتباط میکرو با میکرو شما نیاز به دو برنامه برای دو میکرو دارید ، برای ارتباط میکرو با کامپیوتر شما باید علاوه بر نوشتن برنامه برای میکرو یک برنامه نیز برای کامپیوتر بنویسید و در نهایت برای ارتباط دو کامپیوتر با هم شما باید با یکی از زبان های برنامه نویسی برای هر دو کامپیوتر برناه بنویسید که این موضوع از بحث ما خارج است.(برای راه اندازی این پروتکل از کریستال خارجی استفاده کنید)

دستورات این پروتکل در بسکام به شرح زیر است:

تعیین نرخ انتقال دیتا:
کد php:
$BAUD=VAR 
این دستور میزان انتقال دیتا در ثانیه را مشخص میکند وباید در هر دو وسیله ای که به هم متصل میشوند یکی باشد (در غیر این صورت ارتباط کار نمیکند) بهتر است نرخ انتقال دیتا در مناطق دارای نویز کمتر انتخاب شود.

دستور PRINT :
کد php:
PRINT VAR 
توسط این دستور میتوان داده یا متغیری را به پورت سریال ارسال کرد. VAR یم متغیر از جنس متغیرهای گفته شده میباشد.

دستور PRINTBIN :
کد php:
PRINTBIN VAR 
توسط این دستور متغیر VAR به باینر تبدیل شده سپس به پورت سریال ارسال میشود.

دستور WAITKEY :
کد php:
VAR=WAITKEY() 
این دستور تا زمانی که متغییر توسط دستگاه دیگر به پورت سریال ارسال شود منتظر میماند و پس از دریافت متغیر برنامه از خط بعد ادامه می یابد.

دستور INKEY :
کد php:
VAR=INKEY() 
این دستور مقدار اسکی کاراکتر دریافت شده از پورت سریال را برمیگرداند.

دستور INPUTBIN :
کد php:
INPUTBIN VAR 
این دستور داده باینری را از پورت سریال میگیرد و در متغیر VAR قرار میدهد.

دستور INPUTHEX :
کد php:
INPUTHEX VAR 
این دستور داده هگز رااز پورت سریال دریافت میکند و در متغیر VAR قرارمیدهد. مانند:

در مثال زیر با استفاده از ارتباط سریال ، یک ارتباط دوطرفه بین دو میکرو برقرار کرده ایم ،

کد php:
$regfile "m32def.dat" $crystal 1000000
$baud 
9600
Config Portb 
Input Config Porta Output
Dim A 
As Byte As Byte
W
:
Pinb Printbin Q
Inkey() : Porta A
Goto W
End
میکرو 2
:
$regfile "m32def.dat" $crystal 1000000
$baud 
9600
Config Portb 
Input Config Porta Output
Dim A 
As Byte Dim Q As Byte
W
:
Pinb Printbin Q
Inkey() : Porta A
Goto W
End 

از انجا که ارتباط دو طرفه میباشد ( هر دو میکرو دقیقا مانند هم هستند ) برنامه دو میکرو مشابه است ،

درخط اول میکرو و کریستال معرفی شده است که میکرو مگا 32 و کریستال مورد استفاده 10 مگا هرتز میباشد .

در خط دوم نرخ انتقال دیتا مشخص گردیده است ، مقدار ان 9600 است . نرخ انتقال دیتا باید در هر دو میکرو یکسان باشد .

در خط سوم پورت b به عنوان ورودی ( برای اتصال کلید ) و پورت a به عنوان خروجی (برای اتصال led) معرفی شده اند .

در خط چهارم دو متغیر از جنس بایت برای ذخیره مقادیر معرفی شده است .

در خط پنجم شروع یک حلقه میباشد ( شما میتواندی از دیگر حلقه ها نیز استفده کنید).

در خط ششم مقدار موجود بر روی پورت b در متغیر q ریخته میشود و سپس با دستور Printbin Q به پورت سریال فرستاده میشود.

در خط هفتم مقدار گرفته شده از پروت سریال در متغیر a ریخته میشود و بعد متغیر a بر روی پورت a ریخته میشود.

خط هفتم پایان حلقه میباشد ، هنگامی که cpu میکرو به این خط رسید به برچسب w پرش میکند.

خط هشتم پایان برنامه است.


در حالتی که هیچ یک از کلید ها یک نشده اند ، مقدار q صفر دسیمال و &b00000000 باینری است ، حال اگر هر یک از کلید ها فشرده شود مقدار q تغیر میکند.

دو پایه txd و rxd میکرو نقش دریافت و ارسال داده را در حالت پیشفرض برعهده دارند ، با دستور زیر شما میتوانید این دو پایه را به پایه های دلخواه تغییر دهید:

کد php:
Open "comx.y:$baud,8,n,1" For Output/input As #q 

comx.y : نام پورت و پایه ای است که باید به عنوان txd یا rxd جدید عمل کند.

:$baud نرخ داده عبوری از پایه را نشان میدهد ، این مقدار باید با نرخ انتقال دیتا ی اصلی برابر باشد.

Output/input : پایه میتواند وردی داده( rxd) یا خروجی داده( txd ) باشد.

Q : شماره کانال را مشخص میکند.
مانند:

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

در مورد بالا portd.1 به عنوان txd و portd.0 به عنوان rxd در نظر گرفته شده است ، همچنین نرخ انتقال داده برابر با 19200 است.
بسیار بسیار ممنونم
اطلاعات فوق بسیار کمکم کرد که بتونم با rs232 و میکرو کارکنم
به سادگی گشتم و معادل دستوراتی که شما برام توضیح دادین رو به زبان C پیدا کردم
میشه لطفا در مورد ارتباط یک سنسور (خروجی rs232) با میکرو avr برام یه مثال یا پروژه نمونه بزاری یا لینکش رو بدین
یک سنسور مثل zct245an-232 که سنسور زاویه هست
این سنسور بین -45 درجه تا +45 درجه رو اندازه گیری کرده و به فرم rs232 به خروجیش میفرسته(البته در دو راستای X و Y میتونه زاویه رو اندازه بگیره)
منتها در دیتاشیتش واضح نگفته (شایدم من نمیتونم متوجش بشم)که چطور میشه خروجی سنسور رو مثلا با میکرو یا پورت PC دریافت کرد
به هر حال از شما تقاضا دارم اگر مثال یا پروژهای سراغ دارین که با میکرو خروجی یک سنسور RS232 رو دریافت کرده و روی lcd یا سون سگمنت یا دیماکس نمایش داده رو بیزحمت برام بزارین
پیشاپیش ممنونم
محمد
مهندس کاری نداره !

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

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

موفق باشی !!
سلام دوستان
کسی مداری برای خوندن خروجی سنسور zct245an-232 با میکرو(هر میکرویی)سراغ داره لطف کنه و بزاره اینجا
پیشاپیش ممنونم
راستی اینم دیتاشیتش میزارم برای دوستان تا بدونن خروجیش چه جوریه
سلام
مشکل اینجاست که خروجیش داستان داره
منظورم خروجی سنسور زاویه zct245an-232 هستش
دیتاشیتش هم اینه:
(۲۰-مرداد-۱۳۸۹, ۰۰:۳۵:۴۹)t3r!p3000 نوشته است: [ -> ]مهندس کاری نداره !

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

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

موفق باشی !!

سلام
خیلی هم با اطمینان نگو کاری نداره
اگه به دیتا شیت این سنسور (zct245an) یه نگاه بندازی میبینی که نکات ریز و حتی گنگ درش وجود داره
مثلا دیتا خروجیش که rs232 هست شامل یک بیت استارت و 8 بیت دیتا و یک بیت استپ هست که در کدویژن یا بیسکام در تنظیمات uart یا usart تعیین بیت استارت موجود نیست
بدرود
با دستور OPEN می تونی همه چیزو تنظیم کنی !!

و این مدلی که گفتی بصورت پیش فرض تو ارتباط سریال در نظر گرفته شده !!!!
و بیت استارت وجود داره !!!
خروجی این سنسور چیه؟x,y یا زاویه؟
کسی از دوستان میدونه از این سنسور کجا میشه پیدا کرد؟
اگه تهرانین به احتمال زیاد تو امجد هست(اونجا همه چی هست)
فقط یه مشکل
این سنسور چه شکلیه؟
حالا مثلا ما بیایم اطلاعاتم دریافت کنیم این چه جور زاویه ای رو اندازه میگیره؟
صفحه‌ها: 1 2 3