صفحه 1 از 4 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 33
Like Tree5 لایک

موضوع: درخواست کمک برای قطعه کد

  1. #1
    Senior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    255

    درخواست کمک برای قطعه کد

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

    من یه فرستده و گیرنده RF ساختم . که فرستده ریموته و گیرنده یه رله که به لامپ وصله. حالا من میخوام یه کلید هم واسه لامپ بذارم (کلید رو رویه یکی از پایه های گیرنده تعریف کنم) . به این صورت که با ارسال کد رادیویی باهم مچ باشن. یعنی high یا low بودن کلید مهم نباشه و فقط هروقت کلید یه تغییری کرد لامپ هم مقدارش هرچی هست تغییر کنه.
    مثلا اگر لامپ با فرستده روشن شد و کلید بالا بود با زدن کلید پایین لامپ خاموش بشه و مثلا با کلید اگر دوباره لامپ رو روشن کردیم(کلید بالا) و با فرستنده خاموش کردیم حالا کلید رو که پایین میزنیم لامپ روشن بشه ....
    کسی از دوستان میتونه کمک کنه؟ واقعا خودم که به ته خط رسیدم ممنون
    لایک کردن

  2. #2
    Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    40
    لطفا میشه بیشتر توضیح بدی چه مشکلی داری؟
    یعنی الان میخوای هم با کلید (فیزیکی) لامپ رو خاموش و روشن کنی و هم با ریموت و وقتی کلید (فیزیکی) خاموش نمیتونی با ریموت کاری بکنی؟
    لایک کردن

  3. #3
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط feredy2011 نمایش پست ها
    سلام دوستان . من یه قطعه کد میخوام خودم هرکاری و هر تستی کردم جواب نگرفتم . دیگه کلافه شدم اگر کمکم کنید ممنون میشم .

    من یه فرستده و گیرنده RF ساختم . که فرستده ریموته و گیرنده یه رله که به لامپ وصله. حالا من میخوام یه کلید هم واسه لامپ بذارم (کلید رو رویه یکی از پایه های گیرنده تعریف کنم) . به این صورت که با ارسال کد رادیویی باهم مچ باشن. یعنی high یا low بودن کلید مهم نباشه و فقط هروقت کلید یه تغییری کرد لامپ هم مقدارش هرچی هست تغییر کنه.
    مثلا اگر لامپ با فرستده روشن شد و کلید بالا بود با زدن کلید پایین لامپ خاموش بشه و مثلا با کلید اگر دوباره لامپ رو روشن کردیم(کلید بالا) و با فرستنده خاموش کردیم حالا کلید رو که پایین میزنیم لامپ روشن بشه ....
    کسی از دوستان میتونه کمک کنه؟ واقعا خودم که به ته خط رسیدم ممنون
    تا جایی که من فهمیدم ، یه چیزی داری به نام "وضعیت" که چه کلید تغییر کنه چه رله این "وضعیت" عوض میشه (s یه متغیر صفر و یک به عنوان وضعیت)
    یکی از پایه های کلیدت رو به منفی وصل کن ، اون یکی پایه کلید رو به عنوان ورودی از نوع pull_up بده به آردوینو ، اگه ورودی عوض شه یعنی وضعیت کلید عوض شده (ks متغیر صفر و یک برای وضعیت کلید و pks هم برای وضعیت کلید در لحظه قبل)
    pks=ks;
    ks=digitalRead(input_pin_);
    اگه ks و pks با هم تفاوت داشته باشند تغییر وضعییت صورت گرفته
    if(ks!=pks)
    s=1-s;
    تا اینجا کلید حل شد ؛ رله هم عین همین
    آخرش هم لامپ رو به یه رله وصل کن به اسم mainrelay و مقدار این رله رو با s مشخص کن
    digitalWrite(mainrelay,s);
    ویرایش توسط siib : 08-02-2016 در ساعت 12:59 PM
    لایک کردن

  4. #4
    Senior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    255
    یه کلید on و off داریم ( سوییچ فشاری نیست ) .طوری که کلید یا رو حالت بالاس یا پایین . قاعدتا باید یا حالت بالا روشن کنه لامپ رو یا حالت پایین. ولی من میخوام اینطور نباشه. من میخوام با تغییر حالت کلید چه بالا چه پایین وضعیت لامپ (خروجی)تغییر کنه .

    مثلا با رادیو خروجی فعال شد، میخوام با low شدن کلید خروجی غیر فعال بشه . و بعدش با رادیو اگر دوباره خروجی فعال شد ، اینجا عمل کلید برعکس بشه. یعنی کلید low حالا با high کردن خروجی رو غیر فعال میکنه !

    اگر رادیو و ارسال کد مطرح نبود خب راحت میگفتیم اگر کلید HIGH شد خروجی فعال. اگر low شد خروجی 0 بشه....
    ولی مشکل اینجاس که اگر ما با رادیو خروجی رو فعال یا غیر فعال کنیم عملکرد کلید باید تغییر کنه و برعکس بشه

    کل خواستم اینه که اگر خروجی با رادیو فعال شد با یه تغییر حالت کلید غیرفعال بشه و اگر خروجی با رادیو غیرفعال شد با یه تغییر حالت کلید فعال بشه . نمیدونم تونستم منظورمو برسونم یا نه
    ویرایش توسط feredy2011 : 08-02-2016 در ساعت 01:11 PM

  5. #5
    Senior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    255
    دقیقا نفهمیدم چکار باید کنم . پست قبلیمم واسه digitalWrite واسه همین بود . هرکاری کردم اخر نتونستم....
    الان تو پیام قبلیم گفتم دقیقا چکار میخوام بشه. حالا اگر میشه بیشتر توضیح بدید ممنون میشم

  6. #6
    Senior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    255
    اینطور بگم شاید راحت تر باشه. یکی دیگه با ریموت چندبار خروجی رو فعال و غیرفعال کرده . شما الان نمیدونی خروجی فعاله یا غیر فعال فقط میخوای با یه تغییر کلید وضعیت خروجی تغییر کنه .

    مثل یه کلید تبدیل توو خونه ها . با این تفاوت که اونجا کلا دوتا کلیده . اینجا یه کلیده و یه رادیو

  7. #7
    Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    40
    نقل قول نوشته اصلی توسط feredy2011 نمایش پست ها
    اینطور بگم شاید راحت تر باشه. یکی دیگه با ریموت چندبار خروجی رو فعال و غیرفعال کرده . شما الان نمیدونی خروجی فعاله یا غیر فعال فقط میخوای با یه تغییر کلید وضعیت خروجی تغییر کنه .

    مثل یه کلید تبدیل توو خونه ها . با این تفاوت که اونجا کلا دوتا کلیده . اینجا یه کلیده و یه رادیو
    این که خیلی راحته با دستور if میشه اینکار رو کرد

    مثلا گیرنده یه دستور دریافت میکنه حالا میخوای رله رو به کار بندازی همونطور که تو پست قبلی گفته شد به جای حالت HIGH & LOW در اول برنامه یه متغیر از نوع bit تعریف که که اگه 1 باشه یعنی true و برعکس

    digitalWrite(pin, int bit)
    حالا با دستور if مینویسی اگه متغیر 1 بود اون رو صفر کنه و برعکس

    if (int bit ==0){
    int bit = 1;
    else if(int bit ==1){
    int bit = 0;

    و مقدار 0 و 1 کلید فشاری رو برابر int bit میکنی

    int bit = digitalRead(pin)

    بهتره دستور digitalWrite رو آخر برنامه قبل delay بزاری

    شما به جای int bit ها اسمی که تعریف کردی رو بزار
    امید وارم مشکلت حل شده باشه
    ویرایش توسط derana : 08-02-2016 در ساعت 01:47 PM دلیل: کلید فشاری رو نزاشته بودم

  8. #8
    Senior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    255
    نقل قول نوشته اصلی توسط derana نمایش پست ها
    این که خیلی راحته با دستور if میشه اینکار رو کرد

    مثلا گیرنده یه دستور دریافت میکنه حالا میخوای رله رو به کار بندازی همونطور که تو پست قبلی گفته شد به جای حالت HIGH & LOW در اول برنامه یه متغیر از نوع bit تعریف که که اگه 1 باشه یعنی true و برعکس

    digitalWrite(pin, int bit)
    حالا با دستور if مینویسی اگه متغیر 1 بود اون رو صفر کنه و برعکس

    if (int bit ==0){
    int bit = 1;
    else if(int bit ==1){
    int bit = 0;

    البته شما به جای int bit ها اسمی که تعریف کردی رو بزار
    امید وارم مشکلت حل شده باشه
    مهندس میشه یه لطف کنی مرتب شده کد رو بذاری ممنون میشم . واسه پایه کلید هم اسم key و پایه خروجی اسم output. مرسی الان یکم ذهنم هنگه
    ویرایش توسط feredy2011 : 08-02-2016 در ساعت 01:47 PM

  9. #9
    Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    40
    نقل قول نوشته اصلی توسط feredy2011 نمایش پست ها
    الان اینجا pin خروجیه و bit کلیده ؟
    pin شماره همون پایه هست که رله رو بهش وصل کردی و دومی هم مربوط به کلید هست
    bit هم تعیین کننده حالت رله هست که اگه 1 باشه رله وصل و اگه صفر باشه رله قطع میشه

  10. #10
    Senior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    255
    نقل قول نوشته اصلی توسط derana نمایش پست ها
    pin شماره همون پایه هست که رله رو بهش وصل کردی و دومی هم مربوط به کلید هست
    bit هم تعیین کننده حالت رله هست که اگه 1 باشه رله وصل و اگه صفر باشه رله قطع میشه
    کدوم مربوط به کلید میشه ؟ ببخشید یکم گیج شدم . اگر میشه با اسم key و output بگید و ممنون

صفحه 1 از 4 123 ... آخرینآخرین

مجوز های ارسال و ویرایش

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

SEO by vBSEO