• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
    • Đồng hồ
      • Clocks
      • Nixie Clock
      • Gixie Clock
      • Lixie Clock
      • Scope Clock
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » Kiến thức căn bản » Arduino » Arduino cơ bản 02 – Phần 2: PWM | Thay đổi ánh sáng của LED trên Arduino

Arduino cơ bản 02 – Phần 2: PWM | Thay đổi ánh sáng của LED trên Arduino

11/12/2019 by admin 1 Bình luận

Arduino cơ bản 02 – Phần 2: PWM | Thay đổi ánh sáng của LED trên Arduino 

Tổng quan

Bài viết hôm nay mình sẽ hướng dẫn các bạn cách bật một con LED sáng dần và tắt dần như thế nào? Qua đó, các bạn sẽ tìm hiểu thêm một hàm mới là analogWrite() và cách sử dụng các chân PWM.

Xem thêm:

  • Arduino cơ bản 02: Buttons and PWM
  • Arduino cơ bản 09: Cảm biến ánh sáng (Quang trở) cách chia điện áp trong môi trường Arduino

Sơ đồ

Vật tư cần thiết cho bài này:

  • Arduino Board
  • LED
  • Breadboard và dây cắm
  • Điện trở 220 Ohm

Code mẫu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
   Fading Light
   This example shows how to fade an LED on pin 10 using the analogWrite() function.
*/
int ledPin = 6;       // the pin that the LED is attached to
 
void setup() {
      // declare pin 9 to be an output:
      pinMode(ledPin,OUTPUT);
      // initialize serial communication at 9600 bits per second:
      Serial.begin(9600);
}
 
void loop(){
      fadeOn(2000,5);
      fadeOff(2000,5);
}
 
void fadeOn(unsigned int time,int increament){
       //change the brightness by FOR statement
for (byte value = 0 ; value < 255; value+=increament){
                // print out the value:
        Serial.println(value);
                // set the brightness of pin 10:
analogWrite(ledPin, value);
delay(time/(255/5));
        }
}
 
void fadeOff(unsigned int time,int decreament){
       //change the brightness by FOR statement
for (byte value = 255; value >0; value-=decreament){
        Serial.println(value);
analogWrite(ledPin, value);
delay(time/(255/5));
}
}

Giải thích code

1
2
3
4
5
6
7
8
9
10
void fadeOn(unsigned int time,int increament){
       //change the brightness by FOR statement
  for (byte value = 0 ; value < 255; value+=increament){
                // print out the value:
          Serial.println(value);
                // set the brightness of pin 10:
    analogWrite(ledPin, value);
    delay(time/(255/5));
        }
}

Trong vòng lặp for điều kiện đưa ra khi giá trị Led = 0, thỏa value < 255 thì Led sẽ tăng thêm một giá trị nói một cách nôm na là giá trị càng tăng lên đồng nghĩa với việc đèn Led sẽ sáng dần lên và ngược lại.

1
analogWrite(ledPin, value);

Xung PWM

Xung là các trạng thái cao / thấp (HIGH/LOW) về mức điện áp được lặp đi lặp lại. Đại lượng đặc trưng cho 1 xung PWM (Pulse Width Modulation) bao gồm tần số (frequency) và chu kì xung (duty cycle).

Tần số là gì?

Tần số là số lần lặp lại trong 1 đơn vị thời gian. Đơn vị tần số là Hz, tức là số lần lặp lại dao động trong 1 giây.

Lấy ví dụ, 1Hz = 1 dao động trong 1 giây. 2Hz = 2 dao động trong 1 giây. 16MHz = 16 triệu dao động trong 1 giây.

Hoạt động của xung trong thực tế

Khoảng cách giữa 2 vạch màu xanh là một xung
analogWrite Tỉ lệ Chu kỳ xung
analogWrite(0) 0/255 0%
analogWrite(64) 64/255 25%
analogWrite(127) 127/255 50%
analogWrite(191) 191/255 75%
analogWrite(255) 255/255 100%

Hàm analogWrite() là một lệnh được ghi giá trị trên một chân của Arduino. Các chân PWM (~) thường xuất hiện trên Board Arduino Uno là 3, 5, 6, 9, 10, 11. 

Các chân PWM thường dùng để điều khiển độ sáng của một đèn Led hay là điều khiển động và sử dụng trong điều khiển Servo.

Lời kết

Qua bài 2 – phần 2 chúng ta biết được cách dùng analogWrite() trong việc điều khiển Thay đổi ánh sáng của LED là như thế nào. Ứng dụng của PWM trong Arduino. 

Nguồn: arduinokit.vn

Đánh giá bài viết

You May Also Like

Mạch LED DANCE ver1 - LED nháy theo nhạc bằng matrix 8x16
Mạch LED DANCE ver1 – LED nháy theo nhạc bằng matrix 8×16
Nháy theo nhạc sử dụng STM8S hiển thị VFD - Audio spectrum analyzer
Nháy theo nhạc sử dụng STM8S hiển thị VFD – Audio spectrum analyzer
Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino
Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino

Thuộc chủ đề:Arduino Tag với:arduino, cơ bản, code, led, PWM

Bài viết trước « Arduino cơ bản 01 – Phần 3: Chớp tắt LED trên Arduino Uno
Bài viết sau Arduino cơ bản 04: Sử dụng Arduino làm hệ thống đèn giao thông »

Reader Interactions

Sidebar chính

NHẬN BÀI VIẾT QUA EMAIL

Hãy đăng ký ngay để là người đầu tiên nhận được thông báo qua email mỗi khi chúng tôi có bài viết mới!

Theo dõi qua mạng xã hội

  • Facebook
  • RSS

Bạn đang tìm gì?

Bài viết mới nhất

Lược Sử In 3D: Từ Những Hi Vọng Đầu Tiên Cho Tới Thời Đại 4.0

Lược Sử In 3D: Từ Những Hi Vọng Đầu Tiên Cho Tới Thời Đại 4.0

19/04/2021

In 3D Là Gì Và Máy In 3D Hoạt Động Ra Sao?

In 3D Là Gì Và Máy In 3D Hoạt Động Ra Sao?

19/04/2021

Mạch LED DANCE ver1 - LED nháy theo nhạc bằng matrix 8x16

Mạch LED DANCE ver1 – LED nháy theo nhạc bằng matrix 8×16

18/04/2021

Làm ampli cực hot với ic ổn áp LM317

Làm ampli cực hot với ic ổn áp LM317

16/04/2021

Nháy theo nhạc sử dụng STM8S hiển thị VFD - Audio spectrum analyzer

Nháy theo nhạc sử dụng STM8S hiển thị VFD – Audio spectrum analyzer

16/04/2021

Zalo hỏi đáp 24/7

Chuyên mục

  • DỰ ÁN & MẠCH ĐIỆN (226)
    • Công nghiệp (16)
    • Dân dụng (28)
    • Điện tử ứng dụng (171)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (23)
      • Cảm biến (41)
      • Động cơ bước (6)
      • Kiểm thử và đo đạc (23)
      • LCD (12)
      • LED (19)
      • Mạch linh tinh (27)
      • Nguồn điện (39)
      • Pin sạc/Acquy và mạch sạc (22)
      • RF – FM (3)
      • Robotic (2)
    • Đồng hồ (6)
      • Clocks (3)
      • Nixie Clock (3)
    • HOME AUTOMATION (25)
    • Lập trình (74)
      • ARDUINO PROJECT (34)
      • ESP32 PROJECT (1)
      • ESP8266 PROJECT (25)
      • RASPBERRY PI PROJECT (7)
      • Vi điều khiển (11)
  • Kiến thức căn bản (147)
    • Arduino (35)
    • Điện tử cơ bản (70)
    • Điện tử số (7)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (12)
    • Raspberry Pi (9)
    • Vi điều khiển (5)

Footer

Bài viết mới nhất

  • Lược Sử In 3D: Từ Những Hi Vọng Đầu Tiên Cho Tới Thời Đại 4.0
  • In 3D Là Gì Và Máy In 3D Hoạt Động Ra Sao?
  • Mạch LED DANCE ver1 – LED nháy theo nhạc bằng matrix 8×16
  • Làm ampli cực hot với ic ổn áp LM317
  • Nháy theo nhạc sử dụng STM8S hiển thị VFD – Audio spectrum analyzer
  • Module Zigbee CC2530

Bình luận mới nhất

  • Trung trong Cách thay thế transistor tương đương
  • admin trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • DooSeop Eom trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • admin trong Mạch điều khiển đèn tự động dùng quang trở và 555

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.