DMDT
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án
No Result
View All Result
DMDT
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án
No Result
View All Result
DMDT
No Result
View All Result
Home Vi Điều Khiển Arduino

Điều khiển động cơ dùng Module L298N – Mạch Cầu H

26 Tháng Sáu, 2022
in Arduino, Vi Điều Khiển
751 7

 Bài viết chia sẻ cách sử dụng Module L298D để điều khiển động cơ dễ dàng và có độ chính xác cao.Giúp các bạn mới có thể sử dụng một cách dễ dàng.

I.Giới thiệu Module L298D

Module L298N cũng là một module thông dụng với chức năng thông dụng và giá thành cực kỳ rẻ là lựa chọn của các bạn học sinh, sinh viên.

II.Thông số kỹ thuật

  • Driver: L298N tích hợp hai mạch cầu H.
  • Điện áp điều khiển: +5 V ~ +12 V
  • Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)
  • Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
  • Dòng của tín hiệu điều khiển: 0 ~ 36mA (Arduino có thể chơi đến 40mA nên khỏe re nhé các bạn)
  • Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)
  • Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃

1.L298 gồm các chân

  • 12V power, 5V power. Đây là 2 chân cấp nguồn trực tiếp đến động cơ.
    • Bạn có thể cấp nguồn 9-12V ở 12V.
    • Bên cạnh đó có jumper 5V, nếu bạn để như hình ở trên thì sẽ có nguồn 5V ra ở cổng 5V power, ngược lại thì không. Bạn để như hình thì ta chỉ cần cấp nguồn 12V vô ở 12V power là có 5V ở 5V power, từ đó cấp cho Arduino .
  • Power GND chân này là GND của nguồn cấp cho Động cơ.
    • Nếu chơi Arduino thì nhớ nối với GND của Arduino
  • 2 Jump A enable và B enable, để như hình, đừng rút ra bạn nhé!
  • Gồm có 4 chân Input. IN1, IN2, IN3, IN4. Chức năng các chân này tôi sẽ giải thích ở bước sau.
  • Output A: nối với động cơ A. bạn chú ý chân +, -. Nếu bạn nối ngược thì động cơ sẽ chạy ngược. Và chú ý nếu bạn nối động cơ bước, bạn phải đấu nối các pha cho phù hợp.
    • Nói chung thì cứ thử sai mà sửa thôi haha.

Board này gồm 2 phần điều khiển động cơ. Và có thể điều khiển cho 1 động cơ bước 6 dây hoặc 4 dây.

III.Chuẩn bị phần cứng

  1. Arduino uno
  2. Cầu H L298
  3. Trục vít
  4. Dây cắm
  5. Động cơ DC (motor)

1.Nối mạch

Các bạn nối như hình nhé.

  • Nếu bạn điều khiển 2 Động cơ của robot, bạn cần chú ý bài đấu nối Cực +, – của động cơ tương ứng với chân + , – của OUTPUT X.
  • Tiếp bạn cấp nguồn cho Module L298 như phần giải thích ở trên. Chú ý chọn Jump cho đúng.
  • Nguồn cấp cho động cơ nếu dòng I < 1A thì có thể dùng nguồn của Arduino.Ngược lại thì dùng nguồn ngoài.
  • Các chân số D7, D6, D5 và D4 của Arduino sẽ nối tương ứng với  IN1, IN2, IN3 và IN4 của L298.
  • Chiều quay của động cơ được điều khiển bằng cách xuất các đầu ra HIGH hoặc LOW tại các chân INx.
    • Ví dụ với Động Cơ A: Logic HIGH ở IN1 và IN2 Logic LOW sẽ làm động cơ quay 1 hướng nếu đặt Logic ngược lại sẽ làm động cơ quay theo hướng khác.
    • Bạn cần phải nhớ, đây là làm động cơ chỉ quay hết công suất mà thôi. Nếu muốn thay đổi tốc độ của nó, bạn cần phải băm xung PWM bằng các chân có hỗ trợ PWM trên Arduino (những chân có dấu ~).
    • Để hiêu rõ, bây giờ mình sẽ giúp các bạn tưởng tượng nhé:
      • Tưởng tượng, chân IN1 là chân OutA.1, chân IN2 là chân OutA.2.
      • Bạn cấp cực dương vào IN1, cực âm vào IN2 => motor quay một chiều (chiều 1).
      • Bạn cấp cực âm vào IN1, cực dương vào IN2 => motor quay chiều còn lại (chiều 2)!
      • Cực dương ở đây là điện thế 5V, cực âm ở đây là điện thế 0V. Hiện điện thế được tính là điện thế ở IN1 trừ hiệu điện thế IN2.
      • Giả sử, hiệu điện thế 5V sẽ là mạnh nhất trong việc điều khiển động cơ. Như vậy, chỉ cần hạ hiệu điện thế xuống là động cơ sẽ bị yếu đi.
      • Và nếu hiệu điện thế < 0 => động cơ sẽ đảo chiều!
      • Hãy vận dụng các luật này để hiểu những dòng code của mình phía dưới nhé!

2.Code điều khiển động cơ

Code:

#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
}

Chúc các bạn thành công !

Tags: điều khiển động cơl298lập trình vi điều khiểnmodule l298
Share563Tweet352

Related Posts

Điện Tử Cơ Bản

Giới thiệu và cách thiết kế cầu H

21 Tháng Sáu, 2022
Giới thiệu chuẩn giao tiếp I2C
Điện Tử Cơ Bản

Giới thiệu chuẩn giao tiếp I2C

21 Tháng Sáu, 2022
Chuẩn giao tiếp SPI và cách kết nối
Điện Tử Cơ Bản

Chuẩn giao tiếp SPI và cách kết nối

21 Tháng Sáu, 2022
Next Post
Lập trình Arduino – Lập trình Kết nối với module bàn phím 4×4

Lập trình Arduino - Lập trình Kết nối với module bàn phím 4x4

Giới thiệu và cách thiết kế cầu H

5 1 đánh giá
Đánh giá bài viết
Theo dõi
Đăng nhập
Thông báo của
guest
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận

No Result
View All Result
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
wpDiscuz