Loading...
Vietnam Geography App
Loading...
Vietnam Geography App
Khám phá sức mạnh của PWM để tạo ra các tín hiệu analog 'giả', cho phép bạn điều khiển độ sáng của đèn LED hoặc tốc độ của động cơ.
Không. PWM là một kỹ thuật để "giả lập" một tín hiệu analog bằng cách sử dụng một tín hiệu kỹ thuật số. Nó bật và tắt tín hiệu digital rất nhanh. Mắt người hoặc động cơ sẽ cảm nhận sự thay đổi nhanh này như một mức điện áp trung bình, tạo ra hiệu ứng tương tự như tín hiệu analog (ví dụ: đèn mờ đi hoặc động cơ chạy chậm lại).
Không. Hàm `analogWrite()` chỉ hoạt động trên các chân có phần cứng hỗ trợ PWM, được đánh dấu bằng dấu ngã (~). Nếu bạn cố gắng sử dụng nó trên một chân digital thông thường, nó sẽ không hoạt động như mong đợi.
Duty Cycle là tỷ lệ phần trăm thời gian mà tín hiệu ở trạng thái HIGH trong một chu kỳ hoàn chỉnh. Ví dụ, duty cycle 50% có nghĩa là tín hiệu ở mức HIGH trong một nửa thời gian và ở mức LOW trong nửa còn lại. Trong Arduino, `analogWrite(pin, 127)` tương ứng với duty cycle khoảng 50%.
Có, bằng phần mềm. Kỹ thuật này được gọi là "Software PWM". Bạn có thể tự viết code để bật/tắt một chân digital rất nhanh. Tuy nhiên, nó sẽ không chính xác và ổn định bằng PWM phần cứng, và nó sẽ chiếm dụng tài nguyên của bộ vi xử lý.
Bằng cách thay đổi duty cycle của tín hiệu cấp cho động cơ, PWM điều chỉnh điện áp trung bình mà động cơ nhận được. Duty cycle cao hơn (điện áp trung bình cao hơn) làm động cơ quay nhanh hơn, và ngược lại.
Đèn LED RGB thực chất là 3 đèn LED (Đỏ, Xanh lá, Xanh dương) trong cùng một vỏ. Bằng cách sử dụng PWM để điều khiển độ sáng của từng màu riêng biệt, bạn có thể trộn chúng lại với nhau để tạo ra hàng triệu màu sắc khác nhau.
Trên hầu hết các chân PWM của Arduino Uno (3, 9, 10, 11), tần số mặc định là khoảng 490 Hz. Riêng chân 5 và 6 có tần số khoảng 980 Hz.
Có, nhưng nó không đơn giản như một hàm thông thường. Bạn cần phải thao tác trực tiếp với các thanh ghi (registers) của bộ vi điều khiển. Việc này dành cho người dùng nâng cao và có thể ảnh hưởng đến các chức năng khác của Arduino.
Vì bộ điều khiển PWM của Arduino có độ phân giải 8-bit. Điều này có nghĩa là nó có thể chia một chu kỳ thành 2^8 = 256 mức khác nhau, được biểu diễn bằng các số từ 0 đến 255.
Có, bạn có thể sử dụng các hàm toán học như hàm sin để tạo ra một đường cong độ sáng mượt mà và tự nhiên hơn là việc tăng/giảm tuyến tính bằng vòng lặp `for`.
Giá trị đầu vào của hàm `analogWrite(pin, value)` nằm trong khoảng nào?
Trên bo mạch Arduino Uno, làm thế nào để nhận biết một chân digital có hỗ trợ PWM?
Lập trình cho đèn LED sáng dần lên rồi lại từ từ tối đi, tạo hiệu ứng như đang thở.
Đèn LED sáng và tối dần một cách mượt mà, lặp đi lặp lại.
Sinh viên ngành Tự động hóa tại Đại học Bách Khoa Hà Nội
“PWM là một trong những kỹ thuật đầu tiên và quan trọng nhất mình học được. Nó mở ra khả năng điều khiển thế giới vật lý một cách tinh vi, không chỉ là bật/tắt. Từ điều khiển đèn, mình đã áp dụng nó để điều khiển robot và các hệ thống phức tạp hơn.”