ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 16
  1. #1
    2017/06/09
    11
    3

    کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    سلام در آردوینو من کد زیر رو نوشتم:
    کد:
    #include <LiquidCrystal.h>
    
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    
    
    void setup() {
      lcd.begin(16, 2);
      Serial.begin(9600);
    }
    
    
      void loop() {
    
    
        int sens = analogRead(A0)/68.2;
        int vib = analogRead(A1);
      lcd.setCursor(0, 0);
      lcd.print("SENS");
      lcd.setCursor(0, 1);
      lcd.print(sens);
      if ( sens < 10 ) {
      lcd.print("   ");
    } else if ( sens < 100 ) {
      lcd.print("  ");
    } else if ( sens < 1000 ) {
      lcd.print(" ");
    }
      lcd.setCursor(7, 0);
      lcd.print("VIB");
      lcd.setCursor(7, 1);
      lcd.print(vib);
      if ( vib < 10 ) {
      lcd.print("   ");
    } else if ( vib < 100 ) {
      lcd.print("  ");
    } else if ( vib < 1000 ) {
      lcd.print(" ");
    }
    
    
    }
    به پایه a0 یک پتانسیومتر وصل کردم و به پایه a1 یک سنسور پیزو وصل کردم.
    عدد a0 رو با کلمه sens به نمایش در آوردم و با چرخوندن پتانسیومتر از 1 تا ده را برام نمایش میده.
    عدد a1 را با کلمه vib روی ال سی دی نمایش دادم و با اشاره به روی سنسور پیزو عددش تغییر میکنه
    حالا ما یه کار میخوایم انجام بدیم که من بلد نیستم کدش رو بنویسم::
    میخوایم اختلاف مقدار سنسور پیزو(a1) رو با یه لحظه قبلش توی یک تابع تعریف کنیم که تابع مقدارش فقط عدد های صحیح و مثبت باشه که من این رو نوشتم(اگه هرجایی اشتباه کردم بهم بگید):
    کد:
    int x1 = analogRead(A0);
    delay(5);
    int x2 = analogRead(A0);
     
    int x = x2 - x1;
    int z = abs(x)
    که در نهایت z میشه عدد مقدار اختلاف سنسور با یه لحظه قبلش به صورت صحیح مثبت.


    کل این کد ها بخوبی عمل کردند و اما اون چیزی که من بلد نبودم(سرتون هم درد آوردم):
    میخوام اعداد متغیر Z توی یک بازه 10 ثانیه ای خونده بشن و میانگینشون گرفته بشه
    عدد میانگین رو توی یک متغیر بنویسیم مثلا h بشه میانگین سنسور ما توی 10 ثانیه
    کد این کار رو میخوام ممنون
  2. #2
    2016/11/15
    531
    354

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    نقل قول نوشته اصلی توسط Mohammadturbo

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    میخوام اعداد متغیر Z توی یک بازه 10 ثانیه ای خونده بشن و میانگینشون گرفته بشه
    یعنی 10 بار خونده بشه؟؟
  3. #3
    2017/06/09
    11
    3

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    نه تو ده ثانیه: هر ثانیه 30 -40 بار خونده بشه

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

    نقل قول نوشته اصلی توسط Amirlopez

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    یعنی 10 بار خونده بشه؟؟
    یعنی در کل 300 تا عدد خونده شده باشه.اعداد با هم جمع تقسیم بر تعدادشون بشه
    حتی اگه امکان داشته باشه از اعداد صفر صرف نظر بشه
  4. #4
    2017/06/09
    11
    3

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    دوستان کد زیر را پیدا کردم این همین کاری که من میخوام را انجام میده آیا:
    کد:
    /*
      Smoothing
    
    
      Reads repeatedly from an analog input, calculating a running average and
      printing it to the computer. Keeps ten readings in an array and continually
      averages them.
    
    
      The circuit:
      - analog sensor (potentiometer will do) attached to analog input 0
    
    
      created 22 Apr 2007
      by David A. Mellis  <dam@mellis.org>
      modified 9 Apr 2012
      by Tom Igoe
    
    
      This example code is in the public domain.
    
    
      http://www.arduino.cc/en/Tutorial/Smoothing
    */
    
    
    // Define the number of samples to keep track of. The higher the number, the
    // more the readings will be smoothed, but the slower the output will respond to
    // the input. Using a constant rather than a normal variable lets us use this
    // value to determine the size of the readings array.
    const int numReadings = 200;
    
    
    int readings[numReadings];      // the readings from the analog input
    int readIndex = 0;              // the index of the current reading
    int total = 0;                  // the running total
    int average = 0;                // the average
    
    
    int inputPin = A1;
    
    
    void setup() {
      // initialize serial communication with computer:
      Serial.begin(9600);
      // initialize all the readings to 0:
      for (int thisReading = 0; thisReading < numReadings; thisReading++) {
        readings[thisReading] = 0;
      }
    }
    
    
    void loop() {
      // subtract the last reading:
      total = total - readings[readIndex];
      // read from the sensor:
      readings[readIndex] = analogRead(inputPin);
      // add the reading to the total:
      total = total + readings[readIndex];
      // advance to the next position in the array:
      readIndex = readIndex + 1;
    
    
      // if we're at the end of the array...
      if (readIndex >= numReadings) {
        // ...wrap around to the beginning:
        readIndex = 0;
      }
    
    
      // calculate the average:
      average = total / numReadings;
      // send it to the computer as ASCII digits
      Serial.println(average);
      delay(1);        // delay in between reads for stability
    }
  5. #5
    2016/12/06
    56
    5

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    دوستان سلام
    لطفا کمک کنید.
    من برنامه ی زیر رو نوشتم با یک مثال کوچیک میخوام که یک void بنویسم که متغییر های داخلشو بنا به موقعیت استفادش عوض کنم.
    این کدی که در زیر اپلود میکنم فقط یک مثال کوچیکه از کاری میخوام بکنم،چون برنامه شلوغ میشه میخوام ازین روش استفاده کنم ممنون میشم راهنماییم کنید و بگید مشکل کارم کجاست و اگر راه حل جایگزینی هستش ممنون میشم راهنمایی کنید.
    int CounterA;
    int CounterB;
    int CounterC=0;

    void setup() {

    Serial.begin(9600);

    }

    void loop() {

    int V=digitalRead(12);


    if(V==HIGH){
    CounterC++;
    }
    switch(CounterC){
    case 1:Counters(CounterA,CounterB);break;
    }



    }
    void Counters(int X,int_t Y){
    X++;
    Y--;
    }
  6. #6
    2018/02/22
    1,096
    694

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

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

    بعد از خواندن وضعیت پوش باتون حتما باید delay بذارید ، وگرنه در لحظه ای که کلید رو فشار دادید ، لوپ بارها بار اجرا میشه ،
  7. #7
    2018/01/23
    6
    0

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    نقل قول نوشته اصلی توسط mahdypawe

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دوستان سلام
    لطفا کمک کنید.
    من برنامه ی زیر رو نوشتم با یک مثال کوچیک میخوام که یک void بنویسم که متغییر های داخلشو بنا به موقعیت استفادش عوض کنم.
    این کدی که در زیر اپلود میکنم فقط یک مثال کوچیکه از کاری میخوام بکنم،چون برنامه شلوغ میشه میخوام ازین روش استفاده کنم ممنون میشم راهنماییم کنید و بگید مشکل کارم کجاست و اگر راه حل جایگزینی هستش ممنون میشم راهنمایی کنید
    سلام.
    اگر برداشت من از خواستتون درست باشه ، فقط نیاز به یک swtch تو تابعتون دارید:

    int Counter (into x, int y, into cmd) {
    int K;
    switch (cmd) {
    case 1:
    ++x;
    K=x;
    break;
    case 2:
    --x;
    K=x;
    break;
    case 3:
    K=x-y;
    break;
    }
    return K;
    }

    میبخشید اگر اشتباه تایپی داشته باشه، با موبایل تایپ شده.
  8. #8
    2016/12/06
    56
    5

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    نقل قول نوشته اصلی توسط Masood Ashoori

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

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

    بعد از خواندن وضعیت پوش باتون حتما باید delay بذارید ، وگرنه در لحظه ای که کلید رو فشار دادید ، لوپ بارها بار اجرا میشه ،

    سلام دوستان ممنون از جواب هایی که دادین.
    این برنامه ای که در زیر نوشتم فقط برای اینکه بتونم منظورمو برسونم هستش،برنامه ی اصلی حدود700 خط هستش،من میخوام در باز نویسی این برنامه یکم از حجم برنامه نویسی کم کنم چون خیی شلوغ هستش.

    من از دستوراتی که داخل void Counters نوشتم خیلی استفاده میکنم در این برنامه برای همین می خوام داخل یک void باشه و فقط اسم متغییر هایی که داخلش هست مثل X و Y رو عوض کنم و جایگزینشون کنم.
    دقیقا مثل این برنامه ای که در زیر نوشتم ولی نمی دونم چرا عمل نمی کنه.
    هدف از برنامه زیر این هستش که وقتی C مقدارش یک شدش A جایگزین متغییر X بشه و B جایگزین متغییر Y بشه،که متاسفانه نمیدونم چرا انجام نمیشه و مقدار A و B تغییر پیدا نمیکنه.
    می خوام بدونم اشکال کار کجاست؟
    ببخشید اگه طولانی شد ویا بد توضیح دادم.

    int A=0;
    int B=0;
    int C=0;


    void setup() {


    Serial.begin(9600);
    pinMode(12,INPUT);
    }


    void loop() {


    int V=digitalRead(12);
    delay(50);


    if(V==HIGH){
    C++;
    }
    switch(C){
    case 1: Counters(A,B);break;
    }




    Serial.print("Val A =");
    Serial.println(A);


    Serial.print("Val B =");
    Serial.println(B);


    }
    void Counters(int X,int Y){
    X++;
    Y--;
    }


  9. #9
    2018/01/23
    6
    0

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    نقل قول نوشته اصلی توسط mahdypawe

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    متاسفانه نمیدونم چرا انجام نمیشه و مقدار A و B تغییر پیدا نمیکنه.[/FONT]
    می خوام بدونم اشکال کار کجاست؟
    در همه زبانهای برنامه نویسی (ازجمله c و c++) دو جور از متغیرها میشه استفاده کرد. در حالت دیفالت ازمتغیر یه کپی گرفته میشه و تغییرات در تابع بر روی کپی متغیر انجام میگیره نه روی متغیر اصلی.
    حالتی که شما هم به اون احتیاج دارید حالت دوم هست بنام by reference که درواقع آدرس متغیر به تابع فرستاده شده و تغییرات روی متغییر اصلی انجام میشود.البته تو توابع آردوینو آرایه ها بصورت دیفالت به همین صورت رفرنسی تعریف میشوند. کد زیر کمکتون میکنه:

    void increment(int &variable) { // Reference to an integer
    variable++;
    }
    void setup() {
    Serial.begin(115200);
    int a = 1;
    Serial.println(a); // 1
    increment(a);
    Serial.println(a); // 2
    }
    void loop() {}
  10. #10
    2016/12/06
    56
    5

    پاسخ : کمک!!!!!!!!!برنامه نویسی در آردوینو برای خواندن سنسور آنالوگ

    نقل قول نوشته اصلی توسط reza. h

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    در همه زبانهای برنامه نویسی (ازجمله c و c++) دو جور از متغیرها میشه استفاده کرد. در حالت دیفالت ازمتغیر یه کپی گرفته میشه و تغییرات در تابع بر روی کپی متغیر انجام میگیره نه روی متغیر اصلی.
    حالتی که شما هم به اون احتیاج دارید حالت دوم هست بنام by reference که درواقع آدرس متغیر به تابع فرستاده شده و تغییرات روی متغییر اصلی انجام میشود.البته تو توابع آردوینو آرایه ها بصورت دیفالت به همین صورت رفرنسی تعریف میشوند. کد زیر کمکتون میکنه:

    void increment(int &variable) { // Reference to an integer
    variable++;
    }
    void setup() {
    Serial.begin(115200);
    int a = 1;
    Serial.println(a); // 1
    increment(a);
    Serial.println(a); // 2
    }
    void loop() {}
    اقا واقعا ممنونم خیلی زحمت کشیدین،کارم راه افتاد خداروشکر با این روشی که فرمودید.
    یک سوال دیگه هم داشتم میخواستم بدونم کسی از دوستان می تونه کمک کنه.
    من ماژول جوی استیک دارم میخوام بغیر از این که جوی استیک رو در محور X ها و Y ها مقدارشو میخونم،میخوام بصورت چرخیش(ساعتگرد و پاد ساعتگرد) ازش استفاده کنم،یک جورایی مثل ولوم ضبط های ماشین،یعنی هم چپ و راست و بالا و پایین رو باهاش مقدارشو بخونم هم اگر در جهت عقربه های ساعت چرخید یک جورایی متوجهش بشم که بتونم ازش استفاده کنم.
    ببخشید اگه یکم بد توضیح دادم.
    ممنون
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 16

موضوعات مشابه

  1. مشکل در برنامه نویسی آردوینو مگا
    توسط sadegh.put در انجمن خانواده Arduino
    پاسخ: 1
    آخرين نوشته: 2017/02/08, 08:02
  2. برنامه نویسی برای FPGA با آردوینو امکان پذیر است
    توسط فکر در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 2
    آخرين نوشته: 2016/02/20, 15:25
  3. زبان برنامه نویسی آردوینو؟
    توسط QICS در انجمن خانواده Arduino
    پاسخ: 3
    آخرين نوشته: 2015/08/10, 15:51
  4. برنامه نویسی آردوینو
    توسط haunting در انجمن خانواده Arduino
    پاسخ: 21
    آخرين نوشته: 2015/04/17, 17:28

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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