PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : كمك در مورد ارتباط ميكرو با كامپيوتر



rezag42
13-05-2010, 17:50
با سلام و خسته نباشيد خدمت دوستان

من مي خواهم يك سيگنال آنالوگ را با ميكرو ديجيتال كرده و سپس توسط usb به كامپيوتر فرستاده و آن سيگنال را در يك نرم افزار گرافيكي كه قبلا روي كامپيوتر نصب كرده ام نمايش بدهم.برنامه گرافيكي خاص نصب شده روي كامپيوتر 16 بيتي است و ولتاژ سيگنال خروجي ميكرو از 0 تا5 ولت متغير است.من اين برنامه را نوشتم.
$regfile = "m32def.dat"
$crystal = 4000000
$baud = 11500
Config Serialout = Buffered , Size = 10

Config Adc = Single , Prescaler = Auto
Start Adc

Dim A As Word
Do
A = Getadc(0)
Waitms 10
Print A
Loop

در محيط هايپر ترمينال روي كامپيوتر سيگنال ديجيتال شده را دارم و پورت com3 راسيستم شناسايي مي كند ولي نرم افزار نصب شده روي كامپيوترم سيگنال ورودي به كامپيوتر را نمي خواندو هيچ ديتايي به نرم افزار گرافيكي روي كامپيوتر نمي رسد(آن را نمي شناسد).لطفا در اين مورد كمكم كنيد تا ايراد كار را برطرف كنم.

هنرفر
13-05-2010, 18:24
دوست عزیز بیشتر توضیح بدید.نرم افزار کامپیوتر براساس ارتباط usb نوشته شده یا سریال؟

rezag42
13-05-2010, 21:04
دوستان گرامي
من مي خواهم سيگنال خروجي از يك آپ امپ در يك مدار را (سيگنال آنالوگ مثل دما يا ....)با ADC ميكرو ديجيتال كنم و از طريق پورت usb به PC منتقل كنم و آن را روي يك نرم افزار گرافيكي دو بعدي (داراي محور x.y ) بنمايش بگذارم.همانطور كه مي بينيد برنامه اي كه نوشته ام كار مي كند و در محيط هايپر ترمينال سيگنالهاي ديجيتال شده خروجي ميكرو را دارم ولي نمي توانم با آن برنامه نصب شده روي ويندوز و خروجي ميكرو ارتباط برقرار كنم.برنامه نصب شده روي ويندوز من (كامپيوترمن)16 بيتي است و زماني كه روي گزينه file كليك مي كنم و گزينه new project ظاهر مي شود و با كليك روي آن بترتيب com1-com2-com3-com4 ظاهر مي شود و ميتوان با يكي از اين درگا ه ها به خروجي FT232BM وصل شده به ميكرو ارتباط برقرار كرد ولي هيچ ديتايي به برنامه گرافيكي روي ويندوز وارد نمي شود.به بيان ديگر چگونه ميتوان ديتاي خروجي از يك ميكرو را پس از ورود به pc به يك برنامه دلخواه نصب شده روي ويندوز مرتبط كرد؟
مثلا خروجي lm35 را بعد از ديجيتال كردن با ميكرو ميتوان از طريق سريال و برنامه vb روي pc بصورت تغييرات دما مشاهده كرد حالا اگر ما يك كميت ديگر را با ميكرو ديجيتال كنيم چگونه ميتوانيم آن كيميت را پس از ارسال از طريق پورت usb روي يك برنامه گرافيكي ديگر غير از vb نمايش دهيم.احتمالا برنامه اي كه من نوشته ام ناقص است.دوستان لطفا اگر كسي مي تواند جهت تصحيح برنامه مساعدت بنمايد.
با تشكر

Pardazesh-Gar
16-05-2010, 13:25
شما مقدار غیر استانداردی وارد کردید $baud = 11500 پرت سریال کامپیوتر این رو نمی شناسه. چطور با هايپر ترمينال جواب گرفتی. اول این آزمایش رو انجام بدید.

این کد رو آزمایش کن.


$regfile = "m32def.dat"
$crystal = 4000000
$baud = 9600 '115200
Config Serialout = Buffered , Size = 10

Config Adc = Single , Prescaler = Auto
Start Adc

Dim A As Word
Do
A = 65 'Getadc(0)
Waitms 10
Print A
Loop


حالا هايپر ترمينال رو باز کنید باید چنین چیزی براتون چاپ بشه"AAAAAAAAAAAAAAAA..." اگر همین باشه مدار درست متصل شده. در غیر این صورت مشکل از نرم افزار رایانه تونه. باید اون مرد بررسی قرار بگیره.

rezag42
18-05-2010, 13:20
با تشكر از راهنمايي شما

من برنامه را اصلاح كردم و الان چيزي به شكل aaaaaaaaaaaa در هايپر ترمينال دارم ولي نمي توانم با برنامه گرافيكي نصب شده روي كامپيوترم ارتباط برقرار كنم.شايد ميبايست پورت ها را در برنامه لحاظ كنم.خروجي آپ امپ 0تا5ولت است از 0تا1 ولت ورودي به برنامه گرافيكي يك كار انجام مي گيرد و از 1تا3ولت كار ديگر و از 3تا5ولت باز كار خاص ديگري انجام مي پذيرد.لطفا در برنامه آن را لحاظ كنيد تا وضعيت برنامه بهتر مشخص شود.

Pardazesh-Gar
18-05-2010, 14:32
این جوری که نمی شه دوست من. باید مرحله به مرحله عیب یابی کنید.
مرحله دوم لازمه برنامه رایانه رو طوری بنویسی که مقدار ورودی رو گرفته و روی صفحه مانیتور چاپ کنه. باید مطمئن بشید نرمافزار رو درست طراحی کردید یا نه؟

در کد قبلی مقدار متغیر a رو برابر 65 قرار دادیم. مانند اینه که ورودی adc شما 1.27 ولت بوده.

arm32bit
06-06-2010, 19:19
سلام
این که شما میگی که چه چیزی رو میخواید نشون بدید ربطی به ارتباط میکرو با PC نداره.مسله بعدی هم اینکه شما هیچی از نرم افزار PC نگفتی و چون هدف آموزش و نشر علمه ، برنامه رو هم بزار یا حد اقل یه توضیحی در مورد سورسش بده تا بتونیم کمکی کنیم.
اگر با VB6 نرم افزار رو نوشتی شما باید کامپوننت پورت کام را اضافه کنید
بعدش با یه دستور پورت مورد نظر رو باز کنی و با دستور دیگه دیتا رو بخونی و نمایش بدی. برای نمایش باید یه تایمر استفاده کنی و مثلا با فاصله 1 ثانیه اطلاعات خونده شده از پورت رو رفرش کنی.من با گذاشتن نرم افزار آمادش مشکلی ندارم اما میخوایم یه کم موضو کش پیدا کنه تا بار علمی بره بالا
یا علی:wink:

hamid_reza
05-11-2012, 11:07
arm32bit ممنون از طرز فکرت
کاش همه اینطوری بودند.
راستش من هم می خواهم چنین کاری را انجام بدم ولی نمیدونم از چه نرم افزاری و چطوری اطلاعات را توی کامپیوتر به نمایش در بیارم؟؟؟ حالا چه به صورت متنی و چه بصورت گرافیکی !؟
راستش من VB کار نکردم و نمیدونم چیکار کنم؟؟
ممنون میشم اگه کمک کنید

zakariya moradi
10-11-2012, 13:55
سلام
من همون ARM32BIT هستم .ایمیل قفل شده بوده و این یوزر جدید منه .
اگر زمان بدید برنامه ای با C#.NET می نویسم براتون که کامل همه چیز پیاده سازی شده . این هم تصاویری از دانگل ساخته شده توسط خودم
این پروژه قابلیت های بسیار زیادی را شامل میشود که در ادامه به چند نمونه اشاره میگردد :
۱- ورودی آنالوگ با رزولوشن ۱۰۲۴ و تعداد ۸ ورودی در هر دانگل
۲- ۸ عدد ورودی دیجیتال
۳- ۸ عدد خروجی دیجیتال
۴-۳ عدد خروجی آنالوک ولتاژ




You can see links before reply

MEGAMAN.1
29-11-2012, 17:05
هنر علم ،آموختن است

ماهی رو هم هر وقت از آب بگیری تازس:wink:
بفرمایید دوست عزیز

من با این برنامه جواب گرفتم....

$regfile = "M16def.dat"
$crystal = 8000000
$baud = 9600
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim A As String * 10
Dim Temp As Word
Do
Input "INPUT TEXT:" , A
If A = "get temp" Then
Temp = Getadc(0)
Temp = Temp / 2
Print "temperature is:" ; Temp ; " c"
Else
Print "error input"
Waitms 1000
End If
Loop
End
هروقت در ترمینال بسکام کلمه get temp رو تایپ کنی مقدار دما رو اعلام میکنه:018:
در پیوست زیر هم تصویر نحوه اتصالش رو گذاشتم
راستی lm35 خودش خیلی دقیق هست و نیازی هم به دجیتال و تنظیم شدن نداره
موفق باشید:hi: