Professional Documents
Culture Documents
Thuyết trình
Thuyết trình
Thuyết trình
Đề 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
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
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