Thuyết trình

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 15

BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ

Đề tài: Đọc giá trị của ADC và thực hiện yêu cầu

Nhóm 1
Nguyễn Ngọc Anh – B18DCVT018
Vũ Đình Chiến – B17DCVT037
Nguyễn Tiến Đạt – B18DCVT089
Nguyễn Vũ Đạt – B17DCVT056

Giảng viên: Nguyễn Trung Hiếu


1. TỔNG
QUAN

2. LÝ
THUYẾT

3. HOẠT
ĐỘNG

4. DEMO
1. TỔNG
QUAN
1.1. Yêu cầu và mục tiêu
Yêu cầu: Đọc giá trị ADC và thực hiện yêu cầu sau: Sử dụng động cơ servor. Máy tính
không kết nói mạng thì google sẽ có trò chơi khủng long vượt cây rào. Vậy thì yêu cầu đặt
ra cho người lập trình dùng STM32F103 đọc giá trị ADC và dùng động cơ để lập trình cho
con khủng long tự nhảy qua chướng ngại vật.

Mục tiêu:
- Có kỹ năng lập trình C cho STM32
- Nắm được cơ bản về các ngoại vi dùng
- Lên ý tưởng viết code
- Vân dụng kiến thức đã học vào bài tập lớn
1.2. Công cụ và linh kiện
STM32F103C8T6 là vi điều khiển 32bit, thuộc họ F1 của dòng
chip STM32 hãng ST.
+ Lõi ARM COTEX M3.
+ Tốc độ tối đa 72Mhz.
+ Bộ nhớ : 64 kbytes bộ nhớ Flash và 20 kbytes SRAM

Module cảm biến ánh sáng này hoạt dựa vào sự thay đổi của
cường độ của ánh sáng môi trường. Nếu trời tối thì cường độ
ánh sáng yếu, điện trở của cảm biến ánh sáng trên module tăng
lên và ngược lại, nếu cường độ ánh sáng tăng thì điện trở của
cảm biến ánh sáng sẽ giảm
1.2. Công cụ và linh kiện

Động cơ Servo SG90 (Góc Quay 180) là Servo phổ


biến dùng trong các mô hình điều khiển nhỏ và
đơn giản như cánh tay robot.

USB ra UART dùng PL2303 dùng để kết nối với


máy tinh hiển thị serial trên Arduino IDE
2. LÝ
THUYẾT
2.1. Bộ ADC
ADC – Analog to digital Converter là bộ chuyển đổi tín hiệu tương tự sang tín hiệu số.
ADC trong STM32F103 là bộ ADC có 12 bit tức là giá trị đọc về nằm trong khoảng 0
->2^12= 4096. STM32F103C8 có 2 mô hình ADC đó là ADC1 và ADC2.
+ Độ phân giải 12 bit tương ứng với giá trị maximum là 4095.
+ Chế độ có: Single mode hay Continuous mode.
+ Tự động calib và có thể điều khiển hoạt động ADC bằng xung Trigger.
2.1. Bộ ADC
Vận dụng đọc ADC tại chân
V0 được kết nối chân PA0 của
module quang trở
2.2. UART
UART - Universal synchronous asynchronous receiver transmitter là một ngoại vi
cơ bản và thường dùng trong các quá trình giao tiếp với các module như : Xbee, Wifi,
Blutooth,....Khi giao tiếp UART kết hợp với các IC giao tiếp như MAX232CP,
SP485EEN,... thì sẽ tạo thành các chuẩn giao tiếp RS232, RS485.

STM32F103C8 có 3 bộ UART với nhiều mode hoạt động. Một số tính năng nổi bật như
sau:
+ Đầy đủ các tính năng của bộ giao tiếp không đồng bộ.
+ Điều chỉnh baud rate bằng lập trình và tốc độ tối đa lên đến 4.5Mb/s.
+ Độ dài được lập trình là 8 hoặc 9 bit.
+ Cấu hình bit stop hỗ trợ là 1 hoặc 2.
+ Có chân clock nếu muốn chuyển giao tiếp thành đồng bộ.
2.2. UART
Vận dụng sử dụng USB PL2303
kết nối với máy tinh theo chân
cắm như sau:
2.3. PWM
PWM(pulse-with modulation) hay còn gọi nôm na là “băm xung” hay “điều khiển độ rộng
xung” là ứng dụng phổ biến và thường dùng trong lĩnh vực điều khiển động cơ.

Do servo hoạt động ở tần số 50Hz, tức chu kì xung PWM điều khiển servo là T = 20ms.
Nhiệm vụ của người lập trình là sử dụng timer 2 của STM32F103C8T6 băm xung tạo ra
xung có chu kì là 20ms để điều khiển động cơ.

Công thức tính toán tạo xung PWM có tần số 50Hz như sau:
Tần số PWM = 50Hz => Chu kỳ PWM = 20ms
F(PWM) = F(SYS) / [(PSC+1)(Period+1)]
Ta có F(SYS) = 72MHz => (PSC+1)(Period+1) = 72MHz/50Hz
= 1440000 Hz
Ta chọn PSC = 1339 => Period = 999 (có lợi cho tính toán)
2.3. PWM
Cấu hình timer2 kênh 1 là chân PA1 để tiến hành băm xung điều khiển động cơ SG90
3. HOẠT
ĐỘNG
3.1. Sơ đồ
khối
3.2. Quá trình thực hiện
Bước 1: Đọc ADC được theo phương pháp đo trung bình 10 lần rồi lưu vào biến
adc_tb sau đó reset biến cho lần đọc tiếp theo.
Bước 2: Khảo sát giá trị min và max của ADC đọc được hiển thị lên cổng com ảo bằng
cách kết nối PA2 và PA3 với chân RX và TX của module PL2303, phần mềm hiển thị sử
dụng Serial của Adruino IDE.
Bước 3: Thu nhỏ giá trị trong khoảng từ 1000 đến 2000 thành giá trị từ 100 đến 125
để
điều khiển góc quay từ 135 độ cho đến 180 độ bằng cách sử dụng hàm Map
3.3. Lưu đồ thuật toán
4. DEMO

You might also like