STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Điều Khiển Động Cơ Bằng IC L298

    Hướng dẫn sử dụng IC L298 đã tích hợp sẵn mạch cầu H, ứng dụng trong việc điều khiển cùng lúc 2 động cơ theo chiều quay bất kì, kết hợp với điều xung PWM có thể điều chỉnh tốc độ xoay của động cơ.
    01/02/2016
    07/08/2020
    4 phút đọc
    Điều Khiển Động Cơ Bằng IC L298

    Việc đầu tiên khi bắt tay vào làm là cho xe chạy thẳng, nhưng vấn đề giữa lý thuyết và thực tế rất khác nhau, vì không phải trong điều kiện lý tưởng nên các linh kiện như: bánh xe, động cơ,.. hoạt động công suất không đều nhau, thực tế sẽ có trường hợp bánh xe to, nhỏ hoặc động cơ xoay nhanh, chậm, ...

    Tại sao không sử dụng một động cơ cho 2 bánh sẽ giúp cho bánh chạy đều, nhưng điều đó thật ngớ ngẩn khi không thể nào đổi hướng khi xe quẹo trái - phải.

    Để giải quyết vấn đề đó, có thể sử dụng IC L298 vừa để điều khiển 2 động cơ cùng lúc vừa có thể điều xung PWM để cân bằng độ chênh lệch giữa 2 bánh xe.

    Chuẩn bị

    • Arduino Uno.
    • IC L298.
    • 2 Pin sạc 18650 Panasonic 4.2V 4200mAh.
    • Động cơ DC giảm tốc V1.

    IC L298N

    Mạch cầu H
    Mạch cầu H

    Điện áp điều khiển: +5V - +12V.

    L298 gồm các chân:

    • 12V power, 5V power: bên trong mạch cầu H có sử dụng IC L298N điều hướng dòng điện, hoạt động với điện áp 5V, khi nối nguồn 12V mạch sẽ hoạt động với nguồn 12V, tuy nhiên mạch sẽ điều hướng dòng điện.
      • Dòng 12V đẩy vào động cơ để hoạt động.
      • Hạ dòng điện xuống thành 5V và cấp nguồn cho IC.
    • Như vậy khi cấp nguồn 9V: động cơ hoạt động với dòng 9V và IC của mạch sẽ hoạt động với dòng điện 5V. Việc thiết kế có nhằm điều hướng thành 2 dòng điện khác nhau giúp IC hoạt động ổn định và tách nguồn riêng biệt với động cơ.
    • Power GND chân này là GND của nguồn cấp cho Động cơ.
    • 2 Jump A enable và B enable, nếu bạn dùng Board để điều khiển động cơ bước thì giữa nguyên. Nếu điều khiển động cơ bình thường thì nối với chân PWM để điều khiển tốc độ.
    • 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ơ giảm tốc V1. bạn chú ý chân +, -. Nếu bạn nối ngược thì động cơ sẽ chạy ngược.
    Động cơ và mạch cầu H
    Động cơ và mạch cầu H

    Sơ đồ nối dây

    Sơ đồ nối dây mạch cầu H và động cơ - Arduino.

    Điều khiển động cơ A

    • Khai báo chân ENA nối với chân số 8 của mạch Arduino.
    • Chân In1 - In2 lần lượt nối với chân số 7 - 6 của mạch Arduino.
    • Hàm chạy động cơ A theo chiều kim đồng hồ:
      • Chân In1 trạng thái HIGH.
      • Chân In2 trạng thái LOW.
    • Hàm chạy động cơ A theo chiều ngược kim đồng hồ:
      • Chân In1 trạng thái LOW.
      • Chân In2 trạng thái HIGH.
    • Tắt động cơ:
      • Chân In1 trạng thái LOW.
      • Chân In2 trạng thái LOW.
     //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);   
    }

    Điều khiển động cơ A - B cùng lúc

    //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);
    }

    Lưu ý

    Việc điều khiển 2 động cơ tuy dễ dàng nhưng vấn đề phát sinh trong thực tế, 2 động cơ hoạt động không đều nhau, do đó trong quá trình băm xung PWM phải thay đổi giá trị analogWrite để động cơ hoạt động có vận tốc phù hợp và truyền giá trị PWM vào.

    Hướng giải quyết là đo được vận tốc của từng motor, sau đó điều chỉnh, thông qua việc sử dụng cảm biến IR FC-03 có tích hợp IC LM-393 để đo được vận tốc.

    0 Bình luận
    Điện Tử Ứng Dụng

    Điện Tử Ứng Dụng

    Kiến thức điện tử, Arduino, Raspberry Pi, giới thiệu sản phẩm.

    Đề xuất

    Đo Tốc Độ Động Cơ Sử Dụng Cảm Biến IR FC-03
    Bài viết hướng dẫn cách sử dụng cảm biến đo tốc độ IR FC-03 kết hợp với ...
    Dự Án Loa Thông Minh Điều Khiển Qua Giao Tiếp Bluetooth
    Dự án hướng dẫn các bạn một các điều khiển từ xa các thiết bị màn hình ...

    Khám phá

    Điều Khiển Động Cơ Servo Với Adruino
    Tìm hiểu cách hoạt động của động cơ servo và cách lập trình hoạt động ...
    Điều Khiển Đèn LED bằng Raspberry GPIO và Node.js
    Hướng dẫn điều khiển bật tắt đèn LED bằng Raspberry Pi 4 GPIO và ...
    CBP-8: Component Điều Khiển và AI – Component Ra Lệnh
    Component ra lệnh - các Component có khả năng gửi Entity Command cho ...
    Điều Khiển Đèn LED trên Web bằng Raspberry Pi 4 và Node.js - Webserver với WebSocket
    Lập trình điều khiển bật tắt đèn LED trên website bằng Raspberry Pi 4 và ...
    SmartHome - Tổng Thể hay Rời Rạc
    Các thiết kế dựa vào tổng thể (1 giải pháp đóng gói) hay rời rạc từng ...
    Thuật Toán PID trong Điều Khiển Tự Động
    Chi tiết về thuật toán PID, các ví dụ thực tế và hướng đưa thuật toán ...
    STDIO Starter Kit - Các Thành Phần Cần Thiết Để Học Điện Tử Cơ Bản
    Bộ STDIO Starter Kit là bộ kit điện tử thống kê các thành phần cần thiết ...
    Điều Chế Độ Rộng Xung - Pulse-Width Modulation
    Giới thiệu và sử dụng kỹ thuật điều chế độ rộng xung (Pulse-Width ...
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích.. Tìm hiểu thêm.
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020