- Điều chế độ rộng xung:
- Vật liệu cần thiết
- Sơ đồ mạch
- Mã và giải thích
- Kiểm soát tốc độ của động cơ DC bằng Arduino
Động cơ DC là động cơ được sử dụng nhiều nhất trong các dự án Robotics và điện tử. Để điều khiển tốc độ của động cơ DC, chúng ta có nhiều phương pháp khác nhau, như tốc độ có thể được điều khiển tự động dựa trên nhiệt độ nhưng trong dự án này, phương pháp PWM sẽ được sử dụng để điều khiển tốc độ của động cơ DC. Ở đây trong dự án Điều khiển tốc độ động cơ Arduino này, tốc độ có thể được điều khiển bằng cách xoay núm của chiết áp.
Điều chế độ rộng xung:
PWM là gì? PWM là một kỹ thuật bằng cách sử dụng chúng ta có thể kiểm soát điện áp hoặc công suất. Hiểu đơn giản hơn, nếu bạn sử dụng điện áp 5 volt để điều khiển động cơ thì động cơ sẽ chuyển động với một tốc độ nào đó, bây giờ nếu chúng ta giảm điện áp đặt xuống 2 nghĩa là chúng ta áp dụng 3 vôn vào động cơ thì tốc độ động cơ cũng giảm theo. Khái niệm này được sử dụng trong dự án điều khiển điện áp sử dụng PWM. Chúng tôi đã giải thích PWM chi tiết trong bài viết này. Ngoài ra, hãy kiểm tra mạch này, nơi PWM được sử dụng để điều khiển độ sáng của đèn LED: 1 Watt LED Dimmer.
% Chu kỳ nhiệm vụ = (TON / (TON + TOFF)) * 100 Trong đó, T BẬT = Thời gian CAO của sóng vuông T TẮT = Thời gian THẤP của sóng vuông
Bây giờ nếu công tắc trong hình được đóng liên tục trong một khoảng thời gian thì động cơ sẽ liên tục BẬT trong thời gian đó. Nếu công tắc đóng trong 8ms và mở trong 2ms trong chu kỳ 10ms, thì Động cơ sẽ chỉ BẬT trong thời gian 8ms. Bây giờ thiết bị đầu cuối trung bình vượt qua trong khoảng thời gian 10ms = Thời gian BẬT / (Thời gian BẬT + Thời gian TẮT), đây được gọi là chu kỳ nhiệm vụ và là 80% (8 / (8 + 2)), vì vậy mức trung bình điện áp đầu ra sẽ là 80% điện áp của pin. Bây giờ mắt người không thể thấy rằng động cơ đang bật trong 8ms và tắt trong 2ms, vì vậy sẽ giống như Động cơ DC đang quay với tốc độ 80%.
Trong trường hợp thứ hai, công tắc đóng trong 5ms và mở trong 5ms trong khoảng thời gian 10ms, do đó điện áp đầu cuối trung bình ở đầu ra sẽ bằng 50% điện áp pin. Giả sử nếu điện áp pin là 5V và chu kỳ nhiệm vụ là 50% và do đó, điện áp đầu cuối trung bình sẽ là 2,5V.
Trong trường hợp thứ ba, chu kỳ làm việc là 20% và điện áp đầu cuối trung bình là 20% điện áp pin.
Chúng tôi đã sử dụng PWM với Arduino trong nhiều Dự án của mình:
- Bộ điều chỉnh độ sáng LED dựa trên Arduino sử dụng PWM
- Quạt điều khiển nhiệt độ sử dụng Arduino
- Điều khiển động cơ DC bằng Arduino
- Điều khiển tốc độ quạt AC bằng Arduino và TRIAC
Bạn có thể tìm hiểu thêm về PWM bằng cách xem qua các dự án khác nhau dựa trên PWM.
Vật liệu cần thiết
- Arduino UNO
- Động cơ DC
- Transistor 2N2222
- Chiết áp 100k ohm
- Tụ điện 0,1uF
- Breadboard
- Dây nhảy
Sơ đồ mạch
Sơ đồ mạch cho Điều khiển tốc độ động cơ DC Arduino sử dụng PWM được giới thiệu dưới đây:
Mã và giải thích
Mã hoàn chỉnh cho Điều khiển động cơ DC Arduino sử dụng chiết áp được đưa ra ở cuối.
Trong mã dưới đây, chúng tôi đã khởi tạo các c1 biến và c2 và giao pin analog A0 cho sản lượng chiết và 12 tháng Pin cho 'PWM'.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Bây giờ, trong đoạn mã dưới đây, đặt chân A0 làm đầu vào và 12 (là chân PWM) làm đầu ra.
void setup () { pinMode (pwmPin, OUTPUT); // khai báo chân 12 là pinMode đầu ra (pot, INPUT); // khai báo chân A0 là đầu vào }
Bây giờ, trong void loop (), chúng ta đang đọc giá trị tương tự (từ A0) bằng cách sử dụng analogRead (pot) và lưu nó vào biến c2. Sau đó, trừ giá trị c2 cho 1024 và lưu kết quả trong c1. Sau đó làm cho chân PWM thứ 12 của Arduino CAO và sau đó sau một khoảng thời gian trễ giá trị c1 làm cho chân đó THẤP. Một lần nữa, sau một khoảng thời gian trễ của giá trị c2, vòng lặp tiếp tục.
Lý do trừ giá trị Analog cho 1024 là, Arduino Uno ADC có độ phân giải 10-bit (vì vậy các giá trị nguyên từ 0 - 2 ^ 10 = 1024 giá trị). Điều này có nghĩa là nó sẽ ánh xạ điện áp đầu vào từ 0 đến 5 volt thành các giá trị nguyên từ 0 đến 1024. Vì vậy, nếu chúng ta nhân anlogValue đầu vào với (5/1024), thì chúng ta sẽ nhận được giá trị số của điện áp đầu vào. Tìm hiểu tại đây cách sử dụng đầu vào ADC trong Arduino.
void loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // đặt chân 12 HIGH delayMicroseconds (c1); // đợi c1 uS (thời gian cao) digitalWrite (pwmPin, LOW); // đặt chân 12 LOW delayMicroseconds (c2); // đợi c2 uS (thời gian thấp) }
Kiểm soát tốc độ của động cơ DC bằng Arduino
Trong mạch này, để điều khiển tốc độ của động cơ DC, chúng tôi sử dụng chiết áp 100K ohm để thay đổi chu kỳ hoạt động của tín hiệu PWM. Chiết áp 100K ohm được kết nối với chân đầu vào tương tự A0 của Arduino UNO và động cơ DC được kết nối với chân thứ 12 của Arduino (là chân PWM). Hoạt động của chương trình Arduino rất đơn giản, vì nó đọc điện áp từ chân analog A0. Điện áp tại chân analog được thay đổi bằng cách sử dụng chiết áp. Sau khi thực hiện một số tính toán cần thiết, chu kỳ nhiệm vụ được điều chỉnh theo nó.
Ví dụ: nếu chúng ta cấp giá trị 256 cho đầu vào tương tự, thì thời gian CAO sẽ là 768ms (1024-256) và thời gian THẤP sẽ là 256ms. Do đó, nó đơn giản có nghĩa là chu kỳ nhiệm vụ là 75%. Mắt chúng ta không thể nhìn thấy dao động tần số cao như vậy và có vẻ như động cơ đang BẬT liên tục với 75% tốc độ. Vì vậy, đó là cách chúng ta có thể thực hiện Điều khiển tốc độ động cơ bằng Arduino.