نمایش نتایج: از 1 به 10 از 23
Like Tree4 لایک

موضوع: استفاده از تایمر

Hybrid View

  1. #1
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    86
    خب من میخوام از امکانات اردوینو استفاده کنم و با تایمر این برنامه رو بنویسم ببنید من بذنامه ریر رو نوشتم ولی وقتی که tm =tm*1000*60 میکنم (1000 تبدیل ثانیه به میلی ،60 تبدیل دقیقه به ثانیه) برنامه به زیر برنامه
    resultTap
    نمیره ولی اگه همین اعداد بشه tm=tm*60*100دقیقا راس 6 ثانیه (اگه tm =1)میره زیر برنامه مشکل از کجاس


    #include <Bounce2.h>
    #include <Timer.h>




    int tm,i,z;
    int buttonPushCounter = 0; // counter for the number of button presses
    int buttonState = 0; // current state of the button
    int lastButtonState = 0;
    const int buttonPin= 16;// previous state of the button
    Timer t;
    Bounce debouncer = Bounce();

    void setup() {
    pinMode(22,INPUT);//define pinMode
    pinMode(23,INPUT);
    pinMode(16,INPUT);
    debouncer.attach(16);
    debouncer.interval(5);

    Serial.begin(9600);
    delay(2000);
    tm=0;

    }
    void loop(){
    while(1){

    Serial.print("press9 up,10 down");

    Serial.print(tm);
    delay (1000);
    if (digitalRead(22)==LOW){
    tm++;
    while(digitalRead(22)==HIGH);

    Serial.println(tm);

    }
    if (digitalRead(23)==LOW)
    { tm--;
    while(digitalRead(23)==HIGH);

    Serial.println(tm);

    }
    if(tm<0){tm=0;}
    if(digitalRead( 16)==LOW){

    Serial.print("you are ready...");
    delay(10);
    tm=tm*60*1000;
    for (i=3;i>0;i--){

    Seial.print(i);
    delay(1000);
    }

    while(1){

    t.update();
    t.after(tm, resultTap);
    debouncer.update();
    // read the pushbutton input pin:
    buttonState = debouncer.read();

    Serial.print("number of button pushes: ");

    if (buttonState != lastButtonState) {

    if (buttonState == LOW) {


    buttonPushCounter++;

    Serial.println(buttonPushCounter);
    }


    delay(50);
    }


    lastButtonState = buttonState;


    }


    }

    }
    }

    void resultTap(){
    t.stop(z);//timer stop

    Serial.print("number of result: ");//showing number of push
    Serial.println(buttonPushCounter);
    delay(5000);
    }

    البته من این برنامه رو روی ال سی دی کاراکتری نوشتم و الان اینجا یکم به مشکل برمیخوذید اما برام این مهمه که بعد مثلا یک دقیقه زیربرنامه اجرا که نمیشه البته همونطوذ که بالا گفتم وقتی عدد 1000 میشه 100 برنامه درس اجرا میشه
    ویرایش توسط ANOOSHEH : 07-13-2016 در ساعت 01:25 PM

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط ANOOSHEH نمایش پست ها
    خب من میخوام از امکانات اردوینو استفاده کنم و با تایمر این برنامه رو بنویسم ببنید من بذنامه ریر رو نوشتم ولی وقتی که tm =tm*1000*60 میکنم (1000 تبدیل ثانیه به میلی ،60 تبدیل دقیقه به ثانیه) برنامه به زیر برنامه
    resultTap
    نمیره ولی اگه همین اعداد بشه tm=tm*60*100دقیقا راس 6 ثانیه (اگه tm =1)میره زیر برنامه مشکل از کجاس





    البته من این برنامه رو روی ال سی دی کاراکتری نوشتم و الان اینجا یکم به مشکل برمیخوذید اما برام این مهمه که بعد مثلا یک دقیقه زیربرنامه اجرا که نمیشه البته همونطوذ که بالا گفتم وقتی عدد 1000 میشه 100 برنامه درس اجرا میشه

    قبل از این که بخوام دستی ببرم تو کدت یه قانون وجود داره که نباید تو تابع اینتراپت به هیچ عنوان از Delay استفاده کرد

    delay(5000 رو بردار ببین مشکلت چقدر حل میشه

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

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

SEO by vBSEO