Thai Tong gửi vào
- 26247 lượt xem
Trên cộng đồng đã có nhiều bài viết về động cơ, nhưng chưa có bài viết nào nói về cách để điều khiển cùng 1 lúc 4 động cơ mà chỉ dùng 1 module L298N. Nên hôm nay mình sẽ chia sẻ về cách để điều khiển cùng lúc 4 động cơ trên 1 module L298N.

. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.


Bắt đầu thôi!
1. Phần cứng
2. Sơ đồ nối mạch
Chú ý nối dây các động cơ đúng như hướng dẫn trong hình. hehe
3. Code để điều khiển
//Thiết đặt các chân động cơ #define IN1 7 #define IN2 6 #define IN3 5 #define IN4 4 //Thiết đặt các thông số #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 }4. Lời kết
Cảm ơn các bạn đã quan tâm. Chúc các bạn thành công hehe!!