سلام من می خواهم با یک کلید روشن با زدن کلید UP سرعت چشمک زدن LED رو زیاد و با زدن کلید DOWN سرعت چشمک زدن 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);
}
دیدگاه