Điều khiển tốc độ động cơ bằng Arduino

Ở bài viết này, chúng ta sẽ sử dụng một bàn phím hex (16 nút) được kết nối với Arduino UNO để điều chỉnh bảy cấp tốc độ khác nhau cho động cơ.

Điều khiển tốc độ động cơ bằng Arduino

Điều khiển tốc độ động cơ bằng phương pháp PWM

 Điều chế độ rộng xung (PWM – Pulse Width Modulation) là một phương pháp rất phổ biến được sử dụng để điều khiển công suất hoạt động trên các thiết bị như động cơ, đèn, v.v … Trong phương pháp PWM, công suất trên tải được điều khiển bằng cách thay đổi chu kỳ làm việc của tín hiệu điều khiển. Chu kỳ làm việc càng cao thì càng có nhiều năng lượng được truyền qua tải và ngược lại. Ở mạch này, chúng ta sẽ sử dụng một bàn phím hex (16 nút) được kết nối với Arduino UNO để điều chỉnh bảy cấp tốc độ khác nhau cho động cơ.

 

Sơ đồ mạch

 Các chân hàng R1 và R2 của bàn phím hex được nối với các chân D6 và D7 của arduino. Và các chân cột C1, C2, C3 và C4 được nối với các chân D10, D11, D12 và D13 của arduino. Phím được nhấn trên bàn phím hex được xác định bằng phương pháp quét cột và nó được giải thích chi tiết trong bài viết này “Giao tiếp bàn phím hex với arduino”. Các chân kỹ thuật số của arduino chỉ cho ra dòng điện tối đa 40mA. Vì vậy, chân D3 không thể trực tiếp điều khiển động cơ. Để giải quyết vấn đề này, sử dụng một transistor NPN (2N2222) để điều khiển động cơ theo tín hiệu PWM có sẵn ở chân D3. Điện trở 100 ohm R1 được sử dụng để giới hạn dòng cho cực B của transistor. Động cơ được nối với cực C của transistor. Tụ điện 0,1uF C1 được sử dụng để triệt tiêu các xung điện áp bất ổn và giảm tiếng ồn trong quá trình chuyển đổi của động cơ.

 Arduino được cấp nguồn thông qua giắc cắm nguồn hoặc cũng có thể được cung cấp bởi PC thông qua cổng USB, nhưng vẫn phải có thêm một nguồn bên ngoài để cung cấp cho động cơ.

 

Chương trình / Code

https://drive.google.com/file/d/1F_ousxBP4nqQ5C_xRWQTawVwpHuAQ7OJ/view?usp=sharing

Quảng cáo đặt hàng nhập

 

Giải thích chương trình

 Chu kỳ làm việc của tín hiệu điều khiển PWM được thay đổi bằng cách thay đổi giá trị được ghi vào chân đầu ra D3 bằng cách sử dụng hàm analogWrite(). Phạm vi của giá trị có thể được viết là từ 0 đến 255. Hàm anlogWrite() có thể được sử dụng trên các chân D3, D5, D6, D9, D10 và D11 của Arduino UNO. Trong hầu hết các bo mạch arduino, tần số của tín hiệu PWM sẽ vào khoảng 490Hz. Chu kỳ làm việc của tín hiệu PWM tỷ lệ thuận với giá trị được viết bằng hàm analogWrite(). Dưới đây là một vài ví dụ sử dụng hàm analogWrite() giúp bạn hiểu rõ hơn:

 + analogWrite(pwm, 255) sẽ tạo ra một xung pwm với chu kỳ làm việc 100% (toàn bộ công suất) tại chân ngõ ra PWM đang được sử dụng.

 + analogWrite(pwm, 128) sẽ tạo ra xung pwm với chu kỳ làm việc 50% (một nửa công suất) tại chân ngõ ra PWM đang được sử dụng.

 + analogWrite(pwm, 0) sẽ tạo ra xung pwm với chu kỳ làm việc 0% (công suất bằng 0) tại chân ngõ ra PWM đang được sử dụng.

 Trong chương trình, chân số 3 được cấu hình là chân đầu ra PWM. Các phím từ 1 đến 6 trên bàn phím hex được sử dụng để điều chỉnh các cấp tốc độ của động cơ. Với giá trị 42 ở hàm analogWrite() sẽ cho ra xung PWM với chu kỳ làm việc 16%, và cứ tiếp tục tăng giá trị thêm 42 thì chu kỳ làm việc sẽ tăng thêm 16%. Phím “A” có chức năng TẮT động cơ và nó được thực hiện bằng lệnh digitalWrite(pwm,LOW);. Và phím “B”sẽ có chức năng điều khiển động cơ quay ở tốc độ tối đa, nó được thực hiện bằng lệnh digitalWrite(pwm,HIGH);.

 

Ghi chú:

 Mạch trên còn có ứng dụng thay đổi độ sáng của đèn chỉ cần bạn thay động cơ bằng đèn LED. Lưu ý dòng điện qua cực B của transistor NPN 2N2222 không được vượt quá 800mA. Ngoài ra, nguồn điện bên ngoài phải đủ điện áp để điều khiển chuỗi đèn LED.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *