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





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









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









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





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

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2020/05/29
    20
    0

    تایمر اردوینو

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

    int LED = 6;
    int relay = 5;
    int sc = 0;
    int hr = 0;

    void setup(){
    Serial.begin(9600);

    pinMode(LED, OUTPUT);
    }

    void loop(){
    while (sc < 2){
    digitalWrite(LED, HIGH);
    delay (500);
    digitalWrite(LED, LOW);
    delay (500);
    sc++;
    while (hr < 5){
    digitalWrite(LED, HIGH);
    delay (1800000);
    digitalWrite(LED, LOW);
    delay (1800000);
    hr++;
    }
    }
    }


  2. #2
    2020/05/29
    20
    0

    پاسخ : تایمر اردوینو

    یعنی کسی نیست کمک کنه ؟
  3. #3
    2017/06/13
    1,319
    740

    پاسخ : تایمر اردوینو

    نقل قول نوشته اصلی توسط ghost.irib

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

    عضویت

    یعنی کسی نیست کمک کنه ؟
    سلام
    اگر دقت براتون مهمه، باید بگم این تابع دقت خوبی نداره! بهتره با تایمر پیاده سازی اش کنید. اصلا نمیدونم میشه همچین تاخیری با تابع delay ایجاد کرد یا نه. تابع delay برای کارای دم دستی و نهایت برای چند ثانیه ساخته شده؛ به خاطر همین دقت خوبی هم نداره. توی کار حرفه ای نمیذارن میکروکنترلر نیم ساعت درگیر تابع delay باشه و میبرنش به مد Sleep.
  4. #4
    2020/05/29
    20
    0

    پاسخ : تایمر اردوینو

    پس چکار کنم برای تایمر ؟
  5. #5
    2017/06/13
    1,319
    740

    پاسخ : تایمر اردوینو

    نقل قول نوشته اصلی توسط ghost.irib

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

    عضویت

    پس چکار کنم برای تایمر ؟
    اگر دقت زیاد براتون مهم نباشه همینم اوکیه. نه اگر تایمر میخوایید باشه، یه سرچی بزنید توی اینترنت پر از آموزشه.
  6. #6
    2007/02/18
    مشهد
    2,544
    274

    پاسخ : تایمر اردوینو

    بهتره یک زیر برنامه بنویسین با پالس های 1 ثانیه
    وقتی تعدا پالس مورد نظر رسید اون موقع کار مورد نظر انجام بشه
    نه میکرو درگیره و ....

    در واقع از یک شمارنده استفاده می کنید که پالسهای 1 ثانیه توسط خود میکرو تولید می شه





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

    به این برنامه دقت کنید





    const int InternalLed = LED_BUILTIN;// the number of the LED pin
    int ledState = LOW; // ledState used to set the LED


    unsigned long PreviueMiliSecond1000 = 0 ; // will store last time LED was updated
    unsigned long PreviueMiliSecond500 = 0;
    unsigned long PreviueMiliSecond100 = 0;
    unsigned long PreviueMiliSecond10 = 0;
    unsigned long PreviueMiliSecond1 = 0;


    const unsigned long d1000 = 1000000;// interval at which to blink (1000 milliseconds)
    const unsigned long d500 = 500000;// interval at which to blink (500 milliseconds)
    const unsigned long d100 = 100000;// interval at which to blink (100 milliseconds)
    const unsigned long d10 = 10000;// interval at which to blink (10 milliseconds)
    const unsigned long d1 = 1000;// interval at which to blink (1 milliseconds)


    unsigned long timee;
    unsigned long c;


    void setup() {
    Serial.begin(250000);
    pinMode(InternalLed, OUTPUT);
    }


    void loop() {
    //---------------- loop 1s -----------
    unsigned long currentMillis1000 = micros(); if (currentMillis1000 - PreviueMiliSecond1000 >= d1000) {
    PreviueMiliSecond1000 = currentMillis1000;
    loop1000ms();
    }
    //---------------- loop 500ms -----------
    unsigned long currentMillis500 = micros(); if (currentMillis500 - PreviueMiliSecond500 >= d500) {
    PreviueMiliSecond500 = currentMillis500;
    loop500ms();
    }
    //---------------- loop 100ms -----------
    unsigned long currentMillis100 = micros(); if (currentMillis100 - PreviueMiliSecond100 >= d100) {
    PreviueMiliSecond100 = currentMillis100;
    loop100ms();
    }
    //---------------- loop 10ms -----------
    unsigned long currentMillis10 = micros(); if (currentMillis10 - PreviueMiliSecond10 >= d10) {
    PreviueMiliSecond10 = currentMillis10;
    loop10ms();
    }
    //---------------- loop 1ms -----------
    unsigned long currentMillis1 = micros(); if (currentMillis1 - PreviueMiliSecond1 >= d1) {
    PreviueMiliSecond1 = currentMillis1;
    loop1ms();
    }


    }


    void loop1000ms() {//------------------------------- loop 1000 ms ----------------------
    if (ledState == LOW) {
    ledState = HIGH;
    } else {
    ledState = LOW;
    } digitalWrite(InternalLed, ledState);
    c++;
    Serial.print(c );
    Serial.println(" 1000 ms isr" );
    }
    void loop500ms() {//------------------------------- loop 500 ms ----------------------
    c++;
    Serial.print(c );
    Serial.println(" 500 ms isr" );
    }
    void loop100ms() {//------------------------------- loop 100 ms ----------------------
    c++;
    Serial.print(c );
    Serial.println(" 100 ms isr" );
    }
    void loop10ms() {//------------------------------- loop 10 ms ----------------------
    c++;
    Serial.print(c );
    Serial.println(" 10 ms isr" );
    }


    void loop1ms() {//------------------------------- loop 1 ms ----------------------
    c++;
    Serial.print(c );
    Serial.println("1 ms " );
    }


    عیناا کپی کنید توی محیط آردوینو

    توی برخی قسمتها می تونی زمان سنجی مورد نظر رو بزاری

    اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن
  7. #7
    2020/05/29
    20
    0

    پاسخ : تایمر اردوینو

    ببخشید کسی میتونه یه تیکه کد با کتابخونه time.h بهم بده که ساعت و دیقه رو پرینت سریال کنه ؟
نمایش نتایج: از 1 به 7 از 7

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

  1. پاسخ: 15
    آخرين نوشته: 2021/08/04, 11:14
  2. راه اندازی Atmega 328 بدون اردوینو (پروگرام شده توسط اردوینو)
    توسط Pourya elec13 در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2021/04/04, 11:35
  3. مشکل خواندن ds1307 در یک تایمر و کیپد در تایمر دیگر
    توسط mohammadgh1370 در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2019/04/04, 16:29
  4. استفاده از تایمر یک و تایمر صفر به عنوان زمان کمکی ؟
    توسط fmicro در انجمن میکروکنترلرهای AVR
    پاسخ: 7
    آخرين نوشته: 2018/02/10, 01:01
  5. جایگزینی تایمر انالوگ به جای تایمر چشمی حرکتی
    توسط DARTANIAN در انجمن سیستم های کنترلی
    پاسخ: 0
    آخرين نوشته: 2013/04/04, 16:14

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

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

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

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

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