Điều khiển động cơ một chiều bằng L298
Thêm một phương pháp điều khiển tốc độ motor dc bằng l298. Đây là module được bán với giá chỉ 35,000 VND (Giá tham khảo tại Hshop.vn). Ứng dụng điều khiển được 2 động cơ DC công suất nhỏ mà không cần làm mạch thu công. Bài viết này sẽ tìm hiểu về nguyên lý, sơ đồ mạch điện của module L298.
Module L298 thực tế
>>> Xem thêm:
Điều khiển tốc độ động cơ dc bằng arduino
Điều khiển tốc độ động cơ bằng pwm
5 mạch điều khiển động cơ DC PDF và Mô phỏng
[button color=”orange” size=”medium” link=”http://bblink.com/OMJ7Roo” icon=”” target=”false”]Download 5 mạch Pdf và mô phỏng[/button]
1.Module L298 là gì
Mạch điều khiển tốc độ l298 có khả năng điều khiển động cơ dc cùng lúc. Sử dụng IC chính là L298 có cấu tạo gồm hai mạch cầu H transitor.
1.1 Thông số kỹ thuật
– Điện áp đầu vào từ 5 – 30V
– Dòng điện tối đa cho mỗi động cơ là 2A
– Điện áp của tín hiệu điều khiển: 5 – 7V
– Dòng của yêu cầu của tín hiệu điều khiển 0 – 36 mA
1.2 Sơ đồ chân module L298
– Chân12V Power cấp nguồn cho mạch L298 và là nguồn động lực cho động cơ.
– Chân5V Power có thể dùng cấp nguồn cho Arduino, khi có Jumper 5V Enable.
– Chân GND là chân cấp MASS cho mạch, khi sử dụng khi vi điều khiển thì cần nối GND mạch với GND của vi điều khiển.
– Chân Enable là chân cho phép ngỏ ra động cơ hoạt động hoặc dừng. Mặc định mạch có Jumper A Enable va B Enable như hình là cho phép chạy.
– Chân IN1, IN2 điều khiển chiều và tốc độ động cơ 1 thông qua ngỏ ra output A.
– Chân IN3, IN4 điều khiển chiều và tốc độ động cơ 2 thông qua ngỏ ra output B.
– Chân output A, output B chân ngỏ ra động cơ 1, 2.
2.Mạch điều khiển tốc độ motor dc bằng L298
Hình bên dưới vẽ sơ đồ mạch điều khiển tốc độ motor dc bằng L298, vi điều khiển là Arduino UNO R3.
Mạch điều khiển tốc độ motor dc bằng L298
Kết nối lần lượt các chân IN1, IN2, IN3, IN4 của L298 với chân 9, 10, 11, 12 của Arduino. Trong đó chân 11 và chân 9 sẽ xuất xung PWM điều khiển tốc độ, chân 10, 12 sẽ điều khiển chiều quay động cơ. Đừng quên kết nối GND của L298 với GND Arduino.
Chú ý, khi IN2/IN4 ở mức thấp: độ rộng xung PWM ở chân IN1/IN3 càng lớn thì tốc độ càng nhanh. Khi IN2/IN4 ở mức cao: độ rộng xung PWM ở chân IN1/IN3 càng lớn thì tốc độ càng giảm.
Chân 6, 7 đọc trạng thái 2 công tắc đảo chiều hai động cơ. Chân A0, A1 đọc giá trị Analog từ hai biến trở điều khiển tốc độ động cơ.
3.Lập trình Arduino điều khiển tốc độ motor dc bằng L298
Ta sẽ viết một ứng dụng điều khiển đảo chiều và tốc độ hai động chạy độc lập cơ. Khi công tắc công tắc hở, động cơ quay chiều thuận, biến trở chỉnh càng lớn thì tốc độ động cơ càng nhanh. Khi công tắc đóng, động cơ sẽ dừng 0,5s sau đó đảo chiều quay động cơ. Lúc này khi giá trị biến trở càng nhỏ thì tốc độ động cơ càng nhanh.
>>>Tham khảo bài viết: Điều khiển tốc độ động cơ bằng Arduino
Chương trình Arduino được viết sau:
#define IN1 9
#define IN2 10
#define IN3 11
#define IN4 12
int tocdo1=0;
int tocdo2=0;
int trangthai1=0;
int trangthai2=0;
void setup()
{
pinMode(IN1, OUTPUT); // Khai báo chân ngỏ ra
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(6, INPUT_PULLUP); // Khai báo chân ngỏ vào
pinMode(7, INPUT_PULLUP);// và điện trở kéo lên
}
void loop()
{
tocdo1=analogRead(0); //Đọc giá trị biến trở từ 0 – 1023
tocdo1=tocdo1/4; //chuyển sang biến tốc độ 0 – 255
tocdo2=analogRead(1);
tocdo2=tocdo2/4;
//********Dieu khien dong co 1*********//
if( digitalRead(6)==0){ //chạy thuận
if( trangthai1 != digitalRead(6) ){
digitalWrite(IN1, LOW);//dừng motor trước khi đảo chiều
digitalWrite(IN2, LOW);
delay(500);
trangthai1=0;
}
digitalWrite(IN2, LOW);
analogWrite(IN1,tocdo1);
}
if( digitalRead(6)==1){ //chạy nghịch
if( trangthai1 != digitalRead(6) ){
digitalWrite(IN1, LOW);//dừng motor trước khi đảo chiều
digitalWrite(IN2, LOW);
delay(500);
trangthai1=1;
}
digitalWrite(IN2, HIGH);
analogWrite(IN1,tocdo1);
}
//********Dieu khien dong cơ 2*********//
if( digitalRead(7)==0){ //chạy thuận
if( trangthai2 != digitalRead(7) ){
digitalWrite(IN3, LOW);//dừng motor trước khi đảo chiều
digitalWrite(IN4, LOW);
delay(500);
trangthai2=0;
}
digitalWrite(IN4, LOW);
analogWrite(IN3,tocdo2);
}
if( digitalRead(7)==1){ //chạy nghịch
if( trangthai2 != digitalRead(7) ){
digitalWrite(IN3, LOW);//dừng motor trước khi đảo chiều
digitalWrite(IN4, LOW);
delay(500);
trangthai2=1;
}
digitalWrite(IN4, HIGH);
analogWrite(IN3,tocdo2);
}
}
Video điều khiển tốc độ motor dc bằng L298
Nơi mua Arduino giá rẻ mà chất lượng?
Với giá bán cạnh tranh trên các sàn thương mại điện tử được nhiều người sử dụng đánh giá cao. Giao hàng tận nơi, với chính sách hoàn trả tiền nếu sản phẩm bị lỗi nên khách hàng có thể yên tâm đặt sử dụng các sản phẩm của Shop.
+ Giao hàng nhanh
+ Đổi hàng hoặc hoàn tiền trong vong 3 ngày.
+ Sản phẩm được nhiều khác hàng yêu thích
+ Giá rẻ bất ngờ chỉ từ 55.000 với arduino chíp dán
Mua Module cầu H chất lượng chỉ với 27.000 VND
+ Sử dụng IC chính là L298
+ Điều khiển cùng lúc được 2 động cơ dc
+ Điện áp từ 5 – 30VDC
+ Công suất 25W cho mỗi cầu H
+ Kích thước nhỏ gọn: 43x43x27mm
+ Không cần làm mạch thủ công
Xem giá bán cách mạch cầu H điện áp ra DC, AC
Tài Liệu Tham Khảo
[1] | https://www.arduino.cc/en /tutorial/potentiometer, 1/1/2021. |
[2] | https://www.arduino.cc/en/Tutorial /Foundations/PWM/, 1/1/2021. |
[3] | Arduino.vn/dieu-khien-toc-do-motoc-dc-bang-L298, 10/1/2021. |