You are on page 1of 25

TRƯỜNG ĐẠI HỌC KỸ THUẬT – CÔNG NGHỆ CẦN THƠ

LỚP : ĐIỀU KHIỂN-TỰ ĐỘNG HÓA (KHÓA 2)

MÔN: LÝ THUYẾT ĐIỀU KHIỂN TỰ ĐỘNG

GIẢNG VIÊN HƯỚNG DẪN : HỒ THẾ ANH

ĐỀ TÀI: ĐIỀU KHIỂN VẬN TỐC ĐỘNG CƠ DC BẰNG ARDUINO UNO R3

NHÓM 1:

1.Triệu Hoa Anh

2.Nguyễn Như Tương An

3.Phạm Hoài An

4.Trương Quan Bình

5.Cao Văn Âu

A.Giới thiệu sơ lược về mô hình:

I.Mô hình động cơ một chiều

-Cấu tạo: Động cơ một chiều gồm có 2 phần :stato đứng yên và roto quay so với
stator,phần cảm tạo ra từ trường(thường đặt trên stator),xuyên qua các quận dây phần ứng
(thường đặt trên roto), khi có dòng điện chạy qua mạch phần ứng, các thanh dẫn phần
ứng sẽ chịu tác động bởi các lực điện từ theo phương pháp tuyến với mặt trụ roto và làm
roto quay, dòng điện phần ứng được đưa vào roto thông qua hệ thống chổi than và cổ
góp, cổ góp sẽ giúp dòng điện trong mỗi thanh dẫn phần ứng được đổi chiều khi thanh
dẫn đến một cực từ khác tên với cực từ mà nó vừa đi qua (do đó lực điện từ sinh ra luân
tạo ra moomen theo một chiều).

-Thông thường tốc độ của động cơ một chiều tỷ lệ với điện áp đặt vào nó và ngẫu lực
quay tỉ lệ với dòng điện ,do đó để điều khiển tốc độ động cơ có thể sử dụng nhiều cách
như điều khiển bộ nguồn thay đổi,điều khiển dùng biến trở,dùng mạch điện tử….trong
bài báo cáo này chúng em tìm hiểu điều khiển tốc độ động cơ bằng cách sử dụng biến trở.

-Mô hình động cơ và sơ đồ mạch như hình vẽ:

-Mục đích của việc thiết kế:

+Mục đích chính là thiết kế các hệ thống điều khiển cho tốc độ quay của động cơ sao cho
thời gian để động cơ hoat động ổn định từ lúc bắt đầu mở máy cũng như là độ quá điều
chỉnh tốc độ của động cơ so với tốc độ yêu cầu và sai lệch tĩnh của nó phải nằm trong
giới hạn cho phép.

+Thương thì thời gian để ổn định tốc độ động cơ nhỏ hơn 2 giây, sai lệch tĩnh nhỏ hơn
1% và độ quá điều chỉnh nhỏ hơn 5%.

1.Phương trình vi phân mô tả:

-Trong đó

-V là điện áp nguồn cấp

-R,L là điện cảm và điện dung


𝑚2
-J là moomen quán tính của rotor(kg. )
𝑠2

-b là hệ số cản (hệ số giảm sóc)(Nms)

-Kt là hằng số phần ứng

-Ke là hằng số động cơ(nếu lực điện động không đổi thì Kt=Ke=K)

-T là momen xoắn của động cơ ,với T=Kt*i


-𝑇 ′ là momen cản của động cơ với 𝑇 ′ =b*𝛩̇

-Từ phương trình của động cơ

T-𝑻′ =J𝜣̈

Hay J𝜣̈ + b𝜣̇ =ki (1)

-Áp dụng định luật kirchoff ta có được


𝒅𝒊
L +Ri=V – K 𝜣̇ (2)
𝒅𝒕

2.Hàm truyền:

-Từ các phương trình (1) và(2) ta sẽ đi tìm hàm truyền của hệ ,biểu thị mối quan hệ giữa
đầu vào là tín hiệu điện áp và đầu ra là góc quay của roto

-Laplace cả hai vế các phương trình (1),(2) ta được hệ

s( Js + b )Θ(s) = Ki(s)

(Ls + R )I(s) = V-KsΘ(s)

-Từ hệ phương trình laplace này ta có thể rút ra được hàm truyền

𝒓𝒂𝒅
𝜽 𝑲 𝒔
G(s)= = (𝑱𝒔+𝒃 )(𝑳𝒔+𝑹)+𝑲𝟐 [ ] (3)
𝑽 𝑽

3.Phương trình trạng thái:

-Mô hình trạng thái có dạng


-Từ phương trình (1) ta có được
𝒅 𝒃 𝑲
(𝜣̇) = - 𝜣̇ + I (4)
𝒅𝒕 𝑱 𝑱

-Và từ phương trình (2) ta có được


𝒅 𝑲 𝑹 𝑽
(i) = - 𝜣̇ - + (5)
𝒅𝒕 𝑳 𝑳 𝑳

-Và từ phương trình (4),(5) đưa về dạng ma trận ta có được

4.Vẽ quỹ đạo nghiệm số:


5.Vẽ biểu đồ Bode:
II.Bộ điều khiển đang sử dụng và linh kiện khác:

1. 1 Arduino Uno R3

THÔNG SỐ KỸ THUẬT
Thông số chính Atmega328P-PU:

Atmega328 là một chíp vi điều khiển được sản xuất bời hãng Atmel thuộc họ MegaAVR
có sức mạnh hơn hẳn Atmega8. Atmega 328 là một bộ vi điều khiển 8 bit dựa trên kiến
trúc RISC bộ nhớ chương trình 32KB ISP flash có thể ghi xóa hàng nghìn lần, 1KB
EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử lý 8 bit (2KB SRAM).

+ Kiến trúc: AVR 8bit


+ Xung nhịp lớn nhất: 20Mhz
+ Bộ nhớ chương trình (FLASH): 32KB
+ Bộ nhớ EEPROM: 1KB
+ Bộ nhớ RAM: 2KB
+ Điện áp hoạt động rộng: 1.8V – 5.5V
+ Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit
+ Số kênh xung PWM: 6 kênh (1timer 2 kênh)
2. 1 Biến trở 10k

Biến trở volume 10K hoạt động như 1 điện trở có khả năng thay đổi trở kháng khi vặn
điều chỉnh.

Biến trở volume 10K có 3 chân, 2 chân ngoài được nối vào Vcc và Gnd, chân giữa sẽ cho
ra 1 giá trị điện áp nằm trong khoảng 0(V) -> Vcc (V)

3. 1 IC L293D

-L293D là một tích hợp mạch điều khiển động cơ được sử dụng để lái xe động cơ DC
quay theo hai hướng. Nó là một IC 16 chân mà có thể kiểm soát hai động cơ DC cùng
một lúc.

-L293D hoạt động dựa trên đặc trưng mạch cầu H, một mạch cho phép điện áp cao chạy
theo hai hướng. Trong một L293D IC đơn có hai mạch cầu H có thể xoay hai động cơ
DC độc lập. Do kích thước và điện áp yêu cầu của nó, nó thường được sử dụng trong các
ứng dụng robot để kiểm soát động cơ DC, bao gồm cả các dự án Arduino. Trình điều
khiển động cơ hoạt động như bộ khuếch đại, khi có một tín hiệu điều khiển thấp vào sẽ
cung cấp một tín hiệu ra cao hơn. Tín hiệu cao hơn này được sử dụng để điều khiển động
cơ.

-Tín hiệu điều khiển được xử lý độc lập với nhau với từng đầu ra. Ví dụ: có thể điều
khiển 2 động cơ DC chạy với tốc độ khác nhau, hướng khác nhau, 1 động cơ dừng còn 1
động cơ chạy...

-L293D có chức năng tự động ngắt khi bị nóng quá mức nhằm bảo vệ IC.
Thông số kỹ thuật chung:

Loại Half H- Bridge (Quad)

Loại đầu vào TTL Logic

Đầu vào Enable Có

Dòng ra max 600 mA

Số đầu ra 4

Điện áp ra tải
max 36 V
Điện áp nguồn 36 V

Đóng vỏ PDIP-16

4. 1 Điện trở 220 Ohm

5. 1 Công tắc 3 chân

6. 1 Động cơ DC
-THÔNG SỐ KỸ THUẬT

Đường kính trục :2 MM

Độ dài trục: 10MM

Kích thước động cơ: 25 *21 MM

Điện áp : 3V

Tốc độ 12000 vòng/phút

Dòng tiêu thụ: 0.3 -0.4A

7. 1 Pin 9V
8. 1 Dây cáp

9. 1 Breadboard
10. Dây cắm

B.Sơ đồ nguyên lý và hoạt động:


I.Nguyên lí hoạt động của mạch cầu H

-Xét một cách tổng quát, mạch cầu H là một mạch gồm 4 "công tắc" được mắc theo hình
chữ H.

-Bằng cách điều khiển 4 "công tắc" này đóng mở, ta có thể điều khiển được dòng điện
qua động cơ cũng như các thiết bị điện tương tự.
-4 "công tắc" này thường là Transistor BJT, MOSFET hay relay. Tùy vào yêu cầu điều
khiển khác nhau mà người ta lựa chọn các loại "công tắc" khác nhau.

Theo như sơ đồ trên, ta có A và B là 2 cực điều khiển được mắc nối tiếp với 2 điện trở
hạn dòng, Tùy vào loại transistor bạn đang dùng mà trị số điện trở này khác nhau. Phải
đảm bảo rằng dòng điện qua cực Base của các transistor không quá lớn để làm hỏng
chúng. Trung bình thì dùng điện trở 1k Ohm.

Ta điều khiển 2 cực này bằng các mức tín hiệu HIGH, LOW tương ứng là 12V và 0V.
Nhớ lại rằng:

 Transistor BJT loại NPN mở hoàn toàn khi điện áp ở cực Base bằng điện áp ở cực
Collector, trong mạch đang xét hiện tại là 12V.
 Transistor BJT loại PNP mở hoàn toàn khi điện áp ở cực Base bằng 0V.

Với 2 cực điều khiển và 2 mức tín hiệu HIGH/LOW tương ứng 12V/0V cho mỗi cực, có
4 trường hợp xảy ra như sau:

A ở mức LOW và B ở mức HIGH

Ở phía A, transistor Q1 mở, Q3 đóng. Ở phía B, transistor Q2 đóng, Q 4 mở. Dó đó,


dòng điện trong mạch có thể chạy từ nguồn 12V đến Q1, qua động cơ đến Q4 để về
GND. Lúc này, động cơ quay theo chiều thuận. Bạn để ý các cực (+) và (-) của động cơ
là sẽ thấy.

Bạn có thể hình dung dòng điện trong mạch nó như thế này

A ở mức HIGH và B ở mức LOW

Ở phía A, transistor Q1 đóng, Q3 mở. Ở phía B, transistor Q2 mở, Q 4 đóng. Dó đó,


dòng điện trong mạch có thể chạy từ nguồn 12V đến Q2, qua động cơ đến Q3 để về
GND. Lúc này, động cơ quay theo chiều ngược.

Bạn có thể hình dung dòng điện trong mạch nó như thế này
A và B cùng ở mức LOW

Khi đó, transistor Q1 và Q2 mở nhưng Q3 và Q4 đóng. Dòng điện không có đường về


được GND do đó không có dòng điện qua động cơ - động cơ không hoạt động.

A và B cùng ở mức HIGH

Khi đó, transistor Q1 và Q2 đóng nhưng Q3 và Q4 mở. Dòng điện không thể chạy từ
nguồn 12V ra do đó không có dòng điện qua động cơ - động cơ không hoạt động.

Như vậy, để dừng động cơ, điện áp ở 2 cực điều khiển phải bằng nhau.

-Chỉ cần thay đổi điện áp đặt vào 2 cực điều khiển của mạch cầu H để điều khiển tốc độ
động cơ:

Hiệu điện thế giữa 2 cực điều khiển càng lớn thì động cơ chạy càng nhanh.

Động cơ chạy theo chiều thuận khi điện áp ở A nhỏ hơn B và ngược lại.
II.Nguyên lý hoạt động của IC L293D:

-Trong một L293D IC đơn có hai mạch cầu H có thể xoay hai động cơ DC độc lập. Do
kích thước và điện áp yêu cầu của nó, nó thường được sử dụng trong các ứng dụng robot
để kiểm soát động cơ DC, bao gồm cả các dự án Arduino. Trình điều khiển động cơ hoạt
động như bộ khuếch đại, khi có một tín hiệu điều khiển thấp vào sẽ cung cấp một tín hiệu
ra cao hơn. Tín hiệu cao hơn này được sử dụng để điều khiển động cơ.

• Cổng 2 = Logic 1 và Cổng 7 = Logic 0 | Hướng chiều kim đồng hồ

• Cổng 2 = Logic 0 và Cổng 7 = Logic 1 | Hướng ngược

• Cổng 2 = Logic 0 và Cổng 7 = Logic 0 | Phanh (đây không phải là trở kháng cao) (buộc
dừng quay sử dụng phanh điện = cùng một điện áp cả hai chân của động cơ = quá tải
trong khi động cơ vẫn chạy)

• Cổng 2 = Logic 1 và Cổng 7 = Logic 1 | Phanh (điều này không phải là trở kháng cao)
(buộc dừng luân chuyển sử dụng phanh điện = cùng một điện áp cả hai chân của động cơ
= quá tải trong khi động cơ vẫn chạy)

-L293D là IC cầu H điều khiển động cơ. Gồm 4 kênh điều khiển có thể điều khiển 2 động
cơ DC hoặc 1 động cơ bước 4 pha (5 dây). Để điều khiển động cơ DC, sử dụng 2 kênh
của L293D cho 1 động cơ.

-L293D đã được tích hợp sẵn đi ốt bảo vệ vi điều khiển chống lại dòng cảm ứng khi động
cơ khởi động hoặc tắt. Vì vậy, chỉ cần gắn motor vào L293D và các chân của vi điều
khiển tương ứng, là có thể làm cho động cơ chạy ngay. Dòng L293 có 2 loại: L293B/E và
L293D, dòng L293B có khả năng chịu tải cao hơn (1A so với 600mA của L293D) nhưng
không có đi ốt bảo vệ vi điều khiển.

-Với mỗi motor, cần 3 chân từ vi điều khiển kết nối với L293D, trong đó có 1 chân điều
khiển tốc độ đông cơ dùng xung PWM, 2 chân còn lại là logic 0 hoặc 1 dùng điều chỉnh
chiều quay của motor.

Sơ đồ chân của IC SN754410


 Các chân M1 Forward và M1 Reverse là 2 chân điều khiển động cơ M1 của mạch cầu H.
 Các chân M2 Forward và M2 Reverse là 2 chân điều khiển động cơ M2 của mạch cầu H.
 M1 Enable và M2 Enable là 2 chân đóng ngắt động cơ M1, M2. Cấp điện áp LOW cho
chúng để dừng động cơ và HIGH (5V) để cho phép động cơ hoạt động.
 Motor Power IN là chân cấp nguồn cho động cơ hoạt động.
 +5V là chân cấp nguồn 5V cho IC.

III.NGUYÊN LÝ HOẠT ĐỘNG ARDUINO UNO R3


POWER: Cấp nguồn cho các board ngoài

GND (Ground): cấp 0V

5V: Cấp điện áp 5V Imax = 500mA.

3.3V: Cấp điện áp 3.3V Imax = 50mA.

Vin : Cấp nguồn ngoài cho Arduino


IOREF: Điện áp tham chiếu (phải luôn là 5V)

RESET: Dùng kết nối với chân reset của các Shield

-Arduino UNO không có bảo vệ cắm ngược nguồn vào, cường độ dòng điện qua một
chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều
khiển. Do đó nếu không dùng để truyền nhận dữ liệu, phải mắc một điện trở hạn dòng.
Khi hoạt động, motor sẽ tạo ra dòng điện cảm ứng (do hiện tượng cảm ứng điện từ) có
chiều ngược với chiều dòng điện trong mạch.

-Cổng 2 Digital của Arduino nối với công tắc điều chỉnh ngược chiều hay thuận chiều
kim đồng hồ, cổng 3 nối với cổng En 1 của IC L239D có mức điện áp cao để kích hoạt,
cổng 4 nối vào cổng 2 IC nhận tín hiệu vào, cổng 5 nối vào cổng 7 IC nhận tín hiệu vào,
cổng A0 nối với biến trở 10K để điều chỉnh vận tốc motor.

IV.Code cho Arduino Uno R3

// DC motor speed and direction control using arduino

const int switchPin = 2;

const int motor1Pin = 5;

const int motor2Pin = 4;

const int enablePin = 3;

const int pot = 0;

int value = 0;

void setup()

pinMode(switchPin, INPUT);

pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);

pinMode(enablePin, OUTPUT);

void loop()

value=analogRead(pot);

value=map(value,0,1024,0,255);

analogWrite(enablePin,value);

delay(10);

if (digitalRead(switchPin) == HIGH)

digitalWrite(motor2Pin, HIGH);

digitalWrite(motor1Pin, LOW);

else

digitalWrite(motor1Pin, HIGH);

digitalWrite(motor2Pin, LOW);

V.Sản phẩm:
VI.Tài liệu tham khảo:

http://users.ece.utexas.edu/~valvano/Datasheets/L293d.pdf

http://arduino.vn/bai-viet/429-lam-du-xe-voi-module-dieu-khien-dong-co-l293d

http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed&section=SystemM
odeling

http://arduino.vn/bai-viet/209-dieu-khien-toc-do-motor-dc

You might also like