PDA

View Full Version : کنترل وسیله برقی توسط کامپیوتر (سریال و موازی)



.:KeihanCPU:.
چهارشنبه 15 مهر 1388, 10:47 صبح
سلام به همه شما خسته نباشید

ببینید دوستان من میخوام یه وسیله برقی رو توسط کامپیوتر کنترل کنم،زبان برنامه نویسی مورد نظرم هم vb.net هست.باید چیکار کنم،از دوستان خواهش دارم که لطفشونو دریغ نکنن.الان 2 روزه کامله دنبال مطلب میگردم ولی فقط گمراه میشم و مطالبی که میخوام پیدا نمیکنم
باید چه کار کنم؟
با تشکر

farzadsw
پنج شنبه 16 مهر 1388, 15:55 عصر
خب ، این دو قسمت داره :
1. یه برنامه طرف کامپیوتر (مثلا با vb.net ) بنویسید که دستورات لازم رو به یه پورتی بفرسته . پورت سریال راحت ترین راهه .
2. یه میکرو کنترلر رو به وسیله پورت سریال( uart داخلی میکرو) به کامپیوتر وصل کنی تا دستورات رو بگیره . بعد طبق دستورات اون وسله رو کنترل کنه. البته یه مدار برای کنترل دستگاه لازم هست که بسته به اینکه دستگاه چیه و چطور باید کنترل بشه فرق میکنه.(میتونه از یه ترانزیستور باشه تا رله های چند صد ولتی)

.:KeihanCPU:.
پنج شنبه 16 مهر 1388, 16:07 عصر
خوب دوست عزیز بنده الان راه اول رو نیاز دارم
راه اول رو که یاد گرفتم بدم نمیاد راه دوم هم یاد بگیرم
اگر ممنکه راه اول رو توضیح بدید

farzadsw
چهارشنبه 22 مهر 1388, 15:43 عصر
خوب دوست عزیز بنده الان راه اول رو نیاز دارم
راه اول رو که یاد گرفتم بدم نمیاد راه دوم هم یاد بگیرم
اگر ممنکه راه اول رو توضیح بدید

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

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

http://www.machinetoolhelp.com/_Images/rs232-DB25-DB9.jpg

ما ازن بین 9تا پایه فقط با 3تا از اونا یعنی 2و3و 5 کار داریم. برای اتصال میکرو به کامپیوتر باید یه ic max232 بین میکرو و پورت سریال (db9 ) قرار بگیره. مثل شکل زیر:

http://www.best-microcontroller-projects.com/image-files/rs232_pic_connections_schematic.png

اون 2تا پاییه 11 و 12 max232 که روشون نوشته pic tx , pic rx به پایه های TXD,RXD میکرو وصل میشن.

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

قسمت نرم افزاری کامپیوتر:
باید طرف کامپیوتر یه نرم افزار باشه که اطلاعات رو از پورت بگیره یا بهش بفرسته. ساده ترین نرم افزاری که تو همه کامپیوتر ها (ویندوز) وجود داره ، برنامه hyperterminal هست . تو این برنامه اول یه اسم دلخواه برای ارتباط مینویسید بعد از منوی connect using پورت com مورد نظر (مثلا com3) رو انتخاب میکنید.
تو این قسمت bits per second یا همون baud rate رو همون مقداری که تو میکرو تعریف کردید میگذارید(مثلا 9600) . بقیه تنظیمات مثل شکل زیر باشه . فقط یادتون باشه flow control رو روی none قرار بدید.

http://i27.tinypic.com/ix6wpu.jpg

حالا اطلاعات رو روی همون صفحه سفید بنوسید یا بخونید.
یه راه ساده دیگه استفاده از نرم افزار های رایگان و غیر رایگان port montior هست که اگه یه سرچی بکنید 10-20 تا پیدا میکنید.
اما راه سوم نوشتن برنامه برای پورت سریال هست . این روش با اینکه از بقیه روش ها سخت تره (اما در کل سادس) ولی این حسن رو داره که میتونید هر کاری خواستید بکنید . مثلا نمودار اطلاعات رو بکشید یا اونا رو بفرستید به یه برنامه دیگه و .... .
برای نوشتن برنامه ساد ترین راه استفاده از vb6 و کامپوننت mscomm هست . کار با اون خیلی سادس . با دات نت (مثلا #C و VB.net) هم میشه برنامشو نوشت . اتفاقا دات نت هم کامپوننتشو داره ولی کار باهاش یکم سختره.
اگرم نیاز به مثال و سورس برنامه داشتید عبارت serial port source code رو توی گوگل یا سایت های کد برنامه جستجو کنید. تقریبا به هر زبانی میتونید مثال و source پیدا کنید.

برنامه طرف میکرو:
اول باید مشخص کنید با چه نوع میکرویی و چه کامپایلری میخواید کار کنید.
فکر کنم تقریبا همه از avr استفاده میکنن (سری مگا) . اما اگه کسی با میکروی دیگه ای میخواد کار کنه اینجا سوالش رو بپرسه(مثلا at91sam یا lpc 21xx ,lpc23xx یا pic و ...)
اونایی که با بسکام کار میکنن اول باید مقدار baud rate رو مشخص کنن:
کد قالب بندی شده:
$baud = 9600
بعد به راحتی با استفاده از دستور های print , input میتونن با کاپیوتر ارتباط برقرار کنن:
کد قالب بندی شده:
Print "hello"
کد قالب بندی شده:
Input S
که متغیر s از نوع رشته ای تعریف شده(البته میتونه integer هم باشه).
راستی یادتون باشه هر وقت تو کامپیوتر یه متنی رو مینویسید وقتی enter رو میزنید میکرو اطلاعات رو میگیره و مثلا میریزه تو S .
از این دستور ها به شکل زیر هم میتونید استفاده کنید:
کد قالب بندی شده:
Input "left or right and how many times?" , S , T
کد قالب بندی شده:
Print S
به همین راحتی

.:KeihanCPU:.
سه شنبه 12 آبان 1388, 02:03 صبح
سلام دوستان
تا حالا فکرشو کردید که اگه چراغهای خونتونو با کامپیوتر خاموش و روشن کنید چه جالب میشه.
با توجه به اینکه خودم قبلا این مشکل رو داشتم و خیلی از دوستان هم ممکنه بخوان این کار رو انجام بدن به فکر این افتادم که این مقاله رو بنویسم و واسه دوستان نحوه کار رو توضیح بدم.

خب واسه انجام این کار، پروژه مون رو به دو قسمت تقسیم بندی میکنیم:
1-سخت افزار
2-نرم افزار

نه نه ! نترس سخت افزارش خیلی سادست .

ابتدا باید یه برد رو که شماتیک(نقشه) اون در زیر هست رو طراحی کنیم.
http://www.epanorama.net/circuits/uln2803circuit.gif
خب.ساختن این مدار خیلی سادست
میبینید که مدارمون از یک آی سی ULN 2803 (تعداد 8 عدد ترانزیستور NPN جا سازی شده در یک آی سی)، 8 تا مقاومت 390 اهم،دیود زنر و 8 عدد LED تشکیل شده که بعد از اینکه مدار رو چک کردیم به جای 8 تا LED از 8 تا رله مناسب استفاده میکنیم.
خب این میشه سخت افزار پروژمون،دیدی که چقدر ساده بود.
اما این مدار باید از یه جایی به کامپیوتر وصل بشه دیگه !
برای این منظور ما از سوکت پارالل 25 پین استفاده میکنیم.
اما طریقه وصل کردن مدارمون به پارالل پورت در زیر نشون داده شده.
http://www.globu.net/pp/english/ES/images_interfacing/clip_image001.gif
اگه توجه کرده باشید میبینین که سمت چپ مدارمون تعداد 8 تا پین جا گذاشتیم که وصل بشه به یه جایی.در شکل بالا میبینید که پایه های 9 تا 2 به پین های 1 تا 8 در مدار بالا وصل میشه

از پایه 18 تا 25 هم به هم وصل میشه و همه به زمین یعنی منفی وصل میشن
باقی پین ها هم کاری نداریم
این هم از طریقه اتصال پارالل پورت به مدارمون !
در آخر هم در مکانهایی که تعیین شده ولتاژ 9 ولت وصل میکنیم که مدارمون تغذیه بشه

حالا میریم سراغ نرم افزار:

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

حالا یه مثال عملی از کارمون میزنم
با این مداری که ساختیم و با پورت پارالل میتونیم 8 تا وسیله رو کنترل کنیم.
حالا شما فرض کنید میخواین وسیله اول و هشتم روشن بشن و بقیه خاموش باشن
پس باید پین اول و هشتم رو 1 و بقیه رو که میخوایم خاموش باشن 0 کنیم
اینطوری میشه: 10000001
یا مثلا میخوایم وسیله دوم ،سوم و هفتم روشن باشن و بقیه خاموش عدد باینری اینطوری میشه
01100010

حالا باید این عدد رو به پورت پارالل بفرستیم.
اما قبل از این کار باید یه تغییراتی در عدد ایجاد کنیم و اونو از مبنای 2(باینری) به مبنای 10(دسیمال)ببریم.
بعد از اینکه این تغییر رو انجام دادیم باید عدد دسیمال ایجاد شده رو به پورت بفرستیم.
نحوه تبدیل باینری به دسیمال در پروژه ضمیمه قرار داده شده.

اما چطور این عدد رو به پورت بفرستیم .
کاری نداره !
برای این منظور میایم از اکتیو ایکس یا دی ال ال های آماده استفاده میکنیم که من در پروژه از اکتیو ایکس hwinterface استفاده کردم
کار باهاش خیلی راحته :
اگر اسم اکتیو ایکس که تو فرم گذاشتم Po1 باشه
با این کد عدد دسیمال به پورت فرستاده میشه

Po1.OutPort &H378, 255&378 همیشه ثابته و نیازی به تغییر نداره
255 هم عدد دسیمالیه که تبدیلش کردیم

با فرستادن این عدد به پورت اگر مدار رو درست بسته باشید خواهید دید که وسایل یا LED ها روشن میشن
تموم شد.
منتظر نظراتتون در رابطه با مقاله هستم

shahmahi
سه شنبه 12 آبان 1388, 10:28 صبح
اگه بخوایم اون برد رو ببندیم قطعاتش چقدر خرج داره ؟

.:KeihanCPU:.
سه شنبه 12 آبان 1388, 11:03 صبح
اگه بخوایم اون برد رو ببندیم قطعاتش چقدر خرج داره ؟

آیسی=800 تومان
رله =هر عدد تقریبا 400 تومان که 8 تاش میشه 3200
مقاومت ها و دید زنر هم با هم 200 تومان
فیش پارالل هم 400 تومان
با هزینه های کوچیک دیگه 5 تومانی میشه !

shahmahi
سه شنبه 12 آبان 1388, 13:06 عصر
آقا برنامت ایراد داره تو کد زیر BinToDec رو تعریف نکردی . :لبخندساده:
Private Sub Text1_Change()
Text2.Text = BinToDec(Text1.Text)
End Sub

.:KeihanCPU:.
سه شنبه 12 آبان 1388, 13:49 عصر
آقا برنامت ایراد داره تو کد زیر BinToDec رو تعریف نکردی . :لبخندساده:
در پست اول اصلاح شد
مجددا دانلود نمایید
بعد از 50 بار دانلود فقط یک نظر !!

Samsam2010
سه شنبه 12 آبان 1388, 15:58 عصر
با سلام خیلی جالبه

ابتدا باید یه برد رو که شماتیک(نقشه) اون در زیر هست رو طراحی کنیم.
این برد رو چه جوری باید طراحی کنیم بیشتر توضیح میدید اگر منظورتون بردی مثل مادر برد که باید سفارش بدیم
ایسوس برامون بسازه ؟
بعد با این سخت افزار چطوری چراغ های حال و آشپز خونه و .. رو کنترل کنیم ؟

ممنون میشم

shahmahi
سه شنبه 12 آبان 1388, 16:52 عصر
این برد رو چه جوری باید طراحی کنیم بیشتر توضیح میدید اگر منظورتون بردی مثل مادر برد که باید سفارش بدیم

دوست عزیز بهتر بود اینطوری سوال میکردی که آیا این کیت رو میشه آمادشو از بازار تهیه کرد یا نه ؟

.:KeihanCPU:.
سه شنبه 12 آبان 1388, 18:21 عصر
با سلام خیلی جالبه

این برد رو چه جوری باید طراحی کنیم بیشتر توضیح میدید اگر منظورتون بردی مثل مادر برد که باید سفارش بدیم
ایسوس برامون بسازه ؟
بعد با این سخت افزار چطوری چراغ های حال و آشپز خونه و .. رو کنترل کنیم ؟

ممنون میشم


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

2- خودتون بسازید که ساختنش اصلا کار سختی نیست .آموزش ساختنشم میتونین از گوگل بدست بیارید
اینجا هم یه منبع بهتون معرقی میکنم
http://www.electronic-abadan.blogfa.com/post-69.aspx

موفق باشی

shahmahi
سه شنبه 12 آبان 1388, 18:41 عصر
دوست عزیز ممنون میشم اگه مشخصات اون رله مناسب و دیود زنر رو که گفتی توضیح بدی.
بعد این مدار رو خودتون تست کردین یا نه ؟

.:KeihanCPU:.
سه شنبه 12 آبان 1388, 18:47 عصر
دوست عزیز ممنون میشم اگه مشخصات اون رله مناسب و دیود زنر رو که گفتی توضیح بدی.
بعد این مدار رو خودتون تست کردین یا نه ؟

اگه خواستید رله بخرید به فروشنده بگید رله ای بهتون بده که با 3 ولت تحریک بشه و ولتاژ 220 ولت رو وصل بچسبونه(آمپر رله هر چی بیشتر باشه میتونید وسیله ای با توان بیشتری رو راه انداری کنید)

مقدار دقیق دیود زنر رو نمیدونم ولی فکر کنم حوالی 9 ولت مناسب باشه
من خودم این مدار رو البته با LED تست کردم و جواب داده ،البته از دیود زنر استفاده نکردم
فکر کنم کار دیود زنر دراین مدار جلوگیری از برگشت ولتاژ به آیسی باشه
به هر حال اگه شما از رله استفاده کردین حتما از دیود زنر استفاده کنید

توجه کنید اگر آمپر دستگاهی که میخواین کنترل کنید از آمپر رله بیشتر باشه رله به اصطلاح خال میزنه و درست کار نمیکنه

adib202
سه شنبه 12 آبان 1388, 19:25 عصر
خیلی جالبه.

Dr.Bronx
سه شنبه 12 آبان 1388, 19:43 عصر
متشکر از آموزش عالیتون
اینطوری که من متوجه شدم ما فقط به رله ها دستور قطع و وصل برق میدیم درسته ؟


آمپر رله هر چی بیشتر باشه میتونید وسیله ای با توان بیشتری رو راه انداری کنید)

بعد از لحاظ مدار که اشکالی به وجود نمیاد ؟


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

.:KeihanCPU:.
سه شنبه 12 آبان 1388, 20:37 عصر
اینطوری که من متوجه شدم ما فقط به رله ها دستور قطع و وصل برق میدیم درسته ؟
دقیقا،در واقع کار رله همینه

بعد از لحاظ مدار که اشکالی به وجود نمیاد ؟
اگر آمپر رله کم باشه در نتیجه رله توان عبور جریان رو نداره؛ممکنه که مسیر جریان بر اثر عبور بیش از حد جریان قطع بشه


میشه در مورد عکس مربوطه توضیحاتی بفرمایید . من تا حالا با این پورت کار نکردم.

در چه موردی توضیح نیاز دارید؟

vbhamed
چهارشنبه 13 آبان 1388, 16:47 عصر
اگه خواستید رله بخرید به فروشنده بگید رله ای بهتون بده که با 3 ولت تحریک بشه و ولتاژ 220 ولت رو وصل بچسبونه(آمپر رله هر چی بیشتر باشه میتونید وسیله ای با توان بیشتری رو راه انداری کنید)

مقدار دقیق دیود زنر رو نمیدونم ولی فکر کنم حوالی 9 ولت مناسب باشه
من خودم این مدار رو البته با LED تست کردم و جواب داده ،البته از دیود زنر استفاده نکردم
فکر کنم کار دیود زنر دراین مدار جلوگیری از برگشت ولتاژ به آیسی باشه
به هر حال اگه شما از رله استفاده کردین حتما از دیود زنر استفاده کنید

توجه کنید اگر آمپر دستگاهی که میخواین کنترل کنید از آمپر رله بیشتر باشه رله به اصطلاح خال میزنه و درست کار نمیکنه

سلام

معمولا يك ديود معمولي براي جلوگيري از برگشت ولتاژ به ترانزيستور محرك رله يا آي سي استفاده ميشه كه در مورد آي سي 2803 اين ديود ها براي هر كانال داخل خود آي سي وجود دارن و نيازي به گذاشتن ديود جداگانه نيست كه در شماتيك زير اين موضوع رو مي بينيد

http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/SKA7/index_files/IMAGE014.JPG

ديود زنر كارش تثبيت ولتاژ هست تا يه موقع ولتاژ زيادي وارد مدار نشه كه معمولا يك دونه كافيه

Dr.Bronx
جمعه 15 آبان 1388, 04:53 صبح
یک سورس خیلی عالی در این زمینه پیدا کردم

http://www.planet-source-code.com/Upload_PSC/ScreenShots/PIC20067312129185317.jpg

Purpose The purpose of creating this project is to control all home equipments e.g. Fans, Lights, Door motor, Electric Heater, TV, VCR, Water Pump etc through Voice. The user will no longer have to move from his seat, just to turn on the Fan.

ضمیمه اضافه شد .
موفق باشید . /

kh-hamid
شنبه 14 آذر 1388, 13:36 عصر
یک سورس خیلی عالی در این زمینه پیدا کردم

ضمیمه اضافه شد .
موفق باشید . /
سلام
دوست گرامی برنامه با پیغام خطا در برقراری ارتباط با dll مواجه می شه .

.:KeihanCPU:.
شنبه 14 آذر 1388, 13:40 عصر
دوست گرامی برنامه با پیغام خطا در برقراری ارتباط با dll مواجه می شه .

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

ب- تات
پنج شنبه 19 آذر 1388, 20:36 عصر
البته در مورد انتخاب رله بايد توان وسيله مصرفي كه به آن متصل ميشه و مدت رماني كه رله ميخواد بچسبه در نظر گرفته بشه كه براي حل اين مشكل ميشه از رله هاي HeavyDuty استفاده كرد.

amirr66amirr66
پنج شنبه 03 دی 1388, 13:08 عصر
با سلام
خیلی ممنونم از فعالیت های دوستان در این زمینه
در تاپیک اول - دوم سورس برنامه VB بود
همان سورس برای C++‎ موجود است؟

farzadsw
جمعه 04 دی 1388, 18:41 عصر
یه جستجو بکنید ، به هر زبانی پیدا میشه:
http://www.codeproject.com/info/search.aspx?artkw=rs232
http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp? (http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=3&B1=Quick+Search&txtCriteria=serial&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariables=TRUE&optSort=Alphabetical)

sina26
یک شنبه 08 فروردین 1389, 11:45 صبح
سلام دوست گرامی
این نمونه خوبی بود برای من ممنونم خیلی خوب کار میکنه :قلب:

navidwhacker
شنبه 14 فروردین 1389, 13:05 عصر
سلام واقعا عالی بود.
فقط 1 سوال :
میشه نحوه اتصال اینمدار به برق خونه رو هم توضیح بدید.من چطور باید به چراق ها متصل بشم تا روشون کنترل داشته باشم؟

kooroush
شنبه 14 فروردین 1389, 18:43 عصر
یک سوال دیگه :
آیا این OCX ای که گذاشتید فقط سیگنال رو به پورت پارالل ارسال می کنه ؟؟؟
منظورم اینه فقط واسه پورت پرارالل ساخته شده ؟؟
اگه ما بخوایم به پورت USB ارسال کنیم چی کار باید کرد ؟

.:KeihanCPU:.
شنبه 14 فروردین 1389, 23:26 عصر
سلام واقعا عالی بود.
فقط 1 سوال :
میشه نحوه اتصال اینمدار به برق خونه رو هم توضیح بدید.من چطور باید به چراق ها متصل بشم تا روشون کنترل داشته باشم؟
به جای LEd ها رله میذاری،و رله رو در خط ورودی برق به لامپ قرار میدی

منظورم اینه فقط واسه پورت پرارالل ساخته شده ؟؟
بله
فقط برای این منظور ساخته شده است

navidwhacker
شنبه 21 فروردین 1389, 23:54 عصر
سلام.
من این مدار رو درست کردم دقیقا مثل چیزی که گفته شده بود ولی متاسفانه کار نمیکنه نمیدونم ایراد کار کجاس.
الان وقتی مدار رو به جریان 9ولت وصل میکنم همه جای مدارم جریان وجود داره این درسته؟
کسی میتونه کمک کنه لطفا.
:گریه:

.:KeihanCPU:.
یک شنبه 22 فروردین 1389, 00:01 صبح
این مدار رو من ساختم و تست کردم مطمئن باشید که کار میکنه
شاید آیسی رو بر عکس زدی
یه بار دیگه شماتیک(نقشه) رو با چیزی که ساختی مقایسه کن فکر کنم آیسی رو بر عکس زدی
از سالم بودن قطعاتتم مطمئن شو

arshpisheh
پنج شنبه 16 اردیبهشت 1389, 10:32 صبح
سلام.

من برای اولین بار دارم تلاش میکنم که توسط پورت سریال با یک وسیله ارتباط برقرار کنم و اطلاعات چندانی در این زمینه ندارم. فعلا دستگاه من یک پرینتر ساده ست که سعی میکنم اطلاعات یک text box رو روی آن چاپ کنم. البته کار اصلی گرفتن اطلاعات از یک وسیله است.

در برنامه یک پورت سریال تعریف کردم که بدون مشکل open میشه و حتی در ارسال پیغام هم errorی نمیده اما هیچ عکس العملی از پرینتر نمیبینم. راهی هست که چک کنم دستگاه پیغام من رو دریافت میکنه یا نه؟ اصلا این ارتباط برقرار شده یاخیر ؟

ممنون

farzadsw
پنج شنبه 16 اردیبهشت 1389, 11:44 صبح
برای ارتباط با پرینتر باید از پورت موازی استفاده کنید.

amirsajjadi
جمعه 17 اردیبهشت 1389, 21:44 عصر
سلام خدمت دوستان عزیز
آیا فقط با استفاده از پورت پارالل می تونیم 8 دستگاه رو کنترل کنیم یا اینکه میشه با استفاده از چند دیکدر وسیله های بیشتر رو کنترل کنیم؟
آیا با استفاده از تریستور به جای رله میشه وسیله های خونه رو کنترل کرد؟

ztx4
جمعه 17 اردیبهشت 1389, 23:13 عصر
آیا با استفاده از تریستور به جای رله میشه وسیله های خونه رو کنترل کرد؟

نه نمی شه.
ترانزیستور قادر به قطع و وصل کردن جریان های پایینه.
رله وسیله ای هست که برای قطع و وصل ولتاژهای بالا به کار می ره.
از یک طرف بهش ولتاژ پایین مثلا 3 ولت می دیم، داخل رله کانکتوری وجود داره که باعث می شه 2 تا از پایه های رله به هم وصل بشند.این 2 تا پایه و کانکتور قادر به تحمل ولتاژ های بالا مثلا 220 ولت رو دارند.بنابراین ما می تونیم با وصل یک ولتاژ پایین،برق 220 رو هم وصل کنیم.

ztx4
جمعه 17 اردیبهشت 1389, 23:16 عصر
سلام خدمت دوستان عزیز
آیا فقط با استفاده از پورت پارالل می تونیم 8 دستگاه رو کنترل کنیم یا اینکه میشه با استفاده از چند دیکدر وسیله های بیشتر رو کنترل کنیم؟

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

arshpisheh
شنبه 18 اردیبهشت 1389, 09:33 صبح
برای ارتباط با پرینتر باید از پورت موازی استفاده کنید.


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

من نمیتونم دائم برای تست از دستگاه استفاده کنم. به نظر شما بهترین وسیله برای جایگزین کردن آن برای تست چیه؟ چون میخوام اول روال درست رو پیدا کنم و بعد با تغییر اطلاعاتی چون باوود ریت به دستگاه اصلی وصل بشم.

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

amirsajjadi
شنبه 18 اردیبهشت 1389, 10:32 صبح
ممنون از پاسختون.

نه نمی شه.
ترانزیستور قادر به قطع و وصل کردن جریان های پایینه.
رله وسیله ای هست که برای قطع و وصل ولتاژهای بالا به کار می ره.
از یک طرف بهش ولتاژ پایین مثلا 3 ولت می دیم، داخل رله کانکتوری وجود داره که باعث می شه 2 تا از پایه های رله به هم وصل بشند.این 2 تا پایه و کانکتور قادر به تحمل ولتاژ های بالا مثلا 220 ولت رو دارند.بنابراین ما می تونیم با وصل یک ولتاژ پایین،برق 220 رو هم وصل کنیم.
من نوشته بودم تریستور دوست عزیز.
دلیل استفاده نکردنم از رله اینه که اگه کامپیوتر ریست یا خاموش بشه وسیله هایی که به کامپیوتر وصل هستند هم خاموش میشن ولی از یکی شنیدم که ترستور فقط کافیه یک ولتاژ بهش بدیم تا وصل بشه و اگه اون ولتاژ قطع بشه تریستور روشن میمونه.
ممنون میشم اگه دوستان منو بیشتر راهنمایی کنن.

arshpisheh
شنبه 18 اردیبهشت 1389, 12:10 عصر
سلام دوستان من یه سوال پرسیدم. کسی میتونه جواب بده؟؟؟؟؟؟؟

ztx4
شنبه 18 اردیبهشت 1389, 12:31 عصر
سلام دوستان من یه سوال پرسیدم. کسی میتونه جواب بده؟؟؟؟؟؟؟

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

ztx4
شنبه 18 اردیبهشت 1389, 12:35 عصر
ممنون از پاسختون.

من نوشته بودم تریستور دوست عزیز.
دلیل استفاده نکردنم از رله اینه که اگه کامپیوتر ریست یا خاموش بشه وسیله هایی که به کامپیوتر وصل هستند هم خاموش میشن ولی از یکی شنیدم که ترستور فقط کافیه یک ولتاژ بهش بدیم تا وصل بشه و اگه اون ولتاژ قطع بشه تریستور روشن میمونه.
ممنون میشم اگه دوستان منو بیشتر راهنمایی کنن.

ببخشید.
من فکر کردم استباه تایپی بوده.
با تریستور آشنا نیستم اما فکر می کنم با چند رله ی اضافی بشه همین امکان رو پیاده سازی کرد.
مراجعه کنید به کتاب های برق صنعتی و تفاوت مدار های دائم و لحظه ای رو مطالعه بفرمایید.

farzadsw
شنبه 18 اردیبهشت 1389, 12:45 عصر
سلام . ممنون از پاسختون. پرینتر رو فراموش کنید. من احتیاج دارم از یک دستگاه آزمایشگاهی توسط پورت سریال اطلاعاتی بگیرم و در دیتا بیس ذخیره کنم.

من نمیتونم دائم برای تست از دستگاه استفاده کنم. به نظر شما بهترین وسیله برای جایگزین کردن آن برای تست چیه؟ چون میخوام اول روال درست رو پیدا کنم و بعد با تغییر اطلاعاتی چون باوود ریت به دستگاه اصلی وصل بشم.

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

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



ممنون از پاسختون.

من نوشته بودم تریستور دوست عزیز.
دلیل استفاده نکردنم از رله اینه که اگه کامپیوتر ریست یا خاموش بشه وسیله هایی که به کامپیوتر وصل هستند هم خاموش میشن ولی از یکی شنیدم که ترستور فقط کافیه یک ولتاژ بهش بدیم تا وصل بشه و اگه اون ولتاژ قطع بشه تریستور روشن میمونه.
ممنون میشم اگه دوستان منو بیشتر راهنمایی کنن.

کار کردن به تریستور به سادگی رله نیست ، محاسبات داره (مراجعه شود به کتاب های الکترونیک صنعتی). ولی همونطور که گفته شد با چندتا رله میتونید کنتاکتور بسازید .(کنتاکتور معادل واقعی radio button هست).

Felony
پنج شنبه 23 اردیبهشت 1389, 06:41 صبح
سلام ،

من به وسیله پورت USB یه همچین چیزی ساختم ( با 1 رله ) ولی توسعه اون برای پروژه من خیلی سنگین و پر هزینه هست ، برای همین میخوام همین برد رو تبدیل کنم به USB ، آیا امکانش هست ؟ میشه با تبدیل یا یک مدار این برد رو به پرت SUB متصل و کنترلش کرد ؟

farzadsw
پنج شنبه 23 اردیبهشت 1389, 19:15 عصر
یکم بیشتر توضیح میدید؟
کدوم برد؟ مگه خودش usb نیست؟

babak_delphi
چهارشنبه 29 اردیبهشت 1389, 17:44 عصر
میتونیم از کامپوننت هایی مانند APro که معمولا برای برنامه نویسی تلفن گویا استفاده میشه و ابزارهایی برای کار با پورت com داره استفاده کرد؟

farzadsw
پنج شنبه 30 اردیبهشت 1389, 01:22 صبح
من با اون کامپوننت کار نکردم ولی اگه بتونه پورت کام رو باز کنه ، میشه ازش استفاده کرد . البته با وجود کامپوننت اصلی ویژوال استدیو ، به نظر من لزومی برای استفاده از بقیه کامپوننت ها نیست.

mostafaserial
یک شنبه 30 خرداد 1389, 23:12 عصر
سلام
من با پورت موازی و input32.dll کار کردم و از 8 تا خروجیش با هم استفاده کردم
حالا من با 7 تاش دارم کار میکنم و یک سری اطلااعات رو بخ خروجی میدم ولی مشکل اینجاست که من میخوام با پایه d7 که عددش 128 به صورت مجزا کار کنم یعنی 7 تای اول از 8 تا دارن کار خودشونو انجام میدن و پین شماره هشتم رو میخوام مثل یه پالس مربعی روشن وخاموش کنم . باید چیکار کنم که تداخل نداشته باشن
در میکرو مثلا میتونیم set portb.7
reset portb.7
آیا رو پورت هم میشه؟

farzadsw
دوشنبه 31 خرداد 1389, 20:15 عصر
برای صفرکردن بیت هشتم ، مقدار فعلی پورت رو با 01111111 (یا x7F هگز ) and کنید .
برای 1 کردنش هم مقدار فعلی پورت رو با 10000000 ( یا x80 هگز) or کنید .

younes55
جمعه 12 شهریور 1389, 11:19 صبح
ممنون از پاسختون.

من نوشته بودم تریستور دوست عزیز.
دلیل استفاده نکردنم از رله اینه که اگه کامپیوتر ریست یا خاموش بشه وسیله هایی که به کامپیوتر وصل هستند هم خاموش میشن ولی از یکی شنیدم که ترستور فقط کافیه یک ولتاژ بهش بدیم تا وصل بشه و اگه اون ولتاژ قطع بشه تریستور روشن میمونه.
ممنون میشم اگه دوستان منو بیشتر راهنمایی کنن.

اگر براي تغذيه مدار از پاور کامپيوتر استفاده نکنيم و از يک منبع خارجي مثلا آداپتور 6 ولت استفاده بشه باز هم وسيله ها خاموش ميشن يا نه ؟

لطفا راهنمايي کنيد

.:KeihanCPU:.
جمعه 12 شهریور 1389, 14:27 عصر
من نوشته بودم تریستور دوست عزیز.
دلیل استفاده نکردنم از رله اینه که اگه کامپیوتر ریست یا خاموش بشه وسیله هایی که به کامپیوتر وصل هستند هم خاموش میشن ولی از یکی شنیدم که ترستور فقط کافیه یک ولتاژ بهش بدیم تا وصل بشه و اگه اون ولتاژ قطع بشه تریستور روشن میمونه.
ممنون میشم اگه دوستان منو بیشتر راهنمایی کنن.

خیلی راحت میشه با دو تا رله اینو عملی کرد

ب- تات
یک شنبه 21 شهریور 1389, 14:14 عصر
خیلی راحت میشه با دو تا رله اینو عملی کرد

منظورتون رله و خود نگه دار هست؟

.:KeihanCPU:.
دوشنبه 22 شهریور 1389, 13:02 عصر
منظورتون رله و خود نگه دار هست؟

نمیدونم با طرز کار کنتاکتورها آشنایی دارید یا نه
ولی دقیقا عملکردی مشابه به کنتاکتور خواهد داشت با این تفاوت که به جای استفاده از کنتاکتور از رله استفاده میکنیم

sam166
یک شنبه 28 شهریور 1389, 13:03 عصر
سلام خسته نباشید
من از طریق پورت سریال اطلاعات از میکرو میگیرم و در کامپیوتر نمایش میدهم
حالا من میخوام از کامپیوتر اطلاعات را ارسال کنم و میکرو دریافت کند عملیات انجام بده
من دو چیز را میخوام بدونم
1- با چه دستوری اطلاعات را به میکرو بدهم vb
2- با چه دستوری میکرو اطلاعات را از پورت سریال درافت کند

البته طی تحقیقاتی که کردم با دستور input میشود اینکار را کرد ولی خودم هرچه قدر سعی کردم نشد

من این برنامه را نوشتم ولی زمانی که اجرا میکنم hello را نمایش میدهد و دیگر هیچ چیزی نمایش نمیدهد
با توجه به اینکه من از طریق یک برنامه اطلاعات را میفرستم
البته تو خود شبیه ساز بسکام خوب کار میکنه ولی...

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

$regfile = "m32def.dat"
$crystal = 1000000 'give here the value of the X-tal you use in Hertz
$baud = 1200
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.1 , Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim A As Word , Sum As Word , N As Word , C As Single , W As Integer
Config Porta = Input

Wait 1
Cursor Off
Cls
Locate 1 , 5
Lcd "Hello"
Wait 1
Cls
Do
W = 0
Input "enter number" , W

Locate 1 , 1
Lcd W

Loop

End

kernel
سه شنبه 30 شهریور 1389, 12:19 عصر
اوالا اینکه enable global interrupt

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

sam166
جمعه 02 مهر 1389, 12:33 عصر
اوالا اینکه enable global interrupt

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

ممنون از راهنمایی تون
ولی من در این دو موردی که شما عرض کردید اطلاعاتی ندارم
لطفا یک مثال همراه با توضیح اینجا بزارید

با تشکر

makhof
یک شنبه 04 مهر 1389, 15:25 عصر
سلام

در مورد پروژه شما اگه فقط یک کانال رو می خواهیدکنترل کنید یه راه خیلی ساده و کوتاه وجود داره که نیازی هم به میکرو نداره:لبخند:

makhof
یک شنبه 04 مهر 1389, 15:32 عصر
در مورد برنامه باید از VB چهار بایت رو ارسال کنید
اگه ار دستور waitkey استفاده کنید حتما موفق می شید یا مستقیما از وقفه پورت سریال و رجیستر های سریال پورت استفاده کنید
مثال:

Open "comd.7:9600,8,n,1" For Output As #1
Printbin #1 , 64 ; 17 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 81 ; 10
Close #1
'Waitms 10
Open "comd.6:9600,8,n,1" For Input As #2
For I = 1 To 13
Buf = Waitkey(#2)
Buffer(i) = Buf
Next I
Close #2

sam166
سه شنبه 06 مهر 1389, 12:51 عصر
سلام

در مورد پروژه شما اگه فقط یک کانال رو می خواهیدکنترل کنید یه راه خیلی ساده و کوتاه وجود داره که نیازی هم به میکرو نداره:لبخند:

خوب دوست عزیز اون راه چی هست


در مورد برنامه باید از VB چهار بایت رو ارسال کنید
اگه ار دستور waitkey استفاده کنید حتما موفق می شید یا مستقیما از وقفه پورت سریال و رجیستر های سریال پورت استفاده کنید
مثال:

Open "comd.7:9600,8,n,1" For Output As #1
Printbin #1 , 64 ; 17 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 81 ; 10
Close #1
'Waitms 10
Open "comd.6:9600,8,n,1" For Input As #2
For I = 1 To 13
Buf = Waitkey(#2)
Buffer(i) = Buf
Next I
Close #2

من منظورم در برنامه میکرو بود
شما میتونید یک مثال بزنید که میکرو اطلاعات را دریافت کند

aleas2
شنبه 10 مهر 1389, 14:55 عصر
کامپیوتر بنده سوکت پارالل 25 پین نداره میخواستم بدونم آیا میشه از طریق usb اینکارو کرد ؟وچطوری باید باید اینکارو بکنم و چه چیزی باید خریداری کنم و چطوری به برد وصلش کنم و چطوری با vb6 مدیریتش کنم؟

roohala
دوشنبه 12 مهر 1389, 15:34 عصر
مي خواستم بدونم ميشه تعداد وسايل رو از 8 تا بيشتر كرد (مثلا 12 يا 24) اگه ميشه چه جوري ممنون ميشم اگه توضيح بدين

.:KeihanCPU:.
دوشنبه 12 مهر 1389, 16:41 عصر
مي خواستم بدونم ميشه تعداد وسايل رو از 8 تا بيشتر كرد (مثلا 12 يا 24) اگه ميشه چه جوري ممنون ميشم اگه توضيح بدين

با این ساختار فکر نمیکنم
مگر اینکه مدار و طرز کار کلا عوض بشه

stahad1
جمعه 30 مهر 1389, 23:43 عصر
اگه بخوام این کارو بکنم چه وسیله یا وسیله های را لازم دارم من علاقه مند ولی هیچی بلد نیستم

kernel
سه شنبه 16 آذر 1389, 22:15 عصر
مي خواستم بدونم ميشه تعداد وسايل رو از 8 تا بيشتر كرد (مثلا 12 يا 24) اگه ميشه چه جوري ممنون ميشم اگه توضيح بدين

اگه محدودیت پایه های میکرو منظورتونه . این کار رو میشه با اضافه کردن multiplexer / demultiplexer بر طرف کرد

البته تو نگاه اول به نظر میرسه چون دو تا خروجی نمیتونن تو یک لحضه کنترل بشن این کار محدودیت میاره برامون . اما چون سرعت سوئیچ mux/demux در حد میکروثانیه هست و مدار کنترل شما هم احیانا از رله استفاده می کنه . در عمل رله اصلا متوجه سوئیچها نمیشه

Mohsen6558
جمعه 17 دی 1389, 15:06 عصر
دوستان عزیز و محترم
برداشت خودم رو تا اینجا می گم بعدش رو سوال می کنم مرسی از توجهتون
برای کنترل وسائل الکترونیکی ما نیاز به یه مداری داریم که از یه رله داره تهایتش که ولی جریان وصل باشه رله فعال می شه و دو قسمتی که قراره برق رو وصل کنه رو وصل می کنه خود این برد به کامپیوتر توسط پورت Com وصل شده و با نرم افزار به پورت جریان داده می شه و وقتی این کار شکل گرفت رله فعال می شه تا اینجا برداشت من از این تاپیک هست
حالا
1- دستگاهی که ما باهاش سر و کار داریم یه موتور صنعتی هست برای کنترل این رله ی خاصی نیاز هست؟ (با توجه به توان مورد نیاز)
2- موتور اگر به مدت مثلا ده ثانیه فعال باشه یک متر حرکت می کنه با نرم افزار باید برق رو فعال کنیم بعد از ده ثانیه جریان رو قطع کنیم؟

با تشکر

farzadsw
یک شنبه 26 دی 1389, 17:29 عصر
1. اگه فقط قصد روشن و خاموش کردن موتور رو دارید ، ساده ترین (نه لروما بهتربن) راه استفاده از رله های توان بالا یا رله + کنتاکتور هست(بستگی به توان موتور)
2.اگه مبخوابد با استفاده از موتور چیزی رو حرکت بدید و دفت نسبتا خوبی هم لازم دارید ، این قطع و وصل کردنها اصلا روش خوبی نیست . باید سخت افزار درایور موتو و فیدبک و کنترل کننده (مثل PID) داشته باشید تا بتونید سرعت و گشتاور موتور و در نتیجه موفعیت جسم رو با دقت مناسبی تعیین کنید. ولس اگر مثلا 10 متر و 10.5 متر براتون فرقی نداره همین فطع و وصل میتونه کار رو راه بندازه.

Mohsen6558
یک شنبه 26 دی 1389, 17:32 عصر
یعنی شما فک می کنین که استفاده از رله + کنتاکتوردقت زمانی نداره؟
یعنی وقتی که ما برق رو می دیم به رله تاخیر زیادی خواهد داشت؟ با انتخاب رله ی مناسب حل نمی شه این مشکل؟

farzadsw
یک شنبه 26 دی 1389, 18:00 عصر
غیر از تاخیر ، شما هیچ فیدبکی از موتور یا موفعیت جسمتون ندارید ، که در این حالت هیج وفت نمیتونید بگید اگه الان توی 10.00 ثانیه مثلا 1.20 متر رو رفت ، دفعه بعد هم توی 10.00 ثانیه همون فدر میره .
چون مثلا موتور و اون جسم یه اینرسی و دینامیکی دارن که، کم و زیاد شدن :وزن جسم (چیزی روش سوار باشه)، اصطکاک ، دمای محیط ، ولتاژ و جریان تغذیه و .... باعث تغییر توی نتیجه میشه و همه اینا هر دفعه با دفعه فبل تفاوت دارن و باعث میشن نتیجه یه تلورانسی داشته باشه(مثلا نیم متر) . حالا نویز و اغتشاش خارجی رو هم اضافه کنبد اوضاع بد تر مبشه . همچنین زمان کلید زنی رله ها و کنتاکتور ها (علاوه بر تاحیرشون)ثابت نیستن و مثلا یکبار 0.04 ثانیه و یکبار 0.09 ثانیه میتونه باشه. پس راه حلش اینه یه فیدبک (سنسور سرعت موتو یا موفعیت جسم) + یه کنترلکننده (مثلا pid) داشته باشین تا با توجه و وضعیت جسم فرمان ارسال بشه ، نه چشم بسته .

علاوه بر اون ،موفعیت جسم شما ، با مدت زمان وصل بودن برقش رایطه خطی نداره که . یعنی اگه 10 ثانیه 1 متر میره ، فطعا توی 20 ثانیه 2 متر یا توی 5 ثانیه نیم متر نمیره ! ممکنه 2.14 متر و 0.43 متر بره.برای همین به درایور موتور نیاز دارید تا این رابطه رو براتون خطی کنه .

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

shahrooz232
دوشنبه 04 بهمن 1389, 19:53 عصر
سلام.
من این قطعاتی که برای شروع کار با usb در اینجا http://barnamenevis.org/showthread.php?270411-%D8%B4%D8%B2%D9%88%D8%B9-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%85%DB%8C%DA%A9%D8%B1%D9%88-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-%D9%87%D8%A7-%28-AVR-PIC-...%29 گفته شده رو تهیه کردم. حالا نقشه ی مدار کجاست ؟

farzadsw
جمعه 08 بهمن 1389, 04:41 صبح
برای شروع بهتره ارتباط سریال رو انجام بدید نه USB . توضیحات لازم برای ارتباط سریال تو پست چهارم همین تاپیک گفته شده. اگر کامپیوتر(لپتاپ) شما پورت سریال نداره ، فقط کافیه از یه کابل سریال به USB استفاده کنید(با همون سخت افزار سریال).
در فدم بعدی میتونید از IC های FTDI که فبلا تو همین تالار در موردش بحث شده ، استفاده کنید.

hashemys
چهارشنبه 07 اردیبهشت 1390, 18:31 عصر
سلام دوستان
من مدار ارتباط میکرو با پورت سریال را ساختم
اما هرچه پروگرامش میکنم که مثلا hello را به پورت ارسال کنه ، به جاش یک سری عدد و حروف کاملا بی ارتباط به این کلمه را ارسال می کنه
به نظر شما مشکل کجاست؟
متشکرم که راهنمایی می کنید

farzadsw
جمعه 09 اردیبهشت 1390, 13:45 عصر
به احتمال زیاد Baud rate ها یکی نیست . مثلا دوطرف (میکرو و pc ) رو 9600 تنظیم کنید.

hasanmomen68
سه شنبه 03 خرداد 1390, 15:06 عصر
سلام دوستان خسته نباشید
می بخشید من
می خوام یه برنامه بنویسم که باهاش بشه بین دو تاکامپیوتر که از طریق LPT دوطرفه به هم وصل شدن کارراکتر ارسال کنم:
از دستور
outport(0x378,'value')
و فایل Dos.h استفاده می کنم ولی تو کامپیوتر مقصد مقدار پین تغییر نمی کنه می شه کمکم کنید؟

parham2011
دوشنبه 14 آذر 1390, 10:51 صبح
سلام دوستان

من سایتی ایرانی پیدا کردم که برد داره که میتونه از طریق پورت USBوسایل برقی را کنترل کنه. ضمنا نمونه برنامه VB و Delphi v رو هم داره

http://www.shayantec.com/products.htm

davoodrm666_666
سه شنبه 22 آذر 1390, 18:11 عصر
سلام دوستان
تا حالا فکرشو کردید که اگه چراغهای خونتونو با کامپیوتر خاموش و روشن کنید چه جالب میشه.
با توجه به اینکه خودم قبلا این مشکل رو داشتم و خیلی از دوستان هم ممکنه بخوان این کار رو انجام بدن به فکر این افتادم که این مقاله رو بنویسم و واسه دوستان نحوه کار رو توضیح بدم.

خب واسه انجام این کار، پروژه مون رو به دو قسمت تقسیم بندی میکنیم:
1-سخت افزار
2-نرم افزار

نه نه ! نترس سخت افزارش خیلی سادست .

ابتدا باید یه برد رو که شماتیک(نقشه) اون در زیر هست رو طراحی کنیم.
http://www.epanorama.net/circuits/uln2803circuit.gif
خب.ساختن این مدار خیلی سادست
میبینید که مدارمون از یک آی سی ULN 2803 (تعداد 8 عدد ترانزیستور NPN جا سازی شده در یک آی سی)، 8 تا مقاومت 390 اهم،دیود زنر و 8 عدد LED تشکیل شده که بعد از اینکه مدار رو چک کردیم به جای 8 تا LED از 8 تا رله مناسب استفاده میکنیم.
خب این میشه سخت افزار پروژمون،دیدی که چقدر ساده بود.
اما این مدار باید از یه جایی به کامپیوتر وصل بشه دیگه !
برای این منظور ما از سوکت پارالل 25 پین استفاده میکنیم.
اما طریقه وصل کردن مدارمون به پارالل پورت در زیر نشون داده شده.
http://www.globu.net/pp/english/ES/images_interfacing/clip_image001.gif
اگه توجه کرده باشید میبینین که سمت چپ مدارمون تعداد 8 تا پین جا گذاشتیم که وصل بشه به یه جایی.در شکل بالا میبینید که پایه های 9 تا 2 به پین های 1 تا 8 در مدار بالا وصل میشه

از پایه 18 تا 25 هم به هم وصل میشه و همه به زمین یعنی منفی وصل میشن
باقی پین ها هم کاری نداریم
این هم از طریقه اتصال پارالل پورت به مدارمون !
در آخر هم در مکانهایی که تعیین شده ولتاژ 9 ولت وصل میکنیم که مدارمون تغذیه بشه

حالا میریم سراغ نرم افزار:

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

حالا یه مثال عملی از کارمون میزنم
با این مداری که ساختیم و با پورت پارالل میتونیم 8 تا وسیله رو کنترل کنیم.
حالا شما فرض کنید میخواین وسیله اول و هشتم روشن بشن و بقیه خاموش باشن
پس باید پین اول و هشتم رو 1 و بقیه رو که میخوایم خاموش باشن 0 کنیم
اینطوری میشه: 10000001
یا مثلا میخوایم وسیله دوم ،سوم و هفتم روشن باشن و بقیه خاموش عدد باینری اینطوری میشه
01100010

حالا باید این عدد رو به پورت پارالل بفرستیم.
اما قبل از این کار باید یه تغییراتی در عدد ایجاد کنیم و اونو از مبنای 2(باینری) به مبنای 10(دسیمال)ببریم.
بعد از اینکه این تغییر رو انجام دادیم باید عدد دسیمال ایجاد شده رو به پورت بفرستیم.
نحوه تبدیل باینری به دسیمال در پروژه ضمیمه قرار داده شده.

اما چطور این عدد رو به پورت بفرستیم .
کاری نداره !
برای این منظور میایم از اکتیو ایکس یا دی ال ال های آماده استفاده میکنیم که من در پروژه از اکتیو ایکس hwinterface استفاده کردم
کار باهاش خیلی راحته :
اگر اسم اکتیو ایکس که تو فرم گذاشتم Po1 باشه
با این کد عدد دسیمال به پورت فرستاده میشه

Po1.OutPort &H378, 255&378 همیشه ثابته و نیازی به تغییر نداره
255 هم عدد دسیمالیه که تبدیلش کردیم

با فرستادن این عدد به پورت اگر مدار رو درست بسته باشید خواهید دید که وسایل یا LED ها روشن میشن
تموم شد.
منتظر نظراتتون در رابطه با مقاله هستم

میشه همین مدار رو طوری تغییر داد که با پورت سریال کار کنه؟

sonixax
پنج شنبه 10 فروردین 1391, 05:27 صبح
سلام ،
نمونه برای مدار های پیچیده تر هم دارید ؟
مثلا ۳۲ تا یا بیشتر خروجی I/O داشته باشه و همین تعداد ورودی برای دریاف اطلاعات سنسور ها .
البته دیمر هم هست بشه کنترلش کرد .

نمیدونم پورت سریال تعداد بالا رو پشتیبانی میکنه یا نه ولی من یک سری مدار از قبل آماده دیدم که از طریق شبکه یا USB یک سری رله رو میشه باهاشون کنترل کرد - ولی ۲ تا ایراد عمده دارند :

۱ - یه جورایی کنترل یک یا چند دیمر از طریقشون افسانه هستش .
۲ - یک رله یک سره وصل و یا قطع هستش و نمیشه اون رو به صورت موقتی قطع و وصل کرد (مثل این شاستی فشاری ها) .

دوستان اگر راهی بلدند راهنمایی کنند که خیلی گیرم :ناراحت:

sharin
دوشنبه 14 فروردین 1391, 00:35 صبح
براي افزايش I/O مي شه از لچ استفاده كرد .
اون چيزايي هم كه براي پورت سريال ( يا USB ) ديد ، در واقع يك دستگاه جانبي هست كه درش ميكرو كنترلر هست.
اگر برنامه ي كاربري سمت PC رو خوب بتونيد بنويسيد ، مواردي رو كه بالا گفتيد مي شه انجام داد ...

R_BABAZADEH
چهارشنبه 23 فروردین 1391, 19:49 عصر
بهترین لچ برای افزایش خروجی 74hc595 است
میشه کلی از اینا رو پشت سر هم بست به صورت سریال فقط 3 تا سیم بعد n تا خروجی داشت
از این ای سی تو تابلو روانها زیاد استفاده میشه
برای ورودی هم میشه از 74h165 استفاده کرد

saeidpsl
یک شنبه 10 اردیبهشت 1391, 05:12 صبح
سلام دوستان
تا حالا فکرشو کردید که اگه چراغهای خونتونو با کامپیوتر خاموش و روشن کنید چه جالب میشه.
با توجه به اینکه خودم قبلا این مشکل رو داشتم و خیلی از دوستان هم ممکنه بخوان این کار رو انجام بدن به فکر این افتادم که این مقاله رو بنویسم و واسه دوستان نحوه کار رو توضیح بدم.

خب واسه انجام این کار، پروژه مون رو به دو قسمت تقسیم بندی میکنیم:
1-سخت افزار
2-نرم افزار

نه نه ! نترس سخت افزارش خیلی سادست .

ابتدا باید یه برد رو که شماتیک(نقشه) اون در زیر هست رو طراحی کنیم.
http://www.epanorama.net/circuits/uln2803circuit.gif
خب.ساختن این مدار خیلی سادست
میبینید که مدارمون از یک آی سی ULN 2803 (تعداد 8 عدد ترانزیستور NPN جا سازی شده در یک آی سی)، 8 تا مقاومت 390 اهم،دیود زنر و 8 عدد LED تشکیل شده که بعد از اینکه مدار رو چک کردیم به جای 8 تا LED از 8 تا رله مناسب استفاده میکنیم.
خب این میشه سخت افزار پروژمون،دیدی که چقدر ساده بود.
اما این مدار باید از یه جایی به کامپیوتر وصل بشه دیگه !
برای این منظور ما از سوکت پارالل 25 پین استفاده میکنیم.
اما طریقه وصل کردن مدارمون به پارالل پورت در زیر نشون داده شده.
http://www.globu.net/pp/english/ES/images_interfacing/clip_image001.gif
اگه توجه کرده باشید میبینین که سمت چپ مدارمون تعداد 8 تا پین جا گذاشتیم که وصل بشه به یه جایی.در شکل بالا میبینید که پایه های 9 تا 2 به پین های 1 تا 8 در مدار بالا وصل میشه

از پایه 18 تا 25 هم به هم وصل میشه و همه به زمین یعنی منفی وصل میشن
باقی پین ها هم کاری نداریم
این هم از طریقه اتصال پارالل پورت به مدارمون !
در آخر هم در مکانهایی که تعیین شده ولتاژ 9 ولت وصل میکنیم که مدارمون تغذیه بشه

حالا میریم سراغ نرم افزار:

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

حالا یه مثال عملی از کارمون میزنم
با این مداری که ساختیم و با پورت پارالل میتونیم 8 تا وسیله رو کنترل کنیم.
حالا شما فرض کنید میخواین وسیله اول و هشتم روشن بشن و بقیه خاموش باشن
پس باید پین اول و هشتم رو 1 و بقیه رو که میخوایم خاموش باشن 0 کنیم
اینطوری میشه: 10000001
یا مثلا میخوایم وسیله دوم ،سوم و هفتم روشن باشن و بقیه خاموش عدد باینری اینطوری میشه
01100010

حالا باید این عدد رو به پورت پارالل بفرستیم.
اما قبل از این کار باید یه تغییراتی در عدد ایجاد کنیم و اونو از مبنای 2(باینری) به مبنای 10(دسیمال)ببریم.
بعد از اینکه این تغییر رو انجام دادیم باید عدد دسیمال ایجاد شده رو به پورت بفرستیم.
نحوه تبدیل باینری به دسیمال در پروژه ضمیمه قرار داده شده.

اما چطور این عدد رو به پورت بفرستیم .
کاری نداره !
برای این منظور میایم از اکتیو ایکس یا دی ال ال های آماده استفاده میکنیم که من در پروژه از اکتیو ایکس hwinterface استفاده کردم
کار باهاش خیلی راحته :
اگر اسم اکتیو ایکس که تو فرم گذاشتم Po1 باشه
با این کد عدد دسیمال به پورت فرستاده میشه

Po1.OutPort &H378, 255&378 همیشه ثابته و نیازی به تغییر نداره
255 هم عدد دسیمالیه که تبدیلش کردیم

با فرستادن این عدد به پورت اگر مدار رو درست بسته باشید خواهید دید که وسایل یا LED ها روشن میشن
تموم شد.
منتظر نظراتتون در رابطه با مقاله هستم




سلام
میخواستم بدونم تو این برنامه چه جوری شماره پورت رو پیدا میکنه
یعدش من از کنورتور db 9 to db 25 استفاده میکنم اینم عکسش

http://www.computercableinc.com/ccinc/images/ADAPTER-Serial-Adapter-DB9-25M-BestLink.JPG

با این هم میشه راه انداخت یا فقط با کیبل LPT

saeidpsl
چهارشنبه 13 اردیبهشت 1391, 17:09 عصر
سلام
چه جوری میشه کد رو ذخیره کرد داخل ic که مثلا اگه کامپیوتر هم خاموش بشه دیگه هم کار کنه
:متفکر:

mehdi.kr
دوشنبه 07 بهمن 1392, 18:52 عصر
سلام دوستان
من این وسیله رو ساختم با Uart
ولی بعد از 1-2 ساعت ارتباط با میکرو قطع میشه !
اینم کد میکرو :


$regfile "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Serialin = Normal
Config Serialout = Normal

'------------------------------------------------------------------------------------
Config Portb.0 = Output ' Power
Config Portb.1 = Output ' Relay (1)
Config Portb.2 = Output ' Relay (2)
Config Portb.3 = Output ' Relay (3)
Config Portb.4 = Output ' Relay (4)


Dim A As Byte
Dim R As Bit
R = 0

Set Portb.0


Declare Sub R1(byval A As Byte)
Declare Sub R2(byval A As Byte)
Declare Sub R3(byval A As Byte)
Declare Sub R4(byval A As Byte)
Declare Sub Status()



Do
A = 0
A = Inkey()

If Chr(a) = "R" Then
R = 1
Waitms 100
Print "Y"
Elseif Chr(a) = "S" Then
'-----------------------------------------------------------------------------
Elseif Chr(a) = "1" Or Chr(a) = "5" Then
Call R1(a)
Elseif Chr(a) = "2" Or Chr(a) = "6" Then
Call R2(a)
Elseif Chr(a) = "3" Or Chr(a) = "7" Then
Call R3(a)
Elseif Chr(a) = "4" Or Chr(a) = "8" Then
Call R4(a)
'-----------------------------------------------------------------------------
End If


Loop




Sub R1(byval _a As Byte)
If R = 1 Then
If Chr(a) = "1" Then
Set Portb.1
Elseif Chr(a) = "5" Then
Reset Portb.1
End If

Waitms 50
Print "D"
R = 0
End If
End Sub R1(byval A As Byte)

Sub R2(byval _a As Byte)
If R = 1 Then
If Chr(a) = "2" Then
Set Portb.2
Elseif Chr(a) = "6" Then
Reset Portb.2
End If

Waitms 50
Print "D"
R = 0
End If
End Sub R2(byval A As Byte)

Sub R3(byval _a As Byte)
If R = 1 Then
If Chr(a) = "3" Then
Set Portb.3
Elseif Chr(a) = "7" Then
Reset Portb.3
End If

Waitms 50
Print "D"
R = 0
End If
End Sub R3(byval A As Byte)

Sub R4(byval _a As Byte)
If R = 1 Then
If Chr(a) = "4" Then
Set Portb.4
Elseif Chr(a) = "8" Then
Reset Portb.4
End If

Waitms 50
Print "D"
R = 0
End If
End Sub R4(byval A As Byte)

Sub Status()
If R = 1 Then

If Portb.1 = 1 Then
Print "1"
Else
Print "5"
End If
Waitms 50

If Portb.2 = 1 Then
Print "2"
Else
Print "6"
End If
Waitms 50

If Portb.3 = 1 Then
Print "3"
Else
Print "7"
End If
Waitms 50

If Portb.4 = 1 Then
Print "4"
Else
Print "8"
End If

Waitms 50
Print "D"
R = 0
End If
End Sub Status()

mehdi.kr
دوشنبه 07 بهمن 1392, 18:58 عصر
سلام
من میخوام میکرو رو با USB به کامپیوتر وصل بکنم
از این تبدیل های COM به USB هم استفاده کردم ولی هرچی از هر طرف میفرستم یه چیز دیگه میگیرم !

m.j_banitaba
چهارشنبه 09 بهمن 1392, 12:13 عصر
فرکانس فرستنده با گیرنده تفاوت می کنه

downloaderman
پنج شنبه 22 خرداد 1393, 19:36 عصر
سلام من این مدار رو ساختم ولی از کامپیوتر فرمان نمی گیره لطفا یه برنامه برای8 رله بزارید ممنون میشم
120131

mehdi.kr
پنج شنبه 22 خرداد 1393, 22:31 عصر
از چه میکرویی استفاده کردی؟
رله ها به چه پایه هایی وصلن؟
برنامه سمت کامپیوتر میخواد
برنامه میکرو هم میخواد که باید با هم هماهنگ باشن
نگفتی کدومشو میخوای
در ضمن این مدارت با چی رله ها رو روشن میکنه؟

.:KeihanCPU:.
سه شنبه 16 دی 1393, 19:03 عصر
از زمان ارسال اولین پست این تایپیک 5 سال میگذره.
همینطوری بعد از مدتها گذرم به برنامه نویس افتاد ,گفتم بیام یه سری به این تایپیک بزنم
خوشحالم که میبینم خیلیا استفاده کردن
امیدوارم ادمین مارو بن نکنه :لبخند:
برنامه نویس ممنون بخاطر هرچی که ازت یاد گرفتم

erfan8000
شنبه 20 تیر 1394, 18:29 عصر
دمت گرم
من که فیض بردم
در حال حاظر با بورد های آردوینو arduino

به راحتی می تونیداین کار رو انجام بدید
من دارم این پروژه رو با آردوینو شروع می کنم
چون علاوه بر کنترل وسایل از پایه های آردونو می تونی برای دریافت اطلاعات از سنسورهای مختلف استفاده کنید

jghadim
چهارشنبه 23 تیر 1395, 22:48 عصر
سلام حالتون خوبه
من يه فركانس متر با تغذيه 9 ولت از 0 تا 50 مگا هرتز ميخام كه حين اندازه گيري در هر ثانيه مقداري رو كه قرائت شده را در يك رم SD ذخيره كنه و بشه با اتصال رم به كامپيوتر اون مقادير رو بصورت اعداد خواند. مثلا در ثانيه اول 8.05866 و در ثانيه دوم 8.054268 و ..... اين مقادير در قالب جدول فايل اكسل يا بصورت فايل تكست ذخيره شه.
با هر بار فعال كردن فركانس متر مقادير در فايل جديد ذخيره بشه.
اين امكان وجود داره؟ هزينه انجام چقدر ميشه؟

typeman9
دوشنبه 14 اسفند 1396, 15:31 عصر
یه جستجو بکنید ، به هر زبانی پیدا میشه:
http://www.codeproject.com/info/search.aspx?artkw=rs232
http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp? (http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=3&B1=Quick+Search&txtCriteria=serial&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariables=TRUE&optSort=Alphabetical)



سلام:
اسم همه ی زبانها اومده بجز زبان اسمبلی . خب طبیعیه چون همه اسمبلی رو به عدم قابلیت حمل و دشواری گرامر و دشواری دیباگ متهم می کنند.
اما شما یک سری به سایت اسمبلر Fasm که بزنید متوجه می شوید که این اسمبلر قابل حمل و ساده و استثنایی و رایگان در مورد میکروکنترولرها مستندات و برنامه های فراوانی ایجاد کرده .
عملا اسمبلی هم میتونه تو حوزه ی میکروکنترولر مدعی باشه :
ادرس سایت اسمبلر Fasm
https:flatassembler.net

روی عبارت MessageBoard کلیک کنید تا وارد انجمن کاربران زبان اسمبلی شوید .