Báo_cáo_BTL_Vi_xử_lí

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 29

ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA CƠ ĐIỆN TỬ - TRƯỜNG CƠ KHÍ


__________________
***

BÁO CÁO CUỐI KỲ HỌC PHẦN


VI XỬ LÝ – ME4169
KỲ 2023.2
Đề tài:
Mạch điều chỉnh tốc độ, chiều quay của động cơ DC thông qua
encoder, dùng chip ATmega8 AVR
Lớp 149639
Giảng viên: Dương Văn Lạc

STT Họ và Tên MSSV Điểm QT Điểm CK

1 Trần Việt Anh 20216043

2 Trịnh Việt Hoàng 20216127

3 Nguyễn Hoàng Khiêm 20216158

Hà Nội, 07/2024
MỤC LỤC

LỜI MỞ ĐẦU..........................................................................................................3
PHẦN 1: THIẾT KẾ HỆ THỐNG........................................................................5
1.1.THIẾT KẾ PHẦN CỨNG................................................................................5
1.Động cơ DC GA25-370 tích hợp Encoder.............................................................5
2.Encoder tích hợp.....................................................................................................5
3.Màn hình LCD 1602...............................................................................................6
4.Nguồn điện.............................................................................................................7
1.2.THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN..........................................................7
1.Vi điều khiển ATmega8 AVR................................................................................7
2.Module giao tiếp I2C cho LCD..............................................................................9
3.Module điều khiển động cơ L298N......................................................................10
3.Giao tiếp với máy tính thông qua USB ISP..........................................................10
PHẦN 2: CHẾ TẠO VÀ LẮP ĐẶT.....................................................................13
2.1.SƠ ĐỒ LẮP ĐẶT VÀ THIẾT LẬP CODE..................................................13
1.Sơ đồ mạch của hệ thống......................................................................................13
2.Lưu đồ thuật toán..................................................................................................13
2.Thiết lập code.......................................................................................................18
2.2.LẮP ĐẶT VÀ HOÀN THIỆN SẢN PHẨM..................................................25
PHẦN 3: TỔNG KẾT...........................................................................................28
3.1.KẾT QUẢ.........................................................................................................28
3.2.NHẬN XÉT......................................................................................................28
TÀI LIỆU THAM KHẢO.....................................................................................30

2
LỜI MỞ ĐẦU

Lý do chọn đề tài:
- Lựa chọn đề tài Mạch điều chỉnh tốc độ, chiều quay của động cơ DC
thông qua encoder, dùng chip ATmega8 AVR với mục tiêu muốn ứng dụng
những kiến thức về tạo xung PWM, Timer, Interupt, giao tiếp I2C,.. của vi
điều khiển AVR đã được học trong môn học Vi xử lý - ME4169 vào việc
hoàn thiện 1 sản phẩm thực tế với đầy đủ các chức năng mong muốn : đảo
chiều quay, thay đổi tốc độ động cơ DC thông qua Encoder và hiển thị trạng
thái lên màn hình LCD.
- Đây là những bước đệm đầu tiên của sinh viên Cơ điện tử chúng em trên
con đường học tập, tìm hiểu và nghiên cứu về lập trình nhúng, biến những
kiến thức đã được học trên trường trở thành 1 phần của hành trang cho công
việc tương lai sau này.

THÀNH VIÊN NHÓM

3
HỌ TÊN MSSV NHIỆM VỤ CHÍNH

Thiết kế code C, Lắp ráp và thử

TRẦN VIỆT ANH 20216043 nghiệm hệ thống, Lập báo cáo.

Thiết kế sơ đồ mạch, Làm mạch


TRỊNH VIỆT HOÀNG 20216127
in, Lắp ráp và thử nghiệm hệ
thống.

NGUYỄN HOÀNG Thiết kế lưu đồ thuật toán, Lắp


20216158 ráp hệ thống.
KHIÊM

PHẦN 1

THIẾT KẾ HỆ THỐNG

1.1. THIẾT KẾ PHẦN CỨNG


1. Động cơ DC GA25-370 tích hợp Encoder

4
- Động cơ DC Servo GA25-370 DC Geared Motor được tích hợp thêm Encoder hai
kênh AB giúp đọc và điều kiển chính xác vị trí, chiều quay của động cơ trong các ứng
dụng cần độ có chính xác cao: điều khiển PID, Robot tự hành,....
- Điện áp sử dụng: 12VDC
- Dòng điện không tải: 36mA
- Tốc độ không tải: 72RPM
- Đường kính: 25mm
- Trọng lượng: 135gram
2. Encoder tích hợp

5
- Cảm biến từ trường Hall, có 2 kênh AB lệch nhau giúp xác định chiều quay và vận
tốc của động cơ, đĩa Encoder trả ra 11 xung/1 kênh/ 1 vòng (nếu đo tín hiệu đồng thời
của cả hai kênh sẽ thu được tổng 22 xung / 1 vòng quay của Encoder)
- Sơ đồ chân của động cơ:
1. Đỏ - Red - M1 : Dây cấp nguồn cho động cơ.
2. Trắng - White - GND : Dây cấp nguồn cho Encoder, 0VDC.
3. Vàng - Yellow - C1/A: Kênh trả xung A
4. Xanh lá - Green - C2/B: Kênh trả xung B
5. Xanh dương - Blue - VCC: Dây cấp nguồn cho Encoder 3.3~5VDC
6. Đen- Black - M2: Dây cấp nguồn cho động cơ
3. Màn hình LCD 1602

- Điện áp hoạt động : 5VDC


- Kích thước: 80 x 36 x 12.5mm
- Chữ đen, nền xanh lá.
- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít
điện năng hơn.
- Có bộ ký tự được xây dựng hỗ trợ tiếng Anh và tiếng Nhật.
4. Nguồn điện

6
- Sử dụng 3 pin 18650 3.7VDC mắc nối tiếp cấp nguồn ~ 11,1VDC cho hệ thống
1.2. THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN
1. Vi điều khiển ATmega8 AVR

- Loại: Atmel ATmega8 - 16PU


- Số lượng chân : 28
- Điện áp hoạt động : 4,5 VDC → 5,5 VDC ( 5,5V là điện áp tối đa tuyệt đối)
- Số lượng chân I /O : 23
- Các giao thức hỗ trợ :
+ Giao thức Master / Slave SPI (Chân 16,17,18,19)
+ Giao thức USART có thể lập trình (Chân 2,3)
+ Giao thức I2C (Chân 27,28)
+ Giao thức JTAG : Không có
- Module ADC : 6 kênh ADC độ phân giải 10-bit

7
- Module timer : Hai bộ đếm 8 bit (Timer0, Timer2), Một bộ đếm 16 bit (Timer1)
- Module DAC : Không
- Kênh PWM : 3
- Bộ tạo dao động bên ngoài(XTAL) : 0-16MHz (Chân 9,10)
- Bộ dao động bên trong : Bộ dao động bên trong được hiệu chỉnh từ 0-8MHz
- Loại bộ nhớ chương trình : Flash - 8Kbyte [10000 chu kỳ ghi / xóa]
- Tốc độ CPU (MIPS) : 16 MIPS
- RAM : 1KBytes
- EEPROM : 512Byte
- Timer Watchdog : Có thể lập trình với bộ dao động trên chip riêng biệt
- Chế độ tiết kiệm điện : 6 chế độ [Chế độ chờ (Idle), giảm nhiễu tín hiệu ADC, tiết
kiệm năng lượng (Power-save), tắt nguồn (Power-down), Chế độ ngủ (Standby) và Chế
độ ngủ kéo dài (Extended Standby)]
- Nhiệt độ hoạt động : Từ -55 ° C đến + 125 ° C

* Cấu hình chân ATmega8 :

2. Module giao tiếp I2C cho LCD

8
- Kết cấu đơn giản, chỉ cần 2 chân (SDA và SCL) của MCU kết nối với 2 chân (SDA
và SCL) của module là đã có thể hiển thị thông tin lên LCD. Ngoài ra có thể điều chỉnh
được độ tương phản bởi biến trở gắn trên module.
- Kích thước: 41.5mm(L)X19mm(W)X15.3MM(H)
- Trọng lượng: 5g
- Điện áp hoạt động: 2.5v-6v
3.Module điều khiển động cơ L298N

- IC chính: L298 – Dual Full Bridge Driver


- Điện áp đầu vào: 5~30VDC
- Công suất tối đa: 25W 1 cầu
- Dòng tối đa cho mỗi cầu H là: 2A
- Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss

9
- Kích thước: 43x43x27mm
4. Giao tiếp với máy tính thông qua USB ISP

- Mạch nạp usb asp chuyên nạp cho dòng Vi điều khiển AVR.
- Giao tiếp và cấp nguồn qua cổng USB 5VDC.
- Cổng nạp chuẩn ISP 10 pins.
- Hỗ trợ set Fuse bit.
- Sơ đồ chân của mạch nạp:

- Chương trình nạp : Progisp 1.72 ( tương thích với Windows 7 trở lên):

10
11
PHẦN 2:

CHẾ TẠO VÀ LẮP ĐẶT

2.1 SƠ ĐỒ LẮP ĐẶT VÀ THIẾT LẬP CODE


1. Sơ đồ mạch của hệ thống

2. Lưu đồ thuật toán


a. Mục tiêu
- Mạch nạp code cho AVR.
- Điều khiển động cơ DC:
+ Đọc encoder 2 pha A B.
+ PWM điều khiển tốc độ.
- 2 button điều khiển tăng, giảm .
- 1 button lựa chọn mode:
- LCD hiển thị các thông số:

12
+ Hàng 1: hiển thị tiêu đề mode, tăng, giảm
+ Hàng 2: thông số thay đổi: số thay đổi.
b. Phần lưu đồ
- Luồng chính:

- Phần khởi tạo các biến Timer:

- Thuật toán đọc Encoder:

13
- Đọc Buttons:

+ Đọc tín hiệu B1:

14
+ Đọc tín hiệu B2:

- Hiển thị LCD:

15
- Phần thao tác nút bấm:

- Thuật toán PID:

16
3. Thiết lập code
- Khởi tạo các thư viện:

- Khai báo các hằng số:

- Các biến sử dụng:

17
- Khởi tạo Timer0 và Micros()

- Khởi tạo Timer1 và đọc xung PWM

- Đọc Encoder 2 pha A, B dùng ngắt ngoài

- Hàm thuật toán PID:

18
- Khởi tạo các Buttons, có kéo trở trong, kết nối với chân PD5,6,7 của ATmega8:

- Hàm lập các trường hợp cho nút B1:

- Hàm lập trường hợp cho nút B2:

19
- Hàm reset các giá trị PID ( mode thay đổi Kd, Ki, Kp):

- Khởi tạo button_mode ( nút thay đổi các chế độ):

- Hàm lập trình cho buttons:

20
- Khởi tạo LCD, chuyển các giá trị long, double → string:

21
- Hiển thị kí tự trên LCD theo các mode:

22
- Hàm main():

23
- Các hàm Interupts:

2.2. LẮP ĐẶT VÀ HOÀN THIỆN SẢN PHẨM


- Sau đây là 1 số hình ảnh thực tế của sản phẩm mà chúng em đã lắp đặt và hoàn thiện:

Mặt trước sản phẩm

24
Hình ảnh bố trí mạch + các linh kiện khác

25
Mặt bên sản phẩm

Sản phẩm khi hoạt động thực tế

26
PHẦN 3.

TỔNG KẾT

3.1. KẾT QUẢ


- Sản phẩm hoạt động tốt ở 1 số tiêu chí của thiết kế ban đầu: đọc được giá trị
Encoder, có thể tăng, giảm tốc độ quay của động cơ, đảo chiều quay động cơ, thay đổi
các giá trị PID gồm Ki, Kp, Kd, điều khiển vị trí góc quay.
- Tuy nhiên, tốc độ encoder yêu cầu và tốc độ thực đạt được có sai số tương đối lớn,
nguyên nhân do encoder chúng em sử dụng chỉ có 11 xung/vòng, cộng với việc nó là
nam châm dùng nguyên lý Hall, vậy nên 1 vòng có thể sai lệch +- 1 xung, khi đạt vận
tốc khoảng > 800 RPM thì sai lệch này nhân lên rất lớn.
- Chức năng điều khiển vị trí góc của động cơ DC Encoder không được mượt mà do sai
lệch xung Encoder mà chúng em đã nêu trên, dẫn đến điều khiển góc quay cũng có sai
lệch lớn.
3.2. NHẬN XÉT
Qua việc làm bài tập lớn, chúng em hiểu được phần nào về lập trình vi điều khiển
họ ATmega, khi chế tạo một sản phẩm Cơ điện tử có ứng dụng của con chip này. Chủ
động tìm kiếm tài liệu về lập trình ATmega, C Code for AVRs và phần mềm lập trình
Atmel Studio. Học hỏi, tìm tòi và nghiên cứu về con chip ATmega8, ứng dụng bộ
đếm Timer, tạo xung PWM điều khiển tốc độ động cơ DC, điều khiển PID,.. Thiết kế
mô hình và tối ưu hoạt động của hệ thống; học hỏi và phát triển , tìm ra giải pháp mới,
tối ưu đáp ứng các yêu cầu thực tiễn dành cho hệ thống.
Rèn luyện kỹ năng làm việc nhóm, phân chia công việc, kỹ năng làm báo cáo,
thuyết trình, trình bày về sản phẩm sao cho có thể truyền tải đc tốt ý tưởng đến người
nghe, có sức thuyết phục, biết lắng nghe tiếp nhận các góp ý, biết nhận ra ưu và
khuyết điểm, học hỏi các nhóm khác để hoàn thiện hơn phát triển hơn về sản phẩm.

27
TÀI LIỆU THAM KHẢO

- Bài giảng và giáo trình môn “Vi xử lý ”.


- Tra cứu datasheet của linh kiện: https://www.alldatasheet.com
- Học lập trình AVR trên Cùng học AVR (AVR tutorial) - Tài liệu AVR tiếng Việt (hocavr.com)
- Vẽ mạch và mô phỏng trên phần mềm Proteus 8, lập trình trên Atmel Studio 7.

28
- Các hình ảnh : tìm kiếm tại google.com với các từ khóa: động cơ DC encoder,
ATmega8,…..
Và nhiều những tài liệu tham khảo khác…

29

You might also like