اطلاعیه

Collapse
No announcement yet.

اجرای سه برنامه مختلف در آردینو توسط سوییچ

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

    اجرای سه برنامه مختلف در آردینو توسط سوییچ

    سلام به آینده سازان این مرز و بوم
    امیدوارم ایام به کامتون باشه
    عزیزان بنده یک مشکلی برام پیشامده که این مشکل فقط به دست شما عزیزان حل میشه
    به نظر شما چطور میشه با یک برد آردینو سه کد مختلف را اجرا کرد؟که توسط یک کلید هر یک ازون کد هارو به دلخواه در حالت اجرایی دستگاه قرار داد؟بنده میخوام وقتی کلید را فشار میدم مثلا آردینو برنامه اول را متوقف کنه و برنامه دوم را اجرا کنه یا بالعکس یا مثلا برنامه برنامه سوم را متوقف کنه و برنامه اول اجرا بشه ایا چنین کاری امکان مذیر هست.
    خاطر نشان کنم که نمیخواهم هر سه برنامه همزمان اجرا بشه.میخوام جدا جدا با انتخاب خودم اجرا بشن.

    #2
    پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

    نوشته اصلی توسط ali98740 نمایش پست ها
    سلام به آینده سازان این مرز و بوم
    امیدوارم ایام به کامتون باشه
    عزیزان بنده یک مشکلی برام پیشامده که این مشکل فقط به دست شما عزیزان حل میشه
    به نظر شما چطور میشه با یک برد آردینو سه کد مختلف را اجرا کرد؟که توسط یک کلید هر یک ازون کد هارو به دلخواه در حالت اجرایی دستگاه قرار داد؟بنده میخوام وقتی کلید را فشار میدم مثلا آردینو برنامه اول را متوقف کنه و برنامه دوم را اجرا کنه یا بالعکس یا مثلا برنامه برنامه سوم را متوقف کنه و برنامه اول اجرا بشه ایا چنین کاری امکان مذیر هست.
    خاطر نشان کنم که نمیخواهم هر سه برنامه همزمان اجرا بشه.میخوام جدا جدا با انتخاب خودم اجرا بشن.
    با سلام
    یک راه که بنظر من میرسه این است که شما برای اون سه کلید اینتراپت تعریف کنید. یک متغیر هم تعریف میکنید که شماره برنامه در حال اجرا را داخلش ذخیره میکنید. با فشار هر یک از اون سه کلید برنامه وارد روتین وقفه میشه و شما میتوانید متغیر شماره برنامه در حال اجرا را تغییر دهید. در حلقه لوپ برنامه هم با توجه به متغیر شماره برنامه در حال اجرا میتوانید آن برنامه را تحت یک فانکشن فراخوانی کنید.

    دیدگاه


      #3
      پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

      نوشته اصلی توسط evergreen نمایش پست ها
      با سلام
      یک راه که بنظر من میرسه این است که شما برای اون سه کلید اینتراپت تعریف کنید. یک متغیر هم تعریف میکنید که شماره برنامه در حال اجرا را داخلش ذخیره میکنید. با فشار هر یک از اون سه کلید برنامه وارد روتین وقفه میشه و شما میتوانید متغیر شماره برنامه در حال اجرا را تغییر دهید. در حلقه لوپ برنامه هم با توجه به متغیر شماره برنامه در حال اجرا میتوانید آن برنامه را تحت یک فانکشن فراخوانی کنید.
      بسیار بسیار از بابت وقتی که برای این حقیر صرف کردین متشکرم
      قربان بنده خیلی به برنامه نویسی تسلط ندارم و مبتدی هستم
      اگر امکانش هست ساده در و با جزئیات برای این حقیر توضیح بدین.اگر خیر امکان داره بنده کد های اون سه برنامه را بنده به شما بدهم و شما لطف کنید و ویرایش کنید؟

      دیدگاه


        #4
        پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

        نوشته اصلی توسط ali98740 نمایش پست ها
        بسیار بسیار از بابت وقتی که برای این حقیر صرف کردین متشکرم
        قربان بنده خیلی به برنامه نویسی تسلط ندارم و مبتدی هستم
        اگر امکانش هست ساده در و با جزئیات برای این حقیر توضیح بدین.اگر خیر امکان داره بنده کد های اون سه برنامه را بنده به شما بدهم و شما لطف کنید و ویرایش کنید؟
        کافیه در گوگل سرچ کنید وقفه در آردوینو . پایه وقفه هم پایه خاصی هست که تو اینترنت سرچ کنید براتون میاره. وقفه که اعمال میشه برنامه هرجایی که هست و هرکاری که می کنه رو ول می کنه میره وقفه رو انجام میده و برمیگرده جایی که بوده
        شما فقط کافیه وقفه رو فعال کنید و یک متغیر تعریف کنید و برای هر دستور یک عدد اختصاص بدید و اگر در دستوراتتون یک حلقه و یا یک عمل طولانی قراره انجام بشه در وقفه یک فرمان goto بزارید و برید به اول setup و از اونجا برنامه رو دوباره شروع کنی و هر فرمان رو در یک شرط بنویسید مثلا:

        if(i == 1)
        task1();
        else
        if(i == 2)
        task2();
        else
        .
        .
        .

        بیشتر از اینهم متاسفانه نمی تونم کمک کنم چون اصلا از آردوینو استفاده نمی کنم
        موفق باشید
        جدیدترین ویرایش توسط Matin_Mirzadeh; ۰۹:۴۵ ۱۴۰۰/۰۵/۲۴.

        دیدگاه


          #5
          پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

          سلام لطفا برای کمک یه سری بزنید به https://www.eca.ir/forums/thread90193.html#post735031

          دیدگاه


            #6
            پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

            نوشته اصلی توسط Matin_Mirzadeh نمایش پست ها
            کافیه در گوگل سرچ کنید وقفه در آردوینو . پایه وقفه هم پایه خاصی هست که تو اینترنت سرچ کنید براتون میاره. وقفه که اعمال میشه برنامه هرجایی که هست و هرکاری که می کنه رو ول می کنه میره وقفه رو انجام میده و برمیگرده جایی که بوده
            شما فقط کافیه وقفه رو فعال کنید و یک متغیر تعریف کنید و برای هر دستور یک عدد اختصاص بدید و اگر در دستوراتتون یک حلقه و یا یک عمل طولانی قراره انجام بشه در وقفه یک فرمان goto بزارید و برید به اول setup و از اونجا برنامه رو دوباره شروع کنی و هر فرمان رو در یک شرط بنویسید مثلا:

            if(i == 1)
            task1();
            else
            if(i == 2)
            task2();
            else
            .
            .
            .

            بیشتر از اینهم متاسفانه نمی تونم کمک کنم چون اصلا از آردوینو استفاده نمی کنم
            موفق باشید
            خیلی متشکرم قربان لطف کردین.چشم تحقیق میکنم

            دیدگاه


              #7
              پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

              سلام
              من به یک مشکل برخوردم
              یک برنامه عملیاتی روی ویموس نوشتم که در عین حال شامل دو برنامه دیگه همه برای نشان دادن دما و رطوبت و دزگیر هم میشه
              و تمام این پارمترها به وب سرور هم منتقل میشه
              از اینرو این موضوع سبب افزایش سیکل برنامه عملیاتی میشود
              چه راه حلی برای حل این مشکل پیشنهاد میکنید مثلا میتونم برنامه را روی یک برد نانو بریزم و ارسال اطلاعات وب هاست را به ویموس بسپارم اینجوری مشکلم حل میشه ؟
              ممنون میشم اگر در این مورد تامل و راه حل ارایه دهید
              جدیدترین ویرایش توسط Masoud1234567; ۰۳:۲۳ ۱۴۰۰/۰۶/۲۶.

              دیدگاه


                #8
                پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

                نوشته اصلی توسط ali98740 نمایش پست ها
                سلام به آینده سازان این مرز و بوم
                امیدوارم ایام به کامتون باشه
                عزیزان بنده یک مشکلی برام پیشامده که این مشکل فقط به دست شما عزیزان حل میشه
                به نظر شما چطور میشه با یک برد آردینو سه کد مختلف را اجرا کرد؟که توسط یک کلید هر یک ازون کد هارو به دلخواه در حالت اجرایی دستگاه قرار داد؟بنده میخوام وقتی کلید را فشار میدم مثلا آردینو برنامه اول را متوقف کنه و برنامه دوم را اجرا کنه یا بالعکس یا مثلا برنامه برنامه سوم را متوقف کنه و برنامه اول اجرا بشه ایا چنین کاری امکان مذیر هست.
                خاطر نشان کنم که نمیخواهم هر سه برنامه همزمان اجرا بشه.میخوام جدا جدا با انتخاب خودم اجرا بشن.

                جناب آقای علی 98740 عزیز
                برای اینکه برنامه ها اصولی تر بشه و همچین مشکل کوچیکی برنخوری بهتره اصول زیر رو در همین برنامه رعایت کنی
                بهتره که زمان اسکن کیبورد یا کلید ها رو به حداقل برسونی تا هیچ کدوم از اونها از بین نرن و در هر صورت خونده بشن
                در زمان اسکن کلید ها فقط یک کار بکن - یک بیت رو یک کن یا اصطلاخا یک پرچم یک بشه به معنی اینکه این کلید زده شده
                توی ساب روتین های برنامه یا زیر لرنامه ها به کار اون برس ممکنه این یه مقداری زمان ببره ولی از دید شما بسار کوتاه هستش
                میکرو با فرصت کامل به این زیر برنامه رسیدگی می کنه

                اولویت بندی و ... توی برنامه نویسی حل می شه
                استفاده از وقفه برای زمان هایی در حد نانو ثانیه یا حداکثر میکرو ثانیه است که نمی خای تحت هیچ شرایط اون واقعه از بین نره

                یه موضوغ دیگه
                دستورات توی فرکانس 16 مگاهرتز میکرو خدود 62 نانو ثانیه طول می کشه تا اجرا بشه
                حالا اون کلید شما که می خاد فرضا 300 میلی ثانیه فشرده بشه از دید میکرو خواب اصحاب کهف حساب میشه

                تمامی این مشکلات به صورت نرم افزاری و برنامه نویسی قابل حله
                کافیه فقط قبل از برنامه نویسی تجسم اتفاقی که قراره بیفته توی ذهنت مرور بشه


                موفق باشی
                اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

                دیدگاه


                  #9
                  پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

                  نوشته اصلی توسط ali98740 نمایش پست ها
                  سلام به آینده سازان این مرز و بوم
                  امیدوارم ایام به کامتون باشه
                  عزیزان بنده یک مشکلی برام پیشامده که این مشکل فقط به دست شما عزیزان حل میشه
                  به نظر شما چطور میشه با یک برد آردینو سه کد مختلف را اجرا کرد؟که توسط یک کلید هر یک ازون کد هارو به دلخواه در حالت اجرایی دستگاه قرار داد؟بنده میخوام وقتی کلید را فشار میدم مثلا آردینو برنامه اول را متوقف کنه و برنامه دوم را اجرا کنه یا بالعکس یا مثلا برنامه برنامه سوم را متوقف کنه و برنامه اول اجرا بشه ایا چنین کاری امکان مذیر هست.
                  خاطر نشان کنم که نمیخواهم هر سه برنامه همزمان اجرا بشه.میخوام جدا جدا با انتخاب خودم اجرا بشن.
                  سلام
                  راهی که پیشنهاد میدهم استفاده از وقفه است.البته چون 3 برنامه دارید و ممکنه برد شما مثلاً uno باشه ودو پین وقفه داشته باشه میتونید با یک زیربرنامه ساده فقط از یک پین وقفه استفاده کنید
                  اینطوری که یک متغیر عمومی تعریف میکنید ویک کلید هم برای وقفه در نظر میگیرد.با زدن هر بار کلید اون متغیر یکی اضافه میشه واگر به انتها رسید که مثلا اینجا 3 هست دوباره 1 میشه.در اون برنامه ها هم این متغیر رو چک کنید که اگر مثلاً 1 بود برنامه اول اگر 2 بود برنامه دو والی آخر.
                  اگر هم بخواهید میتونید 3 تا کلید مجزا قرار بدید وبا زدن هر کدوم اون متغیر عمومی مثلا 1یا2یا3 بشه بجای هر بار زدن اون تک کلید

                  پیشنهاد میکنم چندین کار مختلف وطولانی رو با یک برد اونم مثلا ویموس انجام ندید.بردهای ویموس درسته که معموللا حافظه فلش مناسبی دارند ولی در عمل stable نیستند وطبق تجربه شخصی(فقط نظر شخصی) گاهی خطا میدهند که همین گاهی خطا دادن باعث اشتباه کلی وبی استفاده شدن نتایج کلی میشه.

                  دیدگاه


                    #10
                    پاسخ : اجرای سه برنامه مختلف در آردینو توسط سوییچ

                    نوشته اصلی توسط S_B_T نمایش پست ها
                    جناب آقای علی 98740 عزیز
                    برای اینکه برنامه ها اصولی تر بشه و همچین مشکل کوچیکی برنخوری بهتره اصول زیر رو در همین برنامه رعایت کنی
                    بهتره که زمان اسکن کیبورد یا کلید ها رو به حداقل برسونی تا هیچ کدوم از اونها از بین نرن و در هر صورت خونده بشن
                    در زمان اسکن کلید ها فقط یک کار بکن - یک بیت رو یک کن یا اصطلاخا یک پرچم یک بشه به معنی اینکه این کلید زده شده
                    توی ساب روتین های برنامه یا زیر لرنامه ها به کار اون برس ممکنه این یه مقداری زمان ببره ولی از دید شما بسار کوتاه هستش
                    میکرو با فرصت کامل به این زیر برنامه رسیدگی می کنه

                    اولویت بندی و ... توی برنامه نویسی حل می شه
                    استفاده از وقفه برای زمان هایی در حد نانو ثانیه یا حداکثر میکرو ثانیه است که نمی خای تحت هیچ شرایط اون واقعه از بین نره

                    یه موضوغ دیگه
                    دستورات توی فرکانس 16 مگاهرتز میکرو خدود 62 نانو ثانیه طول می کشه تا اجرا بشه
                    حالا اون کلید شما که می خاد فرضا 300 میلی ثانیه فشرده بشه از دید میکرو خواب اصحاب کهف حساب میشه

                    تمامی این مشکلات به صورت نرم افزاری و برنامه نویسی قابل حله
                    کافیه فقط قبل از برنامه نویسی تجسم اتفاقی که قراره بیفته توی ذهنت مرور بشه


                    موفق باشی
                    سلام و ارادت قربان
                    از کمک ها و راهنمایی هاتون بسیار متشکرم.

                    دلیل: ادغام دو پست برای جلوگیری از اسپم

                    نوشته اصلی توسط isfahan نمایش پست ها
                    سلام
                    راهی که پیشنهاد میدهم استفاده از وقفه است.البته چون 3 برنامه دارید و ممکنه برد شما مثلاً uno باشه ودو پین وقفه داشته باشه میتونید با یک زیربرنامه ساده فقط از یک پین وقفه استفاده کنید
                    اینطوری که یک متغیر عمومی تعریف میکنید ویک کلید هم برای وقفه در نظر میگیرد.با زدن هر بار کلید اون متغیر یکی اضافه میشه واگر به انتها رسید که مثلا اینجا 3 هست دوباره 1 میشه.در اون برنامه ها هم این متغیر رو چک کنید که اگر مثلاً 1 بود برنامه اول اگر 2 بود برنامه دو والی آخر.
                    اگر هم بخواهید میتونید 3 تا کلید مجزا قرار بدید وبا زدن هر کدوم اون متغیر عمومی مثلا 1یا2یا3 بشه بجای هر بار زدن اون تک کلید

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

                    دیدگاه

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