Điều Khiển động Cơ Một Chiều Bằng L298 - Hoàng Vina
Có thể bạn quan tâm
Điều khiển động cơ một chiều bằng L298 là một cách dùng phổ biến hiện nay. Có thể thay thế cho cách IC cầu H và Motor shield của Arduino. Hãy cùng tìm hiểu qua bài viết sau nhé.
Module L298 là
Module L298 là một mạch điều khiển động cơ một chiều DC cùng lúc. L298 là IC điều khiển cầu kép toàn kỳ có dải điện áp hoạt động rộng, xử lý dòng tải có mức tối đa 3A. Bao gồm điện áp bão hòa thấp và bảo vệ quá nhiệt. Có cấu tạo từ hai mạch cầu H transistor.
Thông số kỹ thuật của L298:
- Điện áp ở đầu vào: dao động từ 5 – 30 V
- Điện áp tín hiệu điều khiển: 5 – 7V
- Điện áp logic: Low: từ -0,3V dao động đến 1,5V; High: 2,3V đến Vss.
- Dòng điện tối đa cho từng động cơ là 2A.
- Dòng yêu cầu của tín hiệu điều khiển từ 0 – 36 mA.
- Công suất: 1 cầu tương đương 25W.
- Kích thước: 43x43x27mm.
Cấu tạo và sơ đồ chân của L298
1. Cấu tạo của module L298 bao gồm các chân sau
- Hai chân cấp nguồn trực tiếp đến động cơ là 12V power và 5V power. Ngoài ra bạn cũng có thể cấp nguồn 9 -12V ở 12V.
- Power GND là GDN của nguồn cấp cho động cơ.
- 2 Jump A enable và B enable.
- 4 chân Input gồm có: IN1, IN2, IN3,IN4.
- Output A sẽ được nối với động cơ A. Khi nối bạn phải chú ý ký hiệu “ +;-” vì khi bạn nối ngược động cơ sẽ chạy theo chiều ngược.
- Gồm hai phần điều khiển động cơ. Có thể điều khiển cho động cơ 4 dây và động cơ 6 dây.
2. Sơ đồ chân của module L298
- Khi nối mạch để điều khiển động cơ, bạn cần chú ý hai cực +; – của động cơ sao cho tương xứng với chân + ; – của Output.
- Tiếp theo cấp nguồn cho module L298, khi đó phải chú ý chọn đúng Jump.
- Đối với động cơ dưới 1A bạn có thể sử dụng chân 5V của Arduino.
- Các chân Input IN1, IN2, IN3, IN4 của L298 sẽ được nối tương ứng với các chân D7, D6, D5, D4 của Arduino.
- Các đầu ra High và Low có nhiệm vụ điều khiển chiều quay của động cơ ở các chân INx.
Ví dụ:
- Chân IN1 là chân OutA 1, chân IN2 là chân OutA 2.
- Khi cấp nguồn cực dương vào IN1 và cực âm vào IN2 thì động cơ quay 1 chiều. Còn khi cực âm vào IN1 và cực dương vào IN2 thì động cơ quay chiều còn lại.
- Cực dương sẽ mang điện thế 5V, cực âm điện thế 0V. Hiệu điện thế bằng điện thế IN1 – điện thế IN2. Nếu hiệu điện thế 5V là mạnh nhất để điều khiển động cơ thì khi bạn hạ hiệu điện thế xuống động cơ sẽ tự động yếu đi. Và khi hiệu điện thế bằng 0 thì động cơ sẽ đổi chiều.
Điều khiển động cơ một chiều bằng L298
Bước 1: Chuẩn bị phần cứng
- Arduino Uno.
- IC L298.
- 2 Pin sạc 18650 Panasonic 4.2V 4200mAh.
- Động cơ DC giảm tốc V1.
Bước 2: Điều khiển động cơ
- Khai báo chân ENA nối với chân số 8 đối với mạch Arduino.
- Nối chân IN1 với chân số 7 và chân IN2 với chân số 6 của mạch Arduino.
- Hàm của động cơ theo chiều kim đồng hồ: chân IN1 mang trạng thái High, chân IN2 mang trạng thái Low.
- Hàm của động cơ chạy ngược chiều kim đồng hồ khi: chân IN1 mang trạng thái Low và chân IN2 mang trạng thái High.
- Khi tắt động cơ thì chân IN1 và chân IN2 đều mang trạng thái Low.
Một số mẫu code điều khiển động cơ một chiều bằng L298
Mẫu 1:
//Motor A
int enA = 8;
int in1 = 7;
int in2 = 6;
void setup()
{
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void motorA()
{
//Running motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
//Speed PWM 0~255
//Reverse 2s.
delay(2000);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
//STOP 2s.
delay(2000);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
void loop()
{
motorA();
delay(1000);
Mẫu 2:
//Motor A
int enA = 8;
int in1 = 7;
int in2 = 6;
//Motor B
int in3 = 5;
int in4 = 4;
int enB = 3;
void setup()
{
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enB,OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void MotorRunning()
{
//Running motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
//Speed PWM: 0~255
//Running motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 200);
//Speed PWM: 0~255
//Reverse 2s.
delay(2000);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
//STOP 2s.
delay(2000);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop()
{
MotorRunning();
delay(1000);
}
Mẫu 3:
- #define IN1 7
- #define IN2 6
- #define IN3 5
- #define IN4 4
- #define MAX_SPEED 255 //từ 0-255
- #define MIN_SPEED 0
- void setup()
- {
- pinMode(IN1, OUTPUT);
- pinMode(IN2, OUTPUT);
- pinMode(IN3, OUTPUT);
- pinMode(IN4, OUTPUT);
- }
- void motor_1_Dung() {
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- }
- void motor_2_Dung() {
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, LOW);
- }
- void motor_1_Tien(int speed) { //speed: từ 0 – MAX_SPEED
- speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một khoảng từ 0 – MAX_SPEED – http://arduino.vn/reference/constrain
- digitalWrite(IN1, HIGH);// chân này không có PWM
- analogWrite(IN2, 255 – speed);
- }
- void motor_1_Lui(int speed) {
- speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một khoảng từ 0 – MAX_SPEED – http://arduino.vn/reference/constrain
- digitalWrite(IN1, LOW);// chân này không có PWM
- analogWrite(IN2, speed);
- }
- void motor_2_Tien(int speed) { //speed: từ 0 – MAX_SPEED
- speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một khoảng từ 0 – MAX_SPEED – http://arduino.vn/reference/constrain
- analogWrite(IN3, speed);
- digitalWrite(IN4, LOW);// chân này không có PWM
- }
- void motor_2_Lui(int speed) {
- speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một khoảng từ 0 – MAX_SPEED – http://arduino.vn/reference/constrain
- analogWrite(IN4, 255 – speed);
- digitalWrite(IN3, HIGH);// chân này không có PWM
- }
- void loop()
- {
- motor_1_Tien(MAX_SPEED); // motor 1 tiến
- delay(5000);//tiến 5 s
- motor_2_Lui(MAX_SPEED); //motor 2 lùi
- // motor 1 vẫn tiến
- delay(2000);//tiến 2 s
- motor_1_Dung();
- motor_2_Dung();
- delay(10000);//dừng 10s
- }
Trên đây là tổng hợp các kiến thức về Điều khiển động cơ một chiều bằng L298. Hy vọng sẽ giúp ích cho các bạn.
Tham khảo thêm về Điều khiển tốc độ động cơ một chiều bằng PWM
Từ khóa » Nối L298
-
Cách Dùng Module điều Khiển động Cơ L298N
-
Điều Khiển Động Cơ Bằng IC L298 — Điện Tử Ứng Dụng - STDIO
-
Điều Khiển Tốc độ Motor DC Bằng L298
-
Hướng Dẫn Nối Dây, Kết Nối L298 |Robot|Robotics|How To Make A ...
-
Sử Dụng Module điều Khiển động Cơ L298 Với Arduino để ... - MLAB
-
Điều Khiển động Cơ Arduino DC - L298N | PWM | Mạch Cầu H
-
Giao Tiếp Module điều Khiển động Cơ L298 Với Arduino Uno
-
Mạch Motor Shield L298 (Arduino Compatible)
-
Module Điều Khiển Động Cơ L298N | PWM | Mạch Cầu H L298
-
Module điều Khiển động Cơ L298 - Cầu H - Shopee
-
Mạch Điều Khiển Động Cơ L298
-
Module Điều Khiển Động Cơ L298 Xanh - Linh Kiện Điện Tử 3M