Bài 13. Điều khiển động cơ DC

Trong bài học này, chúng ta sẽ học cách điều khiển động cơ DC sử dụng Arduino và một transistor.

Bạn sẽ sử dụng ngõ ra analog của Arduino (PWM) để điều khiển tốc độ của động cơ thông qua việc gửi thông số từ 0 đến 255 thông qua Serial Monitor.

Linh kiện cần thiết

STT Tên linh kiện SL Hình ảnh
1 Board Arduino Uno R3 1
2 Dây nguồn USB 1
3 Breadboard mini 1
4 Dây căm breadboard 1
5 Động cơ DC 5V 1
6 Điện trở 270Ω (đỏ, tím, nâu) 1
7 Diode 1N4001 1
8 Transistor PN2222 1

Sơ đồ đấu dây

Khi bạn kết nối các linh kiện vào breadboard, có hai điều cần chú ý.

Một là, hãy chắc chắn rằng transistor được lắp đúng chân. Phía phẳng của transistor nằm ở phía bên phải của breadboard.

Hai là, đầu có vòng tròn của diode phải hướng về phía +5V – như hình bên dưới. Lưu ý rằng, nếu động cơ của bạn có dòng tải lớn hơn 1000mA, hãy sử dụng nguồn từ cổng USB của các bộ sạc thay vì nguồn từ cổng USB của máy tính.

Động cơ có thể nối vào mạch theo bất kì chiều nào, nếu đảo đầu dây, ta sẽ có chiều quay ngược lại.

Code cho Arduino

Hãy nạp đoạn code sau vào Arduino

/*
Lesson 13. DC Motor
*/
   
 int motorPin = 3;
 
 void setup() 
{ 
  pinMode(motorPin, OUTPUT);
  Serial.begin(9600);
  while (! Serial);
  Serial.println("Speed 0 to 255");
} 
 
  
 void loop() 
{ 
  if (Serial.available())
  {
    int speed = Serial.parseInt();
    if (speed >= 0 && speed <= 255)
    {
      analogWrite(motorPin, speed);
    }
  }
} 

Transistor sẽ đóng vai trò như một công tắc, điều khiển nguồn đến động cơ, chân 3 của Arduino dùng để bật tắt transistor và được đặt tên là ‘motorPin’ trong sketch.

Khi sketch được khởi động, nó sẽ nhắc bạn điều khiển tốc độ động cơ bằng cách nhập một giá trị từ 0 đến 255 vào Serial Monitor.

Trong hàm ‘loop’, lệnh ‘Serial.parseInt’ dùng để đọc một dòng gõ vào ở dạng văn bản trong Serial và chuyển nó sang dạng số học ‘int’.

Bạn có thể gõ số bất kì ở đây, phát biểu ‘if’ ở dòng tiếp theo chỉ thực hiện việc xuất một tín hiệu analog nếu như số nhập vào nằm trong khoảng từ 0 đến 255.

Transistor

Động cơ DC nhỏ, thường sử dụng dòng lớn hơn dòng mà một chân của Arduino có thể cấp được. Do đó, nếu bạn nối thẳng động cơ vào Arduino có thể gây hỏng kit Arduino của bạn.

Một con transistor nhỏ như PN2222 có thể được dùng như một công tắc, sử dụng một dòng rất nhỏ từ chân ngõ ra của Arduino để điều khiển một dòng lớn hơn qua động cơ. Nguyên lý hoạt động của nó được thể hiện như hình dưới.

Transistor có 3 chân, dòng điện sẽ đi từ chân Collector đến chân Emitter, nhưng điều này chỉ xảy ra khi cấp một dòng nhỏ vào chân Base. Dòng này được cấp từ chân ngõ ra của Arduino.

Sơ đồ bên dưới gọi là sơ đồ nguyên lý, giống như sơ đồ breadboard, đây cũng là một cách để thể hiện sự kết nối của các linh kiện trong một dự án điện tử nào đó.

Chân D3 của Arduino kết nối vào điện trở. Giống như khi sử dụng LED, việc làm này nhằm giới hạn dòng điện vào chân base của transistor.

Có một diode được kết nối song song với kết nối của động cơ. Các diode chỉ cho phép dòng điện chạy qua theo một chiều (chiều theo mũi tên).

Khi bạn tắt nguồn của motor, bạn sẽ có thể gặp dòng điện cảm ứng, dòng điện này có thể ảnh hưởng đến Arduino hoặc transistor. Diode được lắp vào mạch để chống lại dòng điện này.

Mở rộng

Hãy gõ vào các giá trị khác nhau (bắt đầu từ 0) vào Serial Monitor và chú ý tại giá trị nào thì động cơ bắt đầu quay. Và động cơ sẽ quay nhanh khi bạn tăng dòng ngõ ra analog.

Thử giữ trục động cơ bằng hai ngón tay của bạn. Đừng giữ nó quá lâu, nếu không transistor sẽ nóng lên, nhưng bạn sẽ thấy rằng rất dễ để dừng động cơ. Nó quay nhanh, nhưng lại mômen lại không lớn. Bạn sẽ có thể tạo được mômen lớn hơn thông qua các bộ giảm tốc, khi đó tốc độ quay của trục ra sẽ thấp hơn, nhưng mômen lại cao hơn.

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 *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.