Arduino - LED mờ dần

Ví dụ này minh họa việc sử dụng hàm analogWrite () trong việc tắt đèn LED. AnalogWrite sử dụng điều chế độ rộng xung (PWM), bật và tắt pin kỹ thuật số rất nhanh với các tỷ lệ khác nhau giữa bật và tắt, để tạo hiệu ứng mờ dần.

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × Breadboard
  • 1 × Arduino Uno R3
  • 1 × LED
  • Điện trở 1 × 330Ω
  • 2 × Jumper

Thủ tục

Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.

Note- Để tìm ra cực tính của đèn LED, hãy quan sát kỹ nó. Hai chân càng ngắn, về phía mép phẳng của bóng đèn cho biết cực âm.

Các thành phần như điện trở cần phải được uốn cong các thiết bị đầu cuối của chúng thành góc 90 ° để khớp với ổ cắm của bảng mạch chính. Bạn cũng có thể cắt ngắn các thiết bị đầu cuối.

Phác thảo

Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở tệp phác thảo mới bằng cách nhấp vào Mới.

Mã Arduino

/*
   Fade
   This example shows how to fade an LED on pin 9 using the analogWrite() function.

   The analogWrite() function uses PWM, so if you want to change the pin you're using, be
   sure to use another PWM capable pin. On most Arduino, the PWM pins are identified with
   a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
*/

int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:

void setup() {
   // declare pin 9 to be an output:
   pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:

void loop() {
   // set the brightness of pin 9:
   analogWrite(led, brightness);
   // change the brightness for next time through the loop:
   brightness = brightness + fadeAmount;
   // reverse the direction of the fading at the ends of the fade:
   if (brightness == 0 || brightness == 255) {
      fadeAmount = -fadeAmount ;
   }
   // wait for 30 milliseconds to see the dimming effect
   delay(300);
}

Mã cần lưu ý

Sau khi khai báo chân số 9 là chân LED của bạn, bạn không cần phải làm gì trong hàm setup () của mã. Hàm analogWrite () mà bạn sẽ sử dụng trong vòng lặp chính của mã của mình yêu cầu hai đối số: Một, cho hàm biết chân nào sẽ ghi vào và hàm kia cho biết giá trị PWM cần ghi.

Để tắt và bật đèn LED, hãy tăng dần các giá trị PWM từ 0 (tất cả các cách tắt) đến 255 (tất cả các cách bật), và sau đó quay lại 0, để hoàn thành chu kỳ. Trong bản phác thảo ở trên, giá trị PWM được đặt bằng một biến gọi là độ sáng. Mỗi lần qua vòng lặp, nó tăng theo giá trị của biếnfadeAmount.

Nếu độ sáng ở một trong hai cực trị của nó (0 hoặc 255), thì fadeAmount được thay đổi thành âm. Nói cách khác, nếu fadeAmount là 5, thì nó được đặt thành -5. Nếu nó là -5, thì nó được đặt thành 5. Lần tiếp theo trong vòng lặp, sự thay đổi này khiến độ sáng cũng thay đổi theo hướng.

analogWrite()có thể thay đổi giá trị PWM rất nhanh, do đó, độ trễ ở cuối bản phác thảo sẽ kiểm soát tốc độ mờ dần. Hãy thử thay đổi giá trị của độ trễ và xem cách nó thay đổi hiệu ứng mờ dần.

Kết quả

Bạn sẽ thấy độ sáng của đèn LED thay đổi dần dần.