اطلاعیه

Collapse
No announcement yet.

فشردن یک کلید و ارسال یک حرف

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    فشردن یک کلید و ارسال یک حرف

    سلام
    یک کلید داریم با حالت t/f
    می خوام وقتی دکمه رو فشار میدم، خروجیش یه عدد/حرف باشه !
    من با حلقه case structure درستش می کنم، راه دیگه ای نداره ؟
    در اصل می خوام با فشردن 6 عدد کلید، نسبت به t/f بودنشون توی یک string indicator یه حرفی رو نشون بده !
    ساده ترین راه چیه که برنامه هم شلوغ نشه ؟

    #2
    پاسخ : فشردن یک کلید و ارسال یک حرف

    نوشته اصلی توسط فرشاد اکرمی
    سلام
    یک کلید داریم با حالت t/f
    می خوام وقتی دکمه رو فشار میدم، خروجیش یه عدد/حرف باشه !
    من با حلقه case structure درستش می کنم، راه دیگه ای نداره ؟
    در اصل می خوام با فشردن 6 عدد کلید، نسبت به t/f بودنشون توی یک string indicator یه حرفی رو نشون بده !
    ساده ترین راه چیه که برنامه هم شلوغ نشه ؟
    یک راهش استفاده از ارایه میباشد:
    https://rapidshare.com/files/461150120/array_lv.rar
    بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
    موفقیت پیش رفتن است نه به نقطه ی پایان رسیدن
    نلسون ماندلا

    دیدگاه


      #3
      پاسخ : فشردن یک کلید و ارسال یک حرف

      اولا باید مشخص کنی چه حرفی یا چه کلمه ای.
      یه راهش اینه که تو اون شش تا کلید رو ازشون یه آرایه بسازی و سپس با استفاده از تابع Boolean Array to Number معادل عددی کلید های فشرده شده رو بدست بیاری و بعد از اون با استفاده از حلقه case ، نیاز خودتو برطرف کنی.

      دیدگاه


        #4
        پاسخ : فشردن یک کلید و ارسال یک حرف

        ممنون
        نوشته اصلی توسط رضا بابایی
        یک راهش استفاده از ارایه میباشد:
        https://rapidshare.com/files/461150120/array_lv.rar
        تو این برنامه ، اول باید یه حلقه رو مشخص کنیم بعد کلید متناظر با اون تا کار کنه ! ولی من می خوام مستقیم هر کلیدی زدی بدون هیچ چیز دیگه ای یه حرف تو استرینگ نمایش داده بشه ! ( فقط یک حرف )

        نوشته اصلی توسط hamid2000
        اولا باید مشخص کنی چه حرفی یا چه کلمه ای.
        یه راهش اینه که تو اون شش تا کلید رو ازشون یه آرایه بسازی و سپس با استفاده از تابع Boolean Array to Number معادل عددی کلید های فشرده شده رو بدست بیاری و بعد از اون با استفاده از حلقه case ، نیاز خودتو برطرف کنی.
        شرمنده بخش آرایه هارو اصلاً کار نکردم، متوجه منظورت نشدم ! میشه یه مثال بزاری ؟

        ممنون از همگی، دارم میرم بخش آرایه های کتاب رو یه مطالعه ای بکنم

        دیدگاه


          #5
          پاسخ : فشردن یک کلید و ارسال یک حرف

          ای شیطون !!! اینطور که من فهمیدم تو داری یه ماشین حساب طراحی میکنی :applause:. ببین اگه هدفت همینی که من گفتمه باید تو یه سطح بالایی از Labview برنامه رو انجام بدی. نیاز داری که از ساختار event استفاده کنی. با توابع string آشنایی کامل داشته باشی. و از همه مهمتر با روش فرمول نویسی تو Labview آشنا باشی. یه پروژه زمان بره.
          ولی اگه فقط میخوای که با زدن یه دکمه یه حرف نمایش داده بشه که خیلی آسونه. یه ساختار Case میذاری ، از طریق تابع build array دکمه ها رو به آرایه تبدیل میکنی. بعد با استفاده از تابع boolean array To Number معادل عددی آرایه رو بدست میاری و میدی به ورودی شرط Case. به هر دکمه ای هم یه حرف به صورت قراردادی اختصاص میدی.

          دیدگاه


            #6
            پاسخ : فشردن یک کلید و ارسال یک حرف

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

            دیدگاه


              #7
              پاسخ : فشردن یک کلید و ارسال یک حرف

              سلام. اگه میتونی برنامه رو بزار ببینم.

              دیدگاه


                #8
                پاسخ : فشردن یک کلید و ارسال یک حرف

                باشه
                فقط شب ! الان شرکتم !
                یک نکته، می خوام یه چیزی مثل کارت daq که همه جا میگن درست کنم.
                البت قراره که پروژه رو این محصول سوار بشه، http://eshop.eca.ir/product_info.php?cPath=28&products_id=621
                از موقعی که محصول رو گزاشتیم فروشگاه می خواستم همچین چیزی باهاش برای لبویو درست کنم !
                الان فقط چند تایی مونده و هنوز کاری نکردم

                دیدگاه


                  #9
                  پاسخ : فشردن یک کلید و ارسال یک حرف

                  سلام. آقای رضا بابایی یه برنامه گذاشتن که من الان دیدم. متاسفانه کاملا اشتباهه.

                  دیدگاه


                    #10
                    پاسخ : فشردن یک کلید و ارسال یک حرف

                    نوشته اصلی توسط hamid2000
                    سلام. اگه میتونی برنامه رو بزار ببینم.
                    اینم لینک
                    https://rapidshare.com/files/461570251/serial.vi
                    الان از میکرو که اطلاعات میاد رو تو 6 تا led نشون میده
                    ولی برای ارسال اطلاعات موندم چی بزارم، منظورم اینه که بهترین روش

                    دیدگاه


                      #11
                      پاسخ : فشردن یک کلید و ارسال یک حرف

                      سلام. برنامه خودتو اصلاح کردم. ایمیل خودتو بده به من تا واست بفرستم. h1372000@yahoo.com
                      برنامه ازین قراره که به هر دکمه یه حرف اختصاص داده شده . مثلا اگه p0 روشن باشه حرف a و اگه خاموش باشه حرف g . هر بار که برنامه میره تو قسمت ارسال ، به صورت خیلی سریع تمام دکمه ها اسکن میشن و وضعیتشون پشت سرهم به میکرو ارسال میشه. منتها من واسه ارسال کد ها هیچ تآخیری در نظر نگرفتم . خودت با توجه به نحوه دریافت کد تو میکرو اینکارو انجام بده. یعنی یه تابع wait درون حلقه for بزار. برنامه میکرو هم که خوب به خودت بستگی داره که چطوری نوشتیش. که مشخصا خیلی آسونه.
                      چاکر آقا....

                      دیدگاه


                        #12
                        پاسخ : فشردن یک کلید و ارسال یک حرف

                        سلام. تا جایی که جا داره برنامه رو توضیح میدم تا انشالله بقیه دوستان هم استفاده کنن.
                        در حقیقت ما میخواهیم با این برنامه وضعیت یکی از پورت های میکرو رو از نظر on , off بودن در کنترل خودمون داشته باشیم. اولین چیزی که نیاز داریم یه آرایه از دکمه هاست. پس از قسمت المان های کنترل کننده تو صفحه پانل و از بخش Array & cluster یه المان array خالی تو صفحه پانل قرار میدیم. بعد برای پر کردن اون از بخش المان های کنترلی boolean یه کلید یا دکمه درون array قرار میدیم. به این صورت ما یه آراه از المان های کنترلی از نوع boolean درست کردیم.این آرایه رو با استففاده از موس گسترش میدیم و به تعداد دلخواه مثلا 6 تا بازش میکنیم. طوریکه 6 تا عنصر آرایه معلوم باشند. برای فعال کردن آرایه هم یکبار المان آخری رو روشن و خاموش میکنیم تا سایز آرایه مشخص بشه.
                        هر کدوم از این دکمه ها نماینده یکی از خروجی های میکرو هستش. حالا نیاز داریم که وضعیت این دکمه ها رو به طور مداوم به میکرو انتقال بدیم. اینم کار هم به آسونی انجام میشه. ابتدا یه حلقه for در بلوک دیاگرام قرارمیدیم. بعد آرایه رو از بیرون به دیواره این حلقه اتصال میدیم. چون از خاصیت auto indexing استفاده میکنیم نیازی نیست به ترمینال loop count عددی رو سیم کشی کنیم. لب ویو به طور خودکار با توجه به سایز آرایه ای که به دیوارش سیم کشی شده حلقه رو تکرار میکنه. همچنین نیازی هم به تابع array index نیست. خلاصه میبینید که خاصیت auto indexing چقدر کارایی داره. بعد ازین نیاز به ساختار case داریم. اول یه case درون حلقه for ایجاد میکنیم. ورودی شرط این case همون خروجی ترمینال loop iteration حلقه for هستش. به تعداد کلید های موجود به حلقه case موجود frame اضافه میکنیم. به جز گزینه default بقیه frame ها رو از 0 تا 5 نام گذاری میکنیم. حالا تو هر فریم یه ساختار case دیگه قرار میدیم. ورودی های این case های جدید از خروجی آرایه که به دیواره for متصله سیم کشی میشه. به صورت true/false .
                        حالا درون حلقه های case با شروط t/f به طور قراردادی و دلخواه ، برای حالت true یه حرف یا کاراکتر و برای حالت false یه حرف یا یه کاراکتر دیگه قرار میدیم. در نهایت از یه نشان دهنده string indicator هم برای نشان دادن نوع کاراکتر خروجی استفاده میکنیم. حالا اگه برنامه رو اجرا کنیم در اولین تکرار ، i یا شمارنده صفره ، و اولین عنصر آرایه انتخاب میشه و وارد حلقه case صفرم میشه. بر حسب اینکه on یا off باشه یه کاراکتر تو خروجی مشاهده میشه. این وضعیت برای بقیه دکمه ها اتفاق میفته. و چون سرعت کار خیلی بالاست ، خطایی اتفاق نمیفته.
                        حالا به راحتی میتونید این رشته خروجی رو به ورودی string تابع write بدید و به میکرو ارسال کنید. تو برنامه میکرو هم براحتی با مقایسه رشته ورودی و جدول انتخابتون وضعیت خروجی مورد نظر رو تغییر میدین.
                        ببخشید که من اینقدر توضیح دادم. میدونم دوستان همه استاد هستن. ولی برای اندک افرادی که تازه شروع به کار کردن توضیحات اضافی میتونه مفید باشه.
                        :nice:

                        دیدگاه


                          #13
                          پاسخ : فشردن یک کلید و ارسال یک حرف

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

                          دیدگاه


                            #14
                            پاسخ : فشردن یک کلید و ارسال یک حرف

                            سلام فرشاد جان. اینم لینک دانلود :
                            https://rapidshare.com/files/461789604/serial.rar

                            دیدگاه


                              #15
                              پاسخ : فشردن یک کلید و ارسال یک حرف

                              من برنامه رو اجرا کردم، ولی چرا خروجی نمیده !
                              اجرا که می کنم، چیزی تو خروجی نمیبینم !

                              دیدگاه

                              لطفا صبر کنید...
                              X