۱۱-مهر-۱۳۸۹, ۲۳:۰۹:۳۰
سلام برهمگی این آموزش چراغهای خونتونو با کامپیوتر خاموش و روشن کنید وبا پورت پارالل 25 پین هسته تا اخر که خوندنیش ومتوجه طرز کار برنامه شدین به من بگین چطور میتونم با پورت usb اینکارو بکنم؟
خب واسه انجام این کار، پروژه مون رو به دو قسمت تقسیم بندی میکنیم:
1-سخت افزار
2-نرم افزار
نه نه ! نترس سخت افزارش خیلی سادست .
ابتدا باید یه برد رو که شماتیک(نقشه) اون در زیر هست رو طراحی کنیم.
خب.ساختن این مدار خیلی سادست
میبینید که مدارمون از یک آی سی ULN 2803 (تعداد 8 عدد ترانزیستور NPN جا سازی شده در یک آی سی)، 8 تا مقاومت 390 اهم،دیود زنر و 8 عدد LED تشکیل شده که بعد از اینکه مدار رو چک کردیم به جای 8 تا LED از 8 تا رله مناسب استفاده میکنیم.
خب این میشه سخت افزار پروژمون،دیدی که چقدر ساده بود.
اما این مدار باید از یه جایی به کامپیوتر وصل بشه دیگه !
برای این منظور ما از سوکت پارالل 25 پین استفاده میکنیم.
اما طریقه وصل کردن مدارمون به پارالل پورت در زیر نشون داده شده.
اگه توجه کرده باشید میبینین که سمت چپ مدارمون تعداد 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 ها روشن میشن
تموم شد.
منتظر نظراتتون در رابطه با مقاله هستم
اینم سورس برنامه
http://up.iranblog.com/Files73/c858474c58b7487fac0e.rar
خب واسه انجام این کار، پروژه مون رو به دو قسمت تقسیم بندی میکنیم:
1-سخت افزار
2-نرم افزار
نه نه ! نترس سخت افزارش خیلی سادست .
ابتدا باید یه برد رو که شماتیک(نقشه) اون در زیر هست رو طراحی کنیم.
خب.ساختن این مدار خیلی سادست
میبینید که مدارمون از یک آی سی ULN 2803 (تعداد 8 عدد ترانزیستور NPN جا سازی شده در یک آی سی)، 8 تا مقاومت 390 اهم،دیود زنر و 8 عدد LED تشکیل شده که بعد از اینکه مدار رو چک کردیم به جای 8 تا LED از 8 تا رله مناسب استفاده میکنیم.
خب این میشه سخت افزار پروژمون،دیدی که چقدر ساده بود.
اما این مدار باید از یه جایی به کامپیوتر وصل بشه دیگه !
برای این منظور ما از سوکت پارالل 25 پین استفاده میکنیم.
اما طریقه وصل کردن مدارمون به پارالل پورت در زیر نشون داده شده.
اگه توجه کرده باشید میبینین که سمت چپ مدارمون تعداد 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 ها روشن میشن
تموم شد.
منتظر نظراتتون در رابطه با مقاله هستم
اینم سورس برنامه
http://up.iranblog.com/Files73/c858474c58b7487fac0e.rar