LỜI NÓI ĐẦU ................................................................................................................ 4 DANH MỤC HÌNH ẢNH............................................................................................... 5 CHƯƠNG 1 CƠ SỞ LÝ THUYẾT ................................................................................ 8 1.1 Lịch sử phát triển lý thuyết điều khiển ...................................................................... 8 1.1.1 Điều khiển kinh điển (classical control) ............................................................. 8 1.1.2 Điều khiển hiện đại (modern control) ................................................................. 8 1.1.3 Điều khiển thông minh (intelligent control) ....................................................... 9 1.2 Thành phần cơ bản của hệ thống điều khiển ............................................................. 9 1.3 Thiết kế bộ điều khiển ............................................................................................. 10 1.3.1 Phần loại thiết kế bộ điều khiển ........................................................................ 10 1.3.2 Bộ điều khiển PID ............................................................................................ 11 CHƯƠNG 2 GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG ...................................... 12 2.1 Giới thiệu về MATLAB/SIMULINK ...................................................................... 12 2.2 Giới thiệu về board mạch ARM STM32F407 DISCOVERY ................................. 12 CHƯƠNG 3 HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG MATLAB/SIMLINK ............................................................................................................ 14 3.1 Chuyển đổi tín hiệu Analog sang Digital và Digital sang Analog .......................... 14 3.1.1 Giới thiệu chân ADC, DAC .............................................................................. 14 3.1.2 Thí nghiệm sử dụng khối ADC ........................................................................ 16 3.1.2 Thí nghiệm sử dụng khối DAC ......................................................................... 19 3.2 Sử dụng Digital Input/Output .................................................................................. 21 3.2.1 Giới thiệu Digital Input/Output ........................................................................ 21 3.2.2 Thí nghiệm sử dụng khối Digital Output .......................................................... 24 3.2.3 Thí nghiệm sử dụng khối Digital Input ............................................................ 27 3.3 Sử dụng Timer/Counter ........................................................................................... 29 3.3.1 Giới thiệu Timer/Counter ................................................................................. 29 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com) lOMoARcPSD|2935381 3 3.3.2 Thí nghiệm sử dụng khối Basic PWM ............................................................. 31 3.3.3 Thí nghiệm sử dụng khối Encoder Read........................................................... 34 3.3.4 Thí nghiệm sử dụng khối Timer IRQ ............................................................... 38 3.4 Sử dụng cổng giao tiếp UART................................................................................. 40 3.4.1 Giới thiệu UART .............................................................................................. 40 3.4.2 Thí nghiệm sử dụng khối UART Setup và UART Tx ...................................... 40 3.4.3 Thí nghiệm sử dụng khối Host Serial ............................................................... 43 CHƯƠNG 4 KẾT LUẬN .............................................................................................. 48 TÀI LIỆU THAM KHẢO ............................................................................................. 49 PHỤ LỤC ................... Trong thời đại hiện nay với sự phát triển không ngừng của khoa học kỹ thuật. Lĩnh vực điều khiển đã và đang là một trong những ngành có vai trò rất quan trọng trong đời sống xã hội, của nền công nghiệp, kinh tế quốc dân… Bất cứ ở một vị trí nào một công việc gì mỗi người trong chúng ta đều phải tiếp cận với điều khiển, nó là khâu quan trọng cuối cùng quyết định sự thành bại trong mọi hoạt động của chúng ta. Điều khiển vị trí hay tốc độ là một trong những vấn đề cơ bản nhất của lý thuyết điều khiển, từ đó ứng dụng vào điều khiển các vấn đề phức tạp hơn. Từ vấn đề trên chúng em thấy cần thiết phải nghiên cứu và ứng dụng một Board mạch khác có bộ nhớ và tốc độ xử lí nhanh hơn. Vì những lí do trên chúng em quyết định chọn đề tài “Ứng dụng ARM STM32F4 Discovery và Matlab/Simulink trong thiết kế các bộ điều khiển”.
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ
GVHD: Ths Cao Thành Trung
Sinh viên: Nguyễn Duy Hiếu 20181883 Nguyễn Đức Lộc 20181585 Nguyễn Văn Thìn 20181926 Lê Xuân Tuấn 20181815
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 4
DANH MỤC HÌNH ẢNH 5
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 8
1.1 Lịch sử phát triển lý thuyết điều khiển 8
1.1.1 Điều khiển kinh điển (classical control) 8
1.1.2 Điều khiển hiện đại (modern control) 8
1.1.3 Điều khiển thông minh (intelligent control) 9
1.2 Thành phần cơ bản của hệ thống điều khiển 9
1.3 Thiết kế bộ điều khiển 10
1.3.1 Phần loại thiết kế bộ điều khiển 10
1.3.2 Bộ điều khiển PID 11
CHƯƠNG 2 GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG 12
2.1 Giới thiệu về MATLAB/SIMULINK 12
2.2 Giới thiệu về board mạch ARM STM32F407 DISCOVERY 12
CHƯƠNG 3 HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG MATLAB/SIMLINK 14
3.1 Chuyển đổi tín hiệu Analog sang Digital và Digital sang Analog 14
3.1.1 Giới thiệu chân ADC, DAC 14
3.1.2 Thí nghiệm sử dụng khối ADC 16
3.1.2Thí nghiệm sử dụng khối DAC 19
3.2Sử dụng Digital Input/Output 21
3.2.1Giới thiệu Digital Input/Output 21
3.2.2Thí nghiệm sử dụng khối Digital Output 24
3.2.3Thí nghiệm sử dụng khối Digital Input 27
3.3Sử dụng Timer/Counter 29
Trang 33.3.3Thí nghiệm sử dụng khối Encoder Read 34
3.3.4Thí nghiệm sử dụng khối Timer IRQ 38
3.4Sử dụng cổng giao tiếp UART 40
3.4.1Giới thiệu UART 40
3.4.2Thí nghiệm sử dụng khối UART Setup và UART Tx 40
3.4.3Thí nghiệm sử dụng khối Host Serial 43
CHƯƠNG 4 KẾT LUẬN 48
TÀI LIỆU THAM KHẢO 49
PHỤ LỤC 50
Trang 4LỜI NÓI ĐẦU
Trong thời đại hiện nay với sự phát triển không ngừng của khoa học kỹ thuật Lĩnh vực điều khiển đã và đang là một trong những ngành có vai trò rất quan trọng trong đời sống xã hội, của nền công nghiệp, kinh tế quốc dân… Bất cứ ở một vị trí nào một công việc gì mỗi người trong chúng ta đều phải tiếp cận với điều khiển, nó là khâu quan trọng cuối cùng quyết định sự thành bại trong mọi hoạt động của chúng ta
Điều khiển vị trí hay tốc độ là một trong những vấn đề cơ bản nhất của lý thuyết điều khiển, từ đó ứng dụng vào điều khiển các vấn đề phức tạp hơn Từ vấn đề trên chúng em thấy cần thiết phải nghiên cứu và ứng dụng một Board mạch khác có bộ nhớ và tốc độ xử lí nhanh hơn
Vì những lí do trên chúng em quyết định chọn đề tài “Ứng dụng ARM STM32F4 Discovery và Matlab/Simulink trong thiết kế các bộ điều khiển”
Trang 5Hình 1.1 Sơ đồ khối hệ thống điều khiển 10
Hình 1.2 Sơ đồ khối hiệu chỉnh nối tiếp 10
Hình 1.3 Sơ đồ khối hồi tiếp trạng thái 11
Hình 1.4 Sơ đồ khối PID 11
Hình 2.1 Phần mềm MATLAB & SIMULINK 12
Hình 2.2 Board mạch ARM STM32F407 DISCOVERY 13
Hình 3.1 Số lượng chân mô-đun ADC 14
Hình 3.2 Đặc tính điện mô-đun ADC 15
Hình 3.3 Đặc tính điện mô-đun DAC 15
Hình 3.4 Hộp thoại Regular ADC 16
Hình 3.5 Khối Regular ADC 16
Hình 3.6 Code Simulink “Chớp LED bằng điện trở” 17
Hình 3.7 Kết quả đồ thị khi văn biến trở 18
Hình 3.8 Kết quả lắp mạch “biến trở điều khiển LED” 18
Hình 3.9 Khối Regular DAC 19
Hình 3.10 Hộp thoại Regular DAC 19
Hình 3.11 Code Simulink “Tạo tín hiệu tuần hoàn” 20
Hình 3.12 Khối tạo tần số cao 20
Hình 3.13 Đồ thị xuất xuất 2 xung tam giác và sin 21
Hình 3.14 Sơ đồ mạch Pull-Up Input 21
Hình 3.15 Sơ đồ mạch Pull-Down Input 22
Hình 3.16 Sơ đồ mạch Push-Pull Output khi P-MOS mở 22
Hình 3.17 Sơ đồ mạch Push-Pull Output khi P-MOS đóng 22
Hình 3.18 Đặc tính dòng điện 23
Hình 3.19 Khối Digital Output 24
Hình 3.20 Hộp thoại Digital Output 24
Hình 3.21 Code Simulink “Điều chỉnh thời gian sáng LED” 25
Hình 3.22 Cách Run mô hình trên Simulink 26
Hình 3.23 Thiết lập khối Pulse Generator 26
Hình 3.24 Đồ thị tín hiệu sáng LED 27
Hình 3.25 Khối Digital Input 27
Trang 6Hình 3.28 Sự hoạt động của Timer/Counter khi Prescaler thay đổi từ 1 đến 4 30
Hình 3.29 Cấu hình các mô-đun Timer 30
Hình 3.30 Cách điều chỉnh độ rộng xung 31
Hình 3.31 Điều chỉnh độ rộng xung với cạnh lên 32
Hình 3.32 Điều chỉnh độ rộng xung với cạnh lên và xuống 32
Hình 3.33 Khối Basic PWM 32
Hình 3.34 Khối hộp thoại Basic PWM 33
Hình 3.35 Code Simulink “điều chỉnh độ sáng Led dùng PWM” 33
Hình 3.36 Kết quả đồ thị “Điều chỉnh độ sáng LED dùng PWM” 34
Hình 3.37 Cấu trúc bộ mã hóa quay 35
Hình 3.38 Tín hiệu từ kênh A, kênh B lệch pha nhau 90 độ 35
Hình 3.39 Giao diện tín hiệu xung vuông 36
Hình 3.40 Khối Encoder read 36
Hình 3.41 Khối hộp thoại Encoder Read 37
Hình 3.42 Khối Timer IRQ 38
Hình 3.43 Hộp thoại khối Timer IRQ 38
Hình 3.44 Code simulink “điều khiển LED dùng khối Timer IRQ” 39
Hình 3.45 Chương trình con đọc LED 39
Hình 3.46 Khối UART Setup 40
Hình 3.47 Khối hộp thoại UART Tx 41
Hình 3.48 Khối UART Tx 41
Hình 3.49 Code simulink “truyền một giá trị từ Board mạch lên máy tính 43
Hình 3.50 Kết quả gửi lên máy tính qua phần mềm Terminal 43
Hình 3.51 Hộp thoại Host Serial Setup 44
Hình 3.52 Hộp thoại Host Serial Tx 44
Hình 3.53 Hộp thoại Host Serial Rx 45
Hình 3.54 Mô hình code nạp xuống board 45
Hình 3.55 Mô hình chạy chế độ inf trên máy tính 46
Hình 3.56 Lắp mạch “Thí nghiệm truyền giá trị xuống board” 47
Hình 3.57 Đồ thị khi điều chỉnh Slider gửi giá trị xuống board 47
Hình.0.1 Giao diện Website Waijung Blockset (1) 50
Hình 0.2 Giao diện Website Waijung Blockset (2) 50
Hình 0.3 Biểu tượng phần mềm Matlab/Simulink 51
Hình 0.4 Thư viện phần mềm Simulink (1) 51
Hình 0.5 Thư viện phần mềm Simulink (2) 52
Trang 7Hình 0.7 Giao diện sau khi nạp thành công 53
Hình 0.8 Run file setup 54
Hình 0.9 Chọn Next để tiếp tục cài đặt 54
Hình 0.10 Qúa trình cài đặt 55
Hình 0.11 Hai cửa sổ hiện ra chọn Next và Finish 55
Hình 0.12 Mô-đun UART CP2102 56
Hình 0.13 Kết nối UART với máy tính 56
Hình 0.14 Giao diện thiết lập UART Setup (trái) và giao diện UART Tx (phải) 57
Hình 0.15 Giải nén phần mềm 58
Trang 8CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Lịch sử phát triển lý thuyết điều khiển
Định nghĩa điều khiển: Điều khiển là quá trình thu nhập thông tin, xử lý thông tin và tác động lên hệ thống để đáp ứng của hệ thống “gần” với mục đích định trước Điều khiển
tự động là quá trình điều khiển không cần sự tác động của con người
1.1.1 Điều khiển kinh điển (classical control)
Lý thuyết điều khiển kinh điển (trước 1960) mô tả hệ thống trong miền tần số (phép biến đổi Fourier) và mặt phẳng s (phép biến đổi Laplace) Do dựa trên các phép biến đổi này, lý thuyết điều khiển kinh điển chủ yếu áp dụng cho hệ thống tuyến tính bất biến theo thời gian, mặc dù có một vài mở rộng để áp dụng cho hệ phi tuyến, thí dụ phương pháp hàm mô tả Lý thuyết điều khiển kinh điển thích hợp để thiết kế hệ thống một ngõ vào – một ngõ ra (SISO: single-input/single-output), rất khó áp dụng cho các hệ thống nhiều ngõ vào – nhiều ngõ ra (MIMO: multi-input/multi-ouput) và các hệ thống biến đổi theo thời gian
Các phương pháp phân tích và thiết kế hệ thống trong lý thuyết điều khiển kinh điển gồm các phương pháp Nyquist, Bode, và phương pháp quỹ đạo nghiệm số Để thiết kế hệ thống dùng phương pháp Nyquist và Bode cần mô tả hệ thống dưới dạng đáp ứng tần số (đáp ứng biên độ và đáp ứng pha), đây là một thuận lợi vì đáp ứng tần số có thể đo được bằng thực nghiệm Mô tả hệ thống cần để thiết dùng phương pháp quỹ đạo nghiệm số là hàm truyền, hàm truyền cũng có thể tính được từ đáp ứng tần số Hàm truyền của các hệ thống phức tạp được tính bằng cách sử dụng sơ đồ khối hay sơ đồ dòng tín hiệu Mô tả chính xác đặc tính động học bên trong hệ thống là không cần thiết đối với các phương pháp thiết kế kinh điển, chỉ có quan hệ giữa ngõ vào và ngõ ra quan trọng
Các khâu hiệu chỉnh đơn giản như hiệu chỉnh vi tích phân tỉ lệ PID (Proportional Integral Derivative), hiệu chỉnh sớm trễ pha,… thường được sử dụng trong các hệ thống điều khiển kinh điển Ảnh hưởng của các khâu hiệu chỉnh này đến biểu đồ Nyquist, biểu đồ Bode và quỹ đạo nghiệm số có thể thấy được dễ dàng, nhờ đó có thể dễ dàng lựa chọn được khâu hiệu chỉnh thích hợp
1.1.2 Điều khiển hiện đại (modern control)
Từ khoảng năm 1960 đến nay
Trang 9dùng để phân tích và thiết kế hệ thống là phương trình trạng thái Mô hình không gian trạng thái có ưu điểm là mô tả được đặc tính động học bên trong hệ thống (các biến trạng thái) và có thể dễ dàng áp dụng cho hệ MIMO và hệ thống biến đổi theo thời gian Lý thuyết điều khiển hiện đại ban đầu được phát triển chủ yếu cho hệ tuyến tính, sau đó được mở rộng cho hệ phi tuyến bằng cách sử dụng lý thuyết của Lyapunov
Bộ điều khiển được sử dụng chủ yếu trong thiết kế hệ thống điều khiển hiện đại là bộ điều khiển hiện đại là bộ điều khiển hồi tiếp trạng thái Tùy theo cách tính vector hồi tiếp trạng thái mà ta có phương pháp phân bố cục, điều khiển tối ưu, điều khiển bền vững,…
Với sự phát triển của lý thuyết điều khiển số và hệ thống rời rạc, lý thuyết điều khiển hiện đại rất thích hợp để thiết kế các bộ điều khiển là các chương trình phần mềm chạy trên vi xử lý và máy tính số Điều này cho phép thực thi được các bộ điều khiển có đặc tính động phức tạp hơn cũng như hiệu quả hơn so với các bộ điều khiển đơn giản như PID hay sớm trễ pha trong lý thuyết điều khiển kinh điển
1.1.3 Điều khiển thông minh (intelligent control)
Điều khiển kinh điển và điều khiển hiện đại, gọi chung là điều khiển thông thường (conventional control) có khuyết điểm là để thiết kế được hệ thống điều khiển cần phải biết mô hình toán học của đối tượng Trong khi đó thực tế có những đối tượng điều khiển rất phức tạp, rất khó hoặc không thể xác định được mô hình toán Các phương pháp điều khiển thông minh như điều khiển mờ, mạng thần kinh nhân tạo, thuật toán di truyền mô phỏng/bắt chước các hệ thống thông minh sinh học, về nguyên tắc không cần dùng mô hình toán học để thiết kế hệ thống, do đó có khả năng ứng dụng thực tế rất lớn Khuyết điểm của điều khiển mờ là quá trình thiết kế mang tính thử sai, dựa vào kinh nghiệm của chuyên gia Nhờ kết hợp logic mờ với mạng thần kinh nhân tạo hay thuật toán di truyền mà thông số bộ điều khiển mờ có thể thay đổi thông qua quá trình học hay quá trình tiến hóa, vì vậy khắc phụ được khuyết điểm thử sai Hiện nay các bộ điều khiển thông thường kết hợp với các kỹ thuật điều khiển thông minh tạo nên các bộ điều khiển lai điều khiển các hệ thống phức tạp với chất lượng rất tốt
1.2 Thành phần cơ bản của hệ thống điều khiển
Trang 10Hình 1.1 Sơ đồ khối hệ thống điều khiển
Chú thích các ký hiệu viết tắt: - r(t): tín hiệu vào, tín hiệu chuẩn - c(t): tín hiệu ra
- cht(t): tín hiệu hồi tiếp - e(t): sai số
- u(t): tín hiệu điều khiển
Để thực hiện được quá trình điều khiển như định nghĩa ở trên, một hệ thống điều khiển bắt buộc gồm có ba thành phần cơ bản là thiết bị đo lường (cảm biến), bộ điều khiển và đối tượng điều khiển Thiết bị đo lường có chức năng thu nhập thông tin, bộ điều khiển thực hiện chức năng xử lý thông tin, ra quyết định điều khiển và đối tượng điều khiển chịu sự tác động của tín hiệu điều khiển Hệ thống điều khiển trong thực tế rất đa dạng, sơ đồ khối trên là cấu hình của hệ thống điều khiển thường gặp nhất
1.3 Thiết kế bộ điều khiển
1.3.1 Phần loại thiết kế bộ điều khiển
Thiết kế là toàn bộ quá trình bổ sung các thiết bi phần cứng cũng như thuật toán, phần mềm vào hệ cho trước để được hệ mới thỏa mãn yêu cầu về tính ổn định, độ chính xác, đáp ứng quá độ Có 2 cách thiết kế:
Hiệu chỉnh nối tiếp: thêm các bộ điều khiển nối tiếp với hệ hở cho trước
Hình 1.2 Sơ đồ khối hiệu chỉnh nối tiếp
Trang 11- Phương pháp thiết kế: phân bô cực, LQR
1.3.2 Bộ điều khiển PID
Bộ điều khiển PID là bộ điều khiển hồi tiếp vòng kín, kết hợp ba bộ điều khiển vi phân, tích phân, tỉ lệ Nó có chức năng điều khiển hệ thống đáp ứng nhanh, vọt lố thấp, sai số xác lập bằng không nếu chọn thông số phù hợp
Mục tiêu điều khiển của bộ PID là giảm độ vọt lố (POT), giảm thời gian xác lập (t),
Hình 1.3 Sơ đồ khối hồi tiếp trạng thái
Hình 1.4 Sơ đồ khối PID
Trang 12CHƯƠNG 2 GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG 2.1 Giới thiệu về MATLAB/SIMULINK
MATLAB/SIMULINK là một chương trình viết cho máy tính PC hoạt động trong môi trường MS-DOS và môi trường WINDOWS nhằm hỗ trợ cho lập trình, các tính toán khoa học và kỹ thuật được thiết kế với công ty “The MATHWORKS”
Thuật ngữ MATLAB được viết tắt của hai từ MATRIX và LABORATORY MATLAB được điều khiển với các tập lệnh, tác động qua bàn phím Nó cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn ngữ lập trình truyền thống như C, C++, và Fortran Các câu lệnh trong MATLAB rất mạnh và có những vấn đề chỉ cần một câu lệnh là đủ giải quyết bài toán Mô phỏng trong MATLAB sẽ cho ta hình ảnh tọa độ không gian hai chiều (2D) và ba chiều (3D)
SIMULINK là một phần mềm mở rộng của MATLAB (1 Toolbox của Matlab) dùng để mô hình hóa, mô phỏng và phân tích một hệ thống động Nó cho phép mô tả hệ thống tuyến tính, hệ phi tuyến, các mô hình trong miền thời gian liên tục, hay gián đoạn hoặc một hệ gồm cả liên tục và gián đoạn MATLAB/SIMULINK được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học Với hàng triệu kỹ sư và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB/SIMULINK là ngôn ngữ của tính toán khoa học
2.2 Giới thiệu về board mạch ARM STM32F407 DISCOVERY
Hình 2.1 Phần mềm MATLAB & SIMULINK
Trang 13ARM Cortex KIT STM32F4 Discovery là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩn cho nhu cầu đa dạng về công nghệ Nó được ứng dụng vào rất nhiều thị trường khác nhau bao gồm các ứng dụng doanh nghiệp, mạng gia đình, cộng nghệ mạng không dây và các hệ thống ô tô
Board mạch STM32F407 Discovery có vi điều khiển chính là STM43F04VGT6 microcontroller tích hợp với chip 32-bit ARM Cortex-M4F, 1MB bộ nhớ Flash, 192Kb RAM Bo mạch tích hợp sẵn mạch nạp ST-LINK/V2 và các cảm biến khác như cảm biến gia tốc LIS302DL, bộ xử lý âm thanh MP45DT02, đèn LED thông báo trạng thái nguồn, nút nhấn, nút Reset
Hình 2.2 Board mạch ARM STM32F407 DISCOVERY
Trang 14CHƯƠNG 3 HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG MATLAB/SIMLINK
3.1 Chuyển đổi tín hiệu Analog sang Digital và Digital sang Analog
3.1.1 Giới thiệu chân ADC, DAC
• Đặc tính điện áp của mô-đun ADC
- Điện áp chuyển đổi từ 0V đến VREF+ - Điện áp nguồn từ 1.8V đến 3.6V • Đặc tính điện áp của mô-đun DAC
- Điện áp cấp ra 0.2V đến 3.6V
Trang 15Hình 3.2 Đặc tính điện mô-đun ADC
Hình 3.3 Đặc tính điện mô-đun DAC
Trang 163.1.2 Thí nghiệm sử dụng khối ADC
3.1.2.1 Cấu hình khối Regular ADC
Đường dẫn lấy khối Regular ADC: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> ADC >> Regular ADC
Hình 3.5 Khối Regular ADC
Hình 3.4 Hộp thoại Regular ADC
Trang 17Sample Time(sec): Thời gian lấy mẫu (chọn giá trị “-1” thì thời gian lấy mẫu hối ADC
bằng thời gian lấy mẫu hệ thống
Sử dụng khối này cho ứng dụng cần xử lý tín hiệu analog bằng phần mềm Ví dụ, đọc tín hiệu analog từ cảm biến (nhiệt độ, áp suất,…), đo điện áp và dòng điện từ cảm biến Đầu ra của khối là các giá trị số từ 0 đến 4095 (STM32F4 ADC có độ phân giải 12 bit) Khối này sẽ thiết lập chức năng đọc ADC và trả về giá trị đọc trong mỗi thời gian mẫu
3.1.2.2 Điều khiển LED bằng biến trở
Hình 3.6 Code Simulink “Chớp LED bằng điện trở”
Trang 18Bảng 3.1 Nối dây biến biến trở
Hình 3.8 Kết quả lắp mạch “biến trở điều khiển LED”
Hình 3.7 Kết quả đồ thị khi văn biến trở
Trang 193.1.2.2 Cấu hình khối Regular DAC
Đường dẫn lấy khối Regular DAC: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> DAC
Hình 3.9 Khối Regular DAC
Hình 3.10 Hộp thoại Regular DAC
Trang 20Khối DAC nhận đầu vào là một trong hai tín hiệu: điện áp (0 - 3.3V) hoặc dữ liệu thô (từ 0 - 4095)
3.1.2.3 Tạo tín hiệu tuần hoàn
Mục đích: Tạo ra tín hiệu tuần hoàn
Tiến hành: Thí nghiệm này sẽ sử dụng STM32F407 Discovery để phát ra tín hiệu tuần hoàn, có hai cổng vào Cổng vào đầu tiên sẽ gắn tín hiệu sóng tam giác với chân DAC1 (A4) mức điện áp từ 0-2.5V Cổng đầu vào thứ hai nối tín hiệu sóng hình sin với chân DAC2 (A5) mức điện áp 0.5-2.5V
Hình 3.11 Code Simulink “Tạo tín hiệu tuần hoàn”
Chú ý: thí nghiệm ở trên lấy nguồn tín hiệu từ nguồn Simulink nên nó không phù hợp với tín hiệu cần tần số cao do mất thời gian tính toán các hàm lượng giác Vì thế thường dùng khối Arbitrary Function Generator khi cần tần số cao
Sử dụng Khối rate transion để điều chỉnh tín hiệu liên tục (đường đen) thành tín hiệu rời (đường đỏ)
Hình 3.12 Khối tạo tần số cao
Trang 213.2 Sử dụng Digital Input/Output
3.2.1 Giới thiệu Digital Input/Output
3.2.1.2 Sơ đồ mạch đầu vào
• Pull-Up Input (điện trở kéo lên) Khi nhấn công tắc thì MCU sẽ hiểu là mức LOW
• Pull-Down Input (điện trở kéo xuống) Khi nhấn công tắc thì MCU sẽ hiểu là mức HIGH
Hình 3.13 Đồ thị xuất xuất 2 xung tam giác và sin
Hình 3.14 Sơ đồ mạch Pull-Up Input
Trang 22• Floating Input (thả nổi): Điện trở không được kết nối trong MCU nên khi chọn chế độ này cần lắp thêm điện trở bên ngoài (Pull-Up hoặc Pull-Down)
3.2.1.3 Sơ đồ mạch đầu ra
• Push-Pull Output
Mạch điều khiển bên trong có 2 con MOSFET: P-MOS và N-MOS:
- Trạng thái HIGH: P-MOS mở và N-MOS đóng, điện áp đầu ra bằng VDD - Trạng thái LOW: P-MOS đóng và N-MOS mở, điện áp đâu ra bằng Ground
Hình 3.16 Sơ đồ mạch Push-Pull Output khi P-MOS mở
Nếu mắc LED theo mạch hình 3.16 trên thì LED sáng khi trạng thái “1”
Hình 3.15 Sơ đồ mạch Pull-Down Input
Trang 23“0”
Ưu điểm chọn Push-Pull Output:
- Thích hợp hệ thống yêu cầu đóng ngắt với tần số cao - Điều khiển trực tiếp đến các thiết bị
Nhược điểm chọn Push-Pull Output:
- Dòng điện bị giới hạn Các chân của STM34F4 chịu dòng lớn nhất 25 mA (ngoài trừ PC13 – PC15 là 3 mA) Vì vậy ta thường sử dùng điện trở R = 660 Ohm mắc nối tiếp với LED để hạn dòng
Trang 243.2.2 Thí nghiệm sử dụng khối Digital Output
3.2.2.2 Cấu hình khối Digital Output
Đường dẫn lấy khối Digital Output: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> I/O >> Digital Output.
Hình 3.19 Khối Digital Output
3.2.2.3 Điều chỉnh thời gian sáng của LED
Mục đích :
• Giúp người dùng mô phỏng thực tế
• Biết cách sử dụng khối Pulse Generator để điều chỉnh thời gian sáng của LED Chọn cổng (A, B, C, D, E hoặc H)
Chọn mạch Push-Pull hoặc Open-Drain
Chọn chân điều khiển
Hình 3.20 Hộp thoại Digital Output
Trang 25Bảng 3.2 Các khối Simulink cho điều chỉnh thời gian sáng của LED
Khối thiết lập Target Setup Waijung Bolockset / STM32F4 target / Device Configuration
Khối đầu ra Digital Input Waijung Bolockset / STM32F4 target / On Chip Peripheral / IO
Chú ý: Trong khối Pulse Generator có một tham số quan trọng gọi là chu kì, dùng để tính ra độ rộng xung, nó quyết định thời gian sáng và tắt của LED Ví dụ người dùng muốn sáng trong 1 giây, tắt trong 3 giây và quá trình này xảy ra liên tục Như vậy độ rộng xung được tính bằng mối quan hệ sau:
% Độ rộng xung: (thời gian LED sáng) x 100/ chu kì
Ở đây chu kì là thời gian LED sáng + thời gian LED tắt = 1 + 3 =4 s Vậy % độ rộng xung là (1) x 100 / 4 = 25%
Hình 3.21 Code Simulink “Điều chỉnh thời gian sáng LED”
Trang 26Người dùng có thể thiết lập khối Pulse Generator như hình bên dưới và chọn vào biểu tượng Run như hình , sau đó nháy đúp vào Scope để xem sóng xung như hình Trên thực tế người dùng không thể thấy được sự chớp của LED do tốc độ quá nhanh Nhưng ta vẫn có thể liên tượng được bằng việc nhìn vào sóng xung, thời điểm xung ở mức cao tương ứng với LED sáng, còn ngược lại mức thấp LED tắt đồng thời ta nhìn vào cả chu kì thì lấy LED sáng ở 25% của chu kì và tắt ở 75% của chu kì
Hình 3.22 Cách Run mô hình trên Simulink
Build module
Hình 3.23 Thiết lập khối Pulse Generator
Trang 27Hình 3.24 Đồ thị tín hiệu sáng LED
3.2.3 Thí nghiệm sử dụng khối Digital Input
3.2.3.2 Cấu hình khối Digital Input
Đường dẫn lấy khối Digital Output: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> I/O >> Digital Input
Hình 3.25 Khối Digital Input
Trang 28Hình 3.26 Hộp thoại Digital Input
3.2.3.3 Điều chỉnh LED bằng nút nhấn
Mục đích:
- Giúp người dùng đọc giá trị nút nhấn bằng khối Digital Input
- Giúp người dùng hiểu được mục đích của thí nghiệm qua đó ứng dụng vào thực tế Tiến hành
Chọn cổng (A, B, C, D, E, F, G, H, I)
Tần số đầu vào (2, 25, 50, 100)
Chọn chân điều khiển
Trang 29Tên Khối Thư viện
Khối thiết lập Target Setup Waijung Bolockset / STM32F4 target / Device Configuration
Khối Digital đầu vào Digital Input Waijung Bolockset / STM32F4 target / On Chip Peripheral / IO
Khối Digital đầu ra Digital Output Waijung Bolockset / STM32F4 target / On Chip Peripheral / IO
Khi người dùng chạy chương trình này LED sẽ sáng khi nhấn nút và LED tắt khi nhả nút Chương trình sẽ luôn gửi tín hiệu khi nhấn nút và ngừng gửi khi nhả nút Chúng ta thấy mô hình này phù hợp cho việc điều khiển bằng tay như máy cẩu, máy nâng…
3.3 Sử dụng Timer/Counter
3.3.1 Giới thiệu Timer/Counter
Mỗi vi điều khiển điều có một tín hiệu Clock giúp xử lí chương trình, thông thường Clock thường có tín hiệu Digital với tần số cao và được thiết lập cả trong và ngoài quá trình xử lí dữ liệu Tốc độ của Clock ảnh hưởng đến khả năng xử lí của Vi điều khiển nhanh hoặc chậm
Tín hiệu Clock được sử dụng nhiều trong các mô-đun như mô-đun ADC, các mô-đun giao tiếp và đặc biệt là các mô-đun Timer
• Đặc điểm của mô-đun Timer:
- Thanh ghi của bộ đếm có 16 bit kiểu dữ liệu số nguyên, khi có một cạnh lên hoặc một tín hiệu bên ngoài vào cổng của Timer thì bộ điếm sẽ hoạt động