سلام
برای قسمتی از پروژه ام باید یه رله یا کلید فشاری را به کامپیوتر وصل کنم.
وقتی کلید فشرده میشه ( on میشه ) کامپیوتر تشخیص بده و دستوری که براش تعریف میکنم را اجرا کنه.
لطفا در این مورد راهمایی کنید
سلام
برای قسمتی از پروژه ام باید یه رله یا کلید فشاری را به کامپیوتر وصل کنم.
وقتی کلید فشرده میشه ( on میشه ) کامپیوتر تشخیص بده و دستوری که براش تعریف میکنم را اجرا کنه.
لطفا در این مورد راهمایی کنید
زبان برنامه برام مهم نیست
من برای قسمتی از پروژه ام نیاز دارم که یه کلید فشاری یا رله به کامپیوتر وصل کنم و هر وقت کلید فشرده شد کامپیوتر از طریق وبکم عکس بگیره و save کنه
لطفا کمک کنید
سلام
راحت ترین راه برای ارتباط وسایل و ابزار به رایانه برای پروژه های کوچک استفاده از پورت LPT یا همان پورت پیرنتر یا همان درگاه سنترونیکس است.
این درگاه شامل خروجی و ورودی است که بسیار راحت میتوان آن را از داخل برنامه کنترلر کرد.
ترتیب و شماره پین ها را باید ببینم و برایتان بنویسم ولی شماره پورتش تا جایی که یادم است (اولین شماره) 0x0378H است، جزییات پین ها را انشا ا... اگر یادم باشد تا شنبه در می آورم و برایتان میگذارم.
اطلاعات تک تک پایه های کانکتور sub-D25 مربوط به درگاه LPT1 :
پین ها :
01 - STROB - Address: 0x37A.0 - I/O
02 - D0 - Address: 0x378.0 - OUT
03 - D1 - Address: 0x378.1 - OUT
04 - D2 - Address: 0x378.2 - OUT
05 - D3 - Address: 0x378.3 - OUT
06 - D4 - Address: 0x378.4 - OUT
07 - D5 - Address: 0x378.5 - OUT
08 - D6 - Address: 0x378.6 - OUT
09 - D7 - Address: 0x378.7 - OUT
10 - ACK - Address: 0x379.6 - INP
11 - BUSY - Address: 0x379.7 - INP
12 - PE - Address: 0x379.5 - INP
13 - SELECT - Address: 0x379.4 - INP
14 - AUTO FEED - Address: 0x37A.1 - I/O
15 - ERROR-NC - Address: 0x379.3 - INP
16 - INT - Address: 0x37A.2 - I/O
17 - SEL IN - Address: 0x37A.3 - I/O
18 ~ 25 - GND = زمین = صفر ولت
همانطور که از لیست فوق مشخص است در گاه LPT1 شامل سه پورت مجزا برای آدرس دهی است (LPT2 در صورت وجود شماره x278 را دارد)
- پورت اول با آدرس x378 صرفاً خروجی است، پین های این درگاه توانایی ارائه جریان 2.6mA و تحمل پیک 24mA را دارند.
- پورت دوم با آدرس x379 صرفاً ورودی است، بیتهای 0 و 1 و 2 این درگاه در دسترس نیستند.
- پورت سوم با آدرس x37A میتواند به عنوان ورودی یا خروجی استفاده شود و نیبل بالارتبه آن در دسترس نیست و نباید استفاده شود، خروجی های این پورت توانایی ارائه جریان 7mA را دارد، برون ده این پورت برای سطح منطقی 1 معمولاً کم است و گاهاً بایک مقاومت بالابرنده ولتاژ تأمین میشود.
استاندارد رعایت شده در سطوح ولتاژ این درگاه ها طبق استاندارد TTL است.
برای دسترسی به پورت ها در زبان های مختلف راههای نسبتاً مشابه ای وجود دارد.
در کدهای زیر عدد 123 به درگاه x378 فرستاده میشود (D0~D7)
البته شنیده ام که کد ++C فوق، در XP جواب نمیدهد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای VB.Net و #C هم نیاز به دانلود یک DLL اضافی دارید.
در مورد اتصال کلید نکته کوچک دیگری هم وجود دارد و آن نواسانات ناشی از اتصال و قطع کلید است.
بعد از فشار کلید حدود 20mS طول میکشد تا اتصال تثبیت شود و خروجی ثابت گردد (و نیز زمان قطع) در نتیجه مثلاً اگر با نرم افزار شمارنده ای ساخته باشید که تعداد دفعات فشار کلید را بشمارد و به نکته فوق دقت نکرده باشید امکان دارد با هر بار فشار کلید شمارنده 20 یا حتی 30 مورد فشار داده شدن کلید را بشمارد!!!! پس دقت کنید. کلید بعد از فشار شما سریع و قطعی وصل نمیشود و حدود 20mS مدام قطع و وصل میشود تا بالاخره پایدار میشود.
برای رفع مشکل فوق در برنامه باید از یک وقفه زمانی استفاده کرد و به محض دریافت اولین تغییر وضعیت، برنامه 20ms صبر کند و اگر هنوز وضعیت درست بود آنوقت اقدام به کاری کند، البته میتوانید از یک فیلتر پایین گذر ساده در کلید استفاده کنید، مثلاً با یک خازن 1uF تا 10uF احتمالاً مشکل حل میشود و اگر از مقاوتی هم استفاده شود که واقعاً عالی میشود و واقعاً فیلتر پایین گذر ساده ای خواهیم داشت که نواسانات اضافی را حذف میکند.
ضمناً در حالت ساده شده نباید طول سیم بین کلید و رایانه زیاد باشد، زیاد شدن طول سیم اثرات مخربی بر کارکرد درست دارد، (افزایش مقاومت، افزایش ظرفیت خازنی، ناپایداری امپدانس و افزایش پارازیت و هوم و...) که در صورت نیاز باید یا مقاومت بالابرده ولتاژ (کاهش امپدانس = تثبیت خط) و یا در حالت پیشرفته با ترانزیستورها یا تقویت کننده های عملیاتی وضعیت انتقال را بهبود بخشید.
در مورد خروجی هم (در صورت نیاز) حواستان باشد اتصال کوتاه رخ ندهد یا بیشتر از آمپرهای بیان شده از آنها جریان نکشید و گرنه به رایانه تان صدمه میزند! برون ده خروجی ها در سطح صفر منطقی بالاتر است، پس همیشه از صفر به عنوان روشن کننده خروجی استفاده کنید، اگر هم به جریان قوی تری نیاز دارید میتوانید از یک ترانزیستور معمولی PNP (مثلاً BC557) به همراه یک مقاوت بیس استفاده کنید و اگر باز هم جریان بالاتری میخواهید میتوانید از دو ترانزیستور دوقطبی یا یک دارلینگتون (مثل BD140) استفاده کنید و باز اگر جریان قوی تری و ولتاژ بالاتری در حد خاموش و روشن وسایل برقی نیاز دارید میتوانید از یک رله در خروجی استفاده کنید و به راحتی وسایل 220 ولت پرقدرت را هم کنترل کنید.
اگر کمک بیشتری میخواهید، دقیق تر توضیح دهید که چه کاری میخواهید انجام دهید و نیز زودتر زبان برنامه نویسی تان را مشخص کنید، من نمی گویم VB.Net چپ است و راست است (!) و هیچی مثل آن نمیشود و... ولی در صورت انتخاب VB.Net یا حداقل #C من راهنمایی بیشتری میتوانم به شما بکنم.
موفق باشید.
سلام مجدد!
آقا میبخشید حواسم زیادی جمع است!!!
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نوشته شده توسط _H2_ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
با سلام خدمت دوست عزیز
لطفا در مورد پین ها و دستوراتی که نوشته اید توضیح بیشتری بدهید
ذر ضمن آخرین خط کدی که نوشتید در ویژوال بیسیک 6 جواب نداد و ارور میده
ببخشید
درضمن فایل Dll شما به صورت حروف ماشین دیده می شود!!!!
ببخشید
درضمن فایل Dll شما به صورت حروف ماشین دیده می شود!!!!!!!
سلام
اون دستور برای VB8 بود نه VB6 ! و حتماً باید فایل مذکور (Port.dll) در System32 کپی شده باشد (البته بعد از پایان طراحی برنامه و ارائه نسخه EXE بودن DLL فوق در کنار EXE کفایت میکند)
در مورد دانلود هم میبخشید، در حال طراحی سایتی جدید در یک با فضای وب یک میزبان خوش نام هستنم، ایمیل دهید فایل را ایمیل کنم.
در مورد توضیح هم چشم! متن جدیدی حاضر میکنم و با جزییات بیشتر طریقه اتصال کلید و LED را میگویم.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)