اتصال دیتا parallel به pc

سلام. وقت بخیر

بنده تو مباحث الکترونیک زیاد وارد نیستم و برنامه نویسی کامپیوتر انجام میدم.

ولی الان نیاز به یه مبحث الکترونیک پیدا کردم.

من یه برد دارم که 16 پین داره که هرکدوم یا صفر ولت هست یا 12 ولت چطور می تونم این اطلاعات رو به پی سی ارسال کنم. مثلا به صورت 16 بیتی به پورت سریال بفرستم تا بعد تو نرم افزارم بتونم بخونم؟

ممنون میشم راهنمایی کنید

مثلا برد تبدیل که بتونه اینا رو به rs232 تبدیل کنه یا .....

سلام

برای این کار باید از یک میکروکنترلر استفاده کنید.

2 روش برای انجام پروژه به شما معرفی میکنم:

روش اول


هر کدام از این پین ها را با استفاده از تقسیم ولتاژ از 12 ولت به 5 یا 3.3 تبدیل میکنید.

تقسیم ولتاژ مشابه عکس زیر اتفاق می افتد

سپس پایه Vout را به پین های میکروکنترلر خود وصل میکنید. (در انتخاب میکروکنترلر مدلی را انتخاب کنید که تعداد پایه های دیتا مورد نظر شما را داشته باشد)

شما می توانید برای این پروژه از میکروکنترلر های آردوینو یا ESP32 استفاده کنید که می توانید از لینک های زیر انواع مدل های میکروکنترلر را مشاهده کنید.

میکروکنترلر های آردوینو (این سری میکروکنترلر با 5 ولت کار میکنند)

میکروکنترلر های ESP32 (این سری میکروکنترلر با 3.3 ولت کار میکنند اما قابلیت تحمل تا 5 ولت را دارند)

روش دوم


جهت کاهش هزینه ها از میکروکنترلر های ارزان قیمت تر که تعداد پایه های کمتری دارند را با استفاده از دیکودر یا شیفت رجیستر می توانید استفاده کنید.

یکی از میکروکنترلر های ارزان قیمت  NodeMCU می باشد که می توانید تهیه کنید به همراه IC 74HC165 و اتصال این 2 به هم به صورت عکس زیر

و برنامه نویسی میکرو NodeMCU که دستورات دریافتی را برای شما پردازش کنید و از طریق سریال برای شما ارسال کند.

پایه Input که به مقاومت های R1,R2 رفته اند را در پایه های D0 الی D7 هر 2 IC تکرار میکنید که بتواند تمامی 16 لاین دیتا شما را بخواند.

در مورد بخش کد نیز می توانید از لینک زیر کمک بگیرید

https://dronebotworkshop.com/shift-registers/

 
 
 

سلام مجدد
ممنون از اینکه وقت گذاشتید و پاسخ دادین.
من قبلا یکم با آردوئینو کار کردم و تستی یه برنامه ای ای توش ران کردم.
الان اگه بخوام از همون روش اول و آردوئینو استفاده کنم، ظاهرا باید یه برد بگیرم که 16 تا اینپوت آنالوگ داشته باشه مثل

برد آردوینو مگا Arduino MEGA CH340G - CH340G

درسته؟

سلام مجدد، ممنون از اینکه وقت گذاشتید و پاسخ دادین. من قبلا یکم با آردوئینو کار کردم و تستی یه برنامه ای ای توش ران کردم. الان اگه بخوام از همون روش اول و آردوئینو استفاده کنم، ظاهرا باید یه برد بگیرم که 16 تا اینپوت آنالوگ داشته باشه مثل برد آردوینو مگا - CH340G
درسته ؟

درسته؟

نیازی نیست
دیتا شما دیجیتال هست و آنالوگ نیست که بخواهید آنالوگ داشته باشید.
فقط با استفاده از تقسیم ولتاژ تمامی پایه های خودتان را به 5 تبدیل کنید سپس از پایه 2 الی 13 آردوینو را استفاده کنید
مابقی را در پایه های A0 الی A5 قرار بدهید و همه را به صورت دیجیتالی بخوانید.
به این صورت می توانید تمامی 16 پایه را بخوانید

دیتای آنالوگ یعنی شما تمامی ولتاژ های بین 0 الی 12 ولت هر کدام از پایه ها را بخوانید.
در صورتی که هدف شما اندازه گیری که آن پایه 0 یا 12 شده است باشد به سادگی می توانید به صورت دیجیتالی بخوانید.

مجدد سلام- ممنون از راهنمایی تون - آیا استفاده از دو مقاومت که گفتید کفایت میکنه یا اینکه نیاز به چیز دیگه ای مثل خازن براش ندارم؟ و اینکه این روش(مقاومت) اوکی تر هست یا اینکه از رگولاتور مثل 7805 استفاده کنم؟ بیشتر بخاطر این میپرسم که به مدار یا آردوئینو آسیب نرسه یا نویز کمتری داشته باشه - ممنون

مجدد سلام- ممنون از راهنمایی تون - آیا استفاده از دو مقاومت که گفتید کفایت میکنه یا اینکه نیاز به چیز دیگه ای مثل خازن براش ندارم؟ و اینکه این روش(مقاومت) اوکی تر هست یا اینکه از رگولاتور مثل 7805 استفاده کنم؟ بیشتر بخاطر این میپرسم که به مدار یا آردوئینو آسیب نرسه یا نویز کمتری داشته باشه - سوال دومم هم در مورد مقاومته : اگه بخوام 24 ولت رو به 4.8 برسونم باید نسبت یک پنجم بدست بیارم یعنی مثلا r1=4k , r2=1k باشه حالا سوالم اینه که چطور محاسبه کنم که 10k , 40k بزارم یا 1k , 4k یعنی با آیتم های مختلف می شه این نسبت رو بدست آورد برای 24 ولت در حد چند میلی آمپر چه مقاومت هایی می تونم استفاده کنم
ممنون