اطلاعیه

Collapse
No announcement yet.

پروژه آردوینو led با قابلیت تغییر سرعت چشمک زدن

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

    پروژه آردوینو led با قابلیت تغییر سرعت چشمک زدن

    سلام من می خواهم با یک کلید روشن با زدن کلید UP سرعت چشمک زدن LED رو زیاد و با زدن کلید DOWN سرعت چشمک زدن LED کم بشود و تایمر هم داشته باشه وسرعت چشمک زدن در حد میکرو ثانیه و میلی ثانیه باشد.
    با تشکر از دوستان

    #2
    پاسخ : پروژه آردوینو led با قابلیت تغییر سرعت چشمک زدن

    #define LED_PIN 12                         // pini ke LED behesh vasle
    #define UP_BUTTON 2 // pini ke kelide UP behesh vasle
    #define DOWN_BUTTON 3 // pini ke kelide DOWN behesh vasle
    #define change_step 1000 // ba har feshare kelid cheghadr zaman taghyir bokone?

    uint32_t blink_speed = 200000; // meghdare avvalie = 200 miliseconds

    void setup() {
    pinMode(LED_PIN, OUTPUT);
    pinMode(UP_BUTTON, INPUT_PULLUP);
    pinMode(DOWN_BUTTON, INPUT_PULLUP);
    attachInterrupt(digitalPinToInterrupt(UP_BUTTON), increase_speed, FALLING);
    attachInterrupt(digitalPinToInterrupt(DOWN_BUTTON), decrease_speed, FALLING);
    Serial.begin(9600);
    }

    void increase_speed(){
    blink_speed += change_step;
    Serial.print("Speed increased to:\t");
    Serial.print(blink_speed);
    Serial.print("\t microseconds\n\r");
    }

    void decrease_speed(){
    blink_speed -= change_step;
    Serial.print("Speed decreased to:\t");
    Serial.print(blink_speed);
    Serial.print("\t microseconds\n\r");
    }

    void blink_led(uint32_t _speed){
    digitalWrite(LED_PIN, HIGH);
    delayMicroseconds(_speed);
    digitalWrite(LED_PIN, LOW);
    delayMicroseconds(_speed);
    }

    void loop() {
    blink_led(blink_speed);
    }


    این بنظرم جواب بده
    نکات:
    1- کلیدها به صورت داخلی پول آپ شدن. یعنی فقط کافیه که یک سر کلید به میکرو و سر دیگرش به زمین وصل بشه.
    2- با فشار کلید، اینتراپت خارجی فعال میشه. به همین دلیل حتما باید بانس کلید رو به صورت سخت افزاری بگیرید. (این لینک رو بخونید)
    3- حتما باید کلید هارو به پایه هایی وصل کنید که اینتراپت خارجی دارن. این کد رو برای آردوینو نانو نوشتم و توی این برد، پین های 3 و 2 اینتراپت خارجی هستند. از این لینک ببینید برد شما کدوم پین هاش اینتراپت خارجی داره.
    اگر باز هم ابهامی هست بفرمایید
    موفق باشید
    جدیدترین ویرایش توسط s.motlaq; ۱۵:۲۹ ۱۳۹۸/۰۵/۱۲.
    اللهم عجل لوليک الفرج

    دیدگاه


      #3
      Re: پروژه آردوینو led با قابلیت تغییر سرعت چشمک زدن

      برنامه فوق به خوبی جواب میده ولی نه واسه میکرو ثانیه چون اگر میکرو ثانیه یا زیر 25 میلی ثانیه باشه دیگه چشم قادر نیست تغییرات رو ببینه در نتیجه همیشه روشن دیده میشه
      برای دیبانسینگ هم یه مدار RC سر راه کلید که با یه سرچ به راحتی پیدا میشه استفاده کنین

      دیدگاه

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