نمایش نتایج 1 تا 27 از 27

نام تاپیک: کنترل LED

  1. #1

    کنترل LED

    با سلام

    من یک led رو به port printer وصل میکنم
    پایه آند(مثبت ) رو به پین شماره 2 و پایه کاتد(منفی) رو
    به پین شماره 18 وصل میکنم
    و خود به خود و بدون نیاز به هیچ ولتاژ دادنی از طرف من خودش
    روشن میشه !

    من میخام که اینو با برنامه پایین خاموش و روشن کنم نمیشه !


    int main()
    {
    outport(0x378,0);
    sleep(1);
    outport(0x378,1);
    sleep(1);
    return 0;
    }


    باتشکر

  2. #2
    سلام
    شرمنده ولی sleep(1) خیلی زمان کوتاهی است یعنی یک میلی ثانیه که اگر هم روشن خاموش بشه با چشم غیر مسلح قابل رویت نخواهد بود :)
    ضمنا توی ویندوز 2000 با بالا این کد شما کار نخواهد کرد باید تحت داس یا ویندوزهای قبل 2000 اجراش کنید. در مورد کار با پورت پرینتر قبلا زیاد بحث شده اینجا. از جستجو کمک بگیرید.
    ممنون علی

  3. #3
    من یک led رو به port printer وصل میکنم
    پایه آند(مثبت ) رو به پین شماره 2 و پایه کاتد(منفی) رو
    به پین شماره 18 وصل میکنم
    و خود به خود و بدون نیاز به هیچ ولتاژ دادنی از طرف من خودش
    روشن میشه !

    من میخام که اینو با برنامه پایین خاموش و روشن کنم نمیشه !
    همونطور که جناب Seyedof گفتن زمان تاخیرتون خیلی کمه اونو بکنید 1000 بهتر میشه. یه چیز دیگه هم که خیلی کم اتفاق میافته اینه که ممکنه آدرس پورتتون 378 نباشه
    اگه تحت داس کار میکنی کد زیر میتونه آدرس پورت LPT رو به شما بده

    asm mov ax,40h //read base port address from 0000:408
    asm mov es,ax
    asm mov bx,08
    asm mov ax,es:[bx]
    BPN=_AX; //save base port address to bpn
    You never know what you can do until you try

  4. #4
    این sleep 1 مساوی یک ثانیه است!!
    اونی که شما میگین delay هست که برحسب میلی ثانیه است!

    سلام
    شرمنده ولی sleep(1) خیلی زمان کوتاهی است یعنی یک میلی ثانیه که اگر هم روشن خاموش بشه با چشم غیر مسلح قابل رویت نخواهد بود :)
    ضمنا توی ویندوز 2000 با بالا این کد شما کار نخواهد کرد باید تحت داس یا ویندوزهای قبل 2000 اجراش کنید. در مورد کار با پورت پرینتر قبلا زیاد بحث شده اینجا. از جستجو کمک بگیرید.
    ممنون علی
    من با xp کار میکنم , پس من این مشکل رو چه طوری حل کنم ؟؟

    در ضمن من با یه برنامه تونستم آدرس پورت هامو پیدا کنم :

    LPT1 = 0x3BC
    LPT2 = 0x378
    LPT3 = 0x278


    با تشکر

  5. #5
    سلام.
    اگه از یک مقاومت حدود 300 اهم هم استفاده کنید بد نیست.
    آخه ممکنه پورتتون آسیب ببینه.
    این مدلیشم امتحان کن شاید درست شد.

  6. #6
    من با xp کار میکنم , پس من این مشکل رو چه طوری حل کنم ؟؟
    در این صورت اصلا کد فوق اجرا نیمشه
    پورتتون رو با دستور OpenFile باز کنید و مانند یک فایل باهاش رفتار کنید.
    You never know what you can do until you try

  7. #7

    int main()
    {
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    return 0;
    }


    با دستور بالا فقط آخرین دستور اجرا میشه !
    یعنی جریان فقط در پین شماره 2 میره و بقیه پین (یعنی تا پین 9)
    هیچکدوم جریان ندارند !
    ایراد کار در این جا است که فقط در هر بار اجرا یا باید خاموش بشه
    یا باید روشن بشه و دوتاش با هم نمیشه!


    با تشکر

  8. #8
    با دستور بالا فقط آخرین دستور اجرا میشه !
    یعنی جریان فقط در پین شماره 2 میره و بقیه پین (یعنی تا پین 9)
    هیچکدوم جریان ندارند !
    ایراد کار در این جا است که فقط در هر بار اجرا یا باید خاموش بشه
    یا باید روشن بشه و دوتاش با هم نمیشه!
    من فکر میکنم شما یه جای کار را اشتباه میکنید
    دستورها رو به این شکل بنویسید ببینید چه نتیجه ای می گیرید

    int main()
    {
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    return 0;
    }

    من فکر می کنم شما قادر به مشاهده دستور اول نیستید.
    یعنی جریان فقط در پین شماره 2 میره و بقیه پین (یعنی تا پین 9)
    ما بقی باید خاموش باشه. چون شما دارید این مقدار رو میفرستید 00000001
    ایراد کار در این جا است که فقط در هر بار اجرا یا باید خاموش بشه
    یا باید روشن بشه و دوتاش با هم نمیشه!
    اینطور نیست من فکر میکنم شما قادر به مشاهده نتیجه عمل نیستید.
    یه کار انجام بدید
    برید توی داس و Debug رو اجرا کنید
    بعد دستور زیر رو اجرا کنید

    -O 378,1

    باید LED روشن بشه
    حالا این دستور رو اجرا کنید

    -O 378,0

    باید Led خاموش بشه.
    به این ترتیب
    اول مطمئین میشید هیچ کجای کار ایراد نداره
    You never know what you can do until you try

  9. #9
    نقل قول نوشته شده توسط mzjahromi
    من فکر میکنم شما یه جای کار را اشتباه میکنید
    دستورها رو به این شکل بنویسید ببینید چه نتیجه ای می گیرید

    int main()
    {
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    return 0;
    }
    من خودم اینو اجرا کرده بودم و فقط
    آخرین دستور یعنی اگر led خاموش باشه روشن میشه !
    من فکر می کنم شما قادر به مشاهده دستور اول نیستید.
    ما بقی باید خاموش باشه. چون شما دارید این مقدار رو میفرستید 00000001
    اینطور نیست من فکر میکنم شما قادر به مشاهده نتیجه عمل نیستید.
    یه کار انجام بدید
    برید توی داس و Debug رو اجرا کنید
    بعد دستور زیر رو اجرا کنید

    -O 378,1

    باید LED روشن بشه
    حالا این دستور رو اجرا کنید

    -O 378,0

    باید Led خاموش بشه.
    به این ترتیب
    اول مطمئین میشید هیچ کجای کار ایراد نداره
    من این دستور رو تو command prompt اجرا کردم اما هیچی نشد !


    موفق باشید

  10. #10
    سلام
    آقا Sleep اوون پارامتری که میگیره بر حسب میلی ثانیه است ها ! نه ثانیه.
    ممنون علی

  11. #11
    نقل قول نوشته شده توسط seyedof
    سلام
    آقا Sleep اوون پارامتری که میگیره بر حسب میلی ثانیه است ها ! نه ثانیه.
    ممنون علی
    پس چرا وقتی مقدار sleep رو یک میدیم برنامه یک ثانیه صبر میکنه ؟؟؟


    لطفا خودتان یه بار امتحان کنید!!

  12. #12
    من این دستور رو تو command prompt اجرا کردم اما هیچی نشد !
    ظاهر آدرس پورت شما 3BC هست. بجای 378 مقدار 3BC رو گذاشتید؟؟؟
    You never know what you can do until you try

  13. #13
    من هر سه آدرس 3BC و 378 و 278 رو امتحان کردم !


    هیچکدوم تو این درستوری که شما گفتین جواب نداد !
    حتی رو کامپیوتر دوستم هم امتحان کردم و رو اون هم جواب نداد !


    با تشکر

  14. #14
    من هر سه آدرس 3BC و 378 و 278 رو امتحان کردم !
    هیچکدوم تو این درستوری که شما گفتین جواب نداد !
    حتی رو کامپیوتر دوستم هم امتحان کردم و رو اون هم جواب نداد !
    با تشکر
    امکانش هست یه کپی از دستوراتی که اجرا کردید و جوابهائی که گرفتید رو اینجا بذارید؟
    مطمئین هستید پایه های LED رو درست وصل کردید؟
    پایه ای که باید به قطب مثبت وصل بشه به 2 و اونیکی به 17 یا 18
    You never know what you can do until you try

  15. #15
    سلام
    تحت ویندوز این روش جواب نمیده ها. باید توی داس باشید.
    ممنون علی

  16. #16
    من این رو تو command prompt میزنم و هیچ خروجی رو مشاهده نمی کنم !

    debug
    _O 378,0
    _ O 278,0
    _O 3BC,0




    موفق باشید

  17. #17
    نقل قول نوشته شده توسط SIR_asad
    من این رو تو command prompt میزنم و هیچ خروجی رو مشاهده نمی کنم !

    debug
    _O 378,0
    _ O 278,0
    _O 3BC,0




    موفق باشید
    اول اینکه همونطور که جناب Seyedof گفتن سعی کنید توی داس تست کنید.
    دوم اینکه دستورای زیر رو تست کنید اول
     
    debug
    _O 378,1
    _ O 278,1
    _O 3BC,1

    چون دستوری رو که شما استفاده کردید LED رو خاموش میکنه نه روشن.
    You never know what you can do until you try

  18. #18
    آخه قریونت برم !
    به طور پیش فرض وقتی led رو به پورت وصل میکنم !
    خودش روشن میشه !و نیاز نداره من اونو روشن کنم !!!

    من یه سوال دیگه هم داشتم !
    اگه طرف مثبت led رو به دو تا data وصل کنم ! آیا می تونه باعث سوختن مدارات
    بورد بشه !(یعنی اینکه جریان زیاد کشیده بشه )


    با تشکر

  19. #19
    من یه سوال دیگه هم داشتم !
    اگه طرف مثبت led رو به دو تا data وصل کنم ! آیا می تونه باعث سوختن مدارات
    بورد بشه !(یعنی اینکه جریان زیاد کشیده بشه )
    اون دیگه تخصص بچه های الکترونیکه. ولی من فکر نمی کنم کار درستی باشه
    آخه قریونت برم !
    به طور پیش فرض وقتی led رو به پورت وصل میکنم !
    خودش روشن میشه !و نیاز نداره من اونو روشن کنم !!!
    چی بگم
    ولی من با همین روش به راحتی جواب گرفتم
    You never know what you can do until you try

  20. #20
    سلام منم همین مشکل رو دارم
    هر وقت کد زیر رو اجرا می کنم فقط آخرین کد اجرا می شه یعنی با اجرای این دستور اگه لامپم خاموش باشه روشن می شه و اگه روشن باشه روشن می مونه:
    int main()
    {
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    return 0;
    }
    با اجرای این کد هم اگه لامپم روشن باشه خاموش می شه اگه هم خاموش باشه خاموش می مونه:
    int main()
    {
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    return 0;
    }
    کامپایلرمم توربو سی ++ ورژن 3 هستش . لامپم رو هم اینجوری وصل کردم : عکس

    لطفا کمک کنین

  21. #21
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    لینک هایی که اینجا گذاشته شده رو دیدین
    https://barnamenevis.org/showthread.php?t=75350

  22. #22
    نقل قول نوشته شده توسط هانی هاشمی مشاهده تاپیک
    سلام منم همین مشکل رو دارم
    هر وقت کد زیر رو اجرا می کنم فقط آخرین کد اجرا می شه یعنی با اجرای این دستور اگه لامپم خاموش باشه روشن می شه و اگه روشن باشه روشن می مونه:
    int main()
    {
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    return 0;
    }
    با اجرای این کد هم اگه لامپم روشن باشه خاموش می شه اگه هم خاموش باشه خاموش می مونه:
    int main()
    {
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    outport(0x3BC,1);
    sleep(1);
    outport(0x3BC,0);
    sleep(1);
    return 0;
    }
    کامپایلرمم توربو سی ++ ورژن 3 هستش . لامپم رو هم اینجوری وصل کردم : عکس

    لطفا کمک کنین

    اینطور نیست
    سرعت اینقدر زیاده که شما متوجه نمیشید
    ُSleep(100) vرو تست کنید
    You never know what you can do until you try

  23. #23
    کاربر تازه وارد آواتار amir_paia
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    تهران
    سن
    34
    پست
    50
    سلام به همه. من با sleep(100) جواب نگرفتم. آقای هانی هاشمی شما جواب گرفتین؟ آخه sleep(100) یعنی 100 ثانیه و اگه بخواد با 100 ثانیه فاصله جواب هم بده به درد نمی خوره. اگه کسی راه حلی بلد لطفا کمک کنه

  24. #24
    کاربر دائمی آواتار alireza643
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    روی زمین
    پست
    368
    Sleep(100) 
    یعنی یک دهم ثانیه چون عدد ورودی به sleep بر حسب میلی ثانیه هست. بنده هم با فرمایش جناب mzjahromi موافق هستم. شما اگر از sleep درست استفاده کنید حتما جواب میده.
    برای کار کردن تو محیط ویندوز از porttalk استفاده کنید.
    سوالی بود که اگر پایه ی مثبت LED رو به دوتا از خروجی ها وصل کنیم چه اتفاقی میوفته. این کار باعث میشه که دوتا منبع ولتاژ 5 ولتی با هم موازی بشن و همونطور که میدونید منابع ولتاژ اگر با هم موازی بشن اتفاقی نمی افته و فقط هر کدوم که روشن بشن لامپ شما هم روشن میشه.
    هانی هاشمی عزیز هم یه عکس از نحوه ی اتصال LED گذاشته بودن. باید خدمت شما عرض کنم که پورت پرینتر مقاومت داخلی حدود 370 اهم داره و ولتاژ 5 ولت حالا که شما لامپ رو به این شکل وصل کردید جریانی در حدود 13 میلی آمپر تو مدار برقرار میشه که این جریان خیلی زیادیه(البته برای پورت) بهتره یه مقاوت 470 اهم سر راه مدار قرار بدید که هم پورت صدمه نخوره و هم این LED ینده خدا این قدر نورانی نشه.
    یه سوال از مدیران داشتم : من اگر یه برنامه کامل برای کار با پورت پرینتر تو محیط ویندوز بنویسم و شکل مدارات الکترونیکی اون رو هم قرار بدم که بچه ها بتونن از اون استفاده کنن کجای سایت میتونم اون رو قرار بدم.
    من از Porttalk استفاده میکنم اگر اون رو تو سایت قرار بدم که بچه ها استفاده کنن این با قوانین سایت مخالف نیست؟
    اگر مخالف نیست به من بگید من این کار رو انجام بدم.

  25. #25
    مشکلی نیست
    فقط لینک یا سورس کامپوننتهای غیر رایگان رو نگذارید
    یه تاپیک براش ایجاد کنید و آدرسش رو به من اطلاع بدید
    You never know what you can do until you try

  26. #26
    کاربر دائمی آواتار alireza643
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    روی زمین
    پست
    368
    جناب آقای جهرمی پستی با عنوان آموزش ارتباط با سخت افزار در آدرس
    https://barnamenevis.org/showth...403#post378403
    ایجاد شد.

  27. #27
    نقل قول نوشته شده توسط alireza643 مشاهده تاپیک
    جناب آقای جهرمی پستی با عنوان آموزش ارتباط با سخت افزار در آدرس
    https://barnamenevis.org/showth...403#post378403
    ایجاد شد.
    تاپیک شما به حالت اعلان در اومد
    You never know what you can do until you try

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •