اطلاعیه

Collapse
No announcement yet.

انتخاب کوچکترین مقدار در آردینو

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

    انتخاب کوچکترین مقدار در آردینو

    سلام دوستان
    من می خوام کوچکترین مقدار رو از بین مقادیری که تو سریال مانیتور نشون میدم رو پیدا کنم به چه صورت باید این کاررو انجام بدم ...کوچکترین مقدار رو می خوام رو السیدی نشون بدم ...دستوراتش به چه صورت هست؟؟؟

    #2
    پاسخ : انتخاب کوچکترین مقدار در آردینو

    نوشته اصلی توسط adrianjavad نمایش پست ها
    سلام دوستان
    من می خوام کوچکترین مقدار رو از بین مقادیری که تو سریال مانیتور نشون میدم رو پیدا کنم به چه صورت باید این کاررو انجام بدم ...کوچکترین مقدار رو می خوام رو السیدی نشون بدم ...دستوراتش به چه صورت هست؟؟؟
    سلام
    کمی بیشتر توضیح بدید منظورتون رو

    دیدگاه


      #3
      پاسخ : انتخاب کوچکترین مقدار در آردینو

      نوشته اصلی توسط hossein.m98 نمایش پست ها
      سلام
      کمی بیشتر توضیح بدید منظورتون رو
      #define input 12


      float high_time;
      float h_time;
      float low_time;
      float l_time;
      float time_period;
      float t_period;
      int frequency;
      int frequenc;

      void setup()
      {

      pinMode(input,INPUT_PULLUP);
      //pinMode(in,INPUT_PULLUP);


      Serial.begin(9600);

      }
      void loop()
      {

      high_time=pulseIn(input,HIGH);
      low_time=pulseIn(input,LOW);

      time_period=high_time+low_time;
      time_period=time_period/1000;
      if(time_period!=0){frequency=1000/time_period;}
      else {Serial.println("0 Frequency");frequency=0;}




      Serial.println(frequency);

      delay(200);
      }
      من با این برنامه فرکانس رو می خونم می خوام کوچکترین مقدار فرکانس رو دریافت کنم و در هرلحظه نشون بدم

      دیدگاه


        #4
        پاسخ : انتخاب کوچکترین مقدار در آردینو

        نوشته اصلی توسط adrianjavad نمایش پست ها
        #define input 12


        float high_time;
        float h_time;
        float low_time;
        float l_time;
        float time_period;
        float t_period;
        int frequency;
        int frequenc;

        void setup()
        {

        pinMode(input,INPUT_PULLUP);
        //pinMode(in,INPUT_PULLUP);


        Serial.begin(9600);

        }
        void loop()
        {

        high_time=pulseIn(input,HIGH);
        low_time=pulseIn(input,LOW);

        time_period=high_time+low_time;
        time_period=time_period/1000;
        if(time_period!=0){frequency=1000/time_period;}
        else {Serial.println("0 Frequency");frequency=0;}




        Serial.println(frequency);

        delay(200);
        }
        من با این برنامه فرکانس رو می خونم می خوام کوچکترین مقدار فرکانس رو دریافت کنم و در هرلحظه نشون بدم
        این قسمت بازم کمی گنگه: "
        می خوام کوچکترین مقدار فرکانس رو دریافت کنم و در هرلحظه نشون بدم"منظورتون اینه در یک بازه زمانی مشخص باید چند فرکانس خونده بشه و بعد کوچکترینش ارسال بشه؟

        دیدگاه


          #5
          پاسخ : انتخاب کوچکترین مقدار در آردینو

          من توی سریال مانیتور که فرکانس رو مشاهده می کنم هر 200 میلی ثانیه فرکانس نشون داده میشه که یک عدد ثابت نشون داده میشه اما یک دفه یک عدد بی ربط که بیشتر از فرکانس اصلی هست و فرکانس رو که تغییر می دم بازم همینطور، نمایش داده میشه من می خوام فرکانس بی ربط رو حذف کنم که نمایش داده نشه

          دیدگاه


            #6
            پاسخ : انتخاب کوچکترین مقدار در آردینو

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

            دیدگاه


              #7
              پاسخ : انتخاب کوچکترین مقدار در آردینو

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

              دیدگاه


                #8
                پاسخ : انتخاب کوچکترین مقدار در آردینو

                نوشته اصلی توسط adrianjavad نمایش پست ها
                خیلی لطف کردید ...میشه طرز برنامه نویسی بهم بگید ...ارایه ها رو چطور بنویسم
                ببینید کمی توضیحاتش مفصله و من پیشنهاد میکنم سرچ کنید در موردش

                دیدگاه


                  #9
                  پاسخ : انتخاب کوچکترین مقدار در آردینو

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

                  دیدگاه


                    #10
                    پاسخ : انتخاب کوچکترین مقدار در آردینو

                    نوشته اصلی توسط adrianjavad نمایش پست ها
                    اخه من تو برنامه نویسیش مشکل دارم ..آرایه رو هر کار کردم خطا میده نمی دونم چطور تعریف کنم
                    خوب مثلا اینطوری بنویسید:

                    int frequency[5];

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

                    دیدگاه


                      #11
                      پاسخ : انتخاب کوچکترین مقدار در آردینو

                      #define input 12


                      float high_time;
                      float h_time;
                      float low_time;
                      float l_time;
                      float time_period;
                      float t_period;
                      int frequency[5];
                      int frequenc[5];
                      int k;
                      int s;
                      int f;
                      int j;

                      void setup()
                      {

                      pinMode(input,INPUT_PULLUP);
                      //pinMode(in,INPUT_PULLUP);


                      Serial.begin(9600);

                      }
                      void loop()
                      {
                      high_time=pulseIn(input,HIGH);
                      low_time=pulseIn(input,LOW);

                      time_period=high_time+low_time;
                      time_period=time_period/1000;
                      if(time_period!=0){frequency=1000/time_period;}
                      else {Serial.println("0 Frequency");frequency=0;}




                      for(k=0;k<5;k++){
                      frequenc[k]=frequency[k];
                      }
                      s=frequenc[1];
                      f=frequenc[4];
                      j=min(s,f);



                      Serial.println(j);

                      delay(200);
                      }
                      اینجوری نوشتم خطا میده مشکلش چیه

                      دیدگاه


                        #12
                        پاسخ : انتخاب کوچکترین مقدار در آردینو

                        نوشته اصلی توسط adrianjavad نمایش پست ها
                        #define input 12


                        float high_time;
                        float h_time;
                        float low_time;
                        float l_time;
                        float time_period;
                        float t_period;
                        int frequency[5];
                        int frequenc[5];
                        int k;
                        int s;
                        int f;
                        int j;

                        void setup()
                        {

                        pinMode(input,INPUT_PULLUP);
                        //pinMode(in,INPUT_PULLUP);


                        Serial.begin(9600);

                        }
                        void loop()
                        {
                        high_time=pulseIn(input,HIGH);
                        low_time=pulseIn(input,LOW);

                        time_period=high_time+low_time;
                        time_period=time_period/1000;
                        if(time_period!=0){frequency=1000/time_period;}
                        else {Serial.println("0 Frequency");frequency=0;}




                        for(k=0;k<5;k++){
                        frequenc[k]=frequency[k];
                        }
                        s=frequenc[1];
                        f=frequenc[4];
                        j=min(s,f);



                        Serial.println(j);

                        delay(200);
                        }
                        اینجوری نوشتم خطا میده مشکلش چیه
                        چه خطایی؟ عکس اش رو بذارید

                        دیدگاه

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