Với bộ điều khiển này, việc ứng dụng nó vào các loại hệ thống như tự động hóa, cơ khí, lắp ghép sẽ giúp tối ưu hóa về mặt hiệu quả và thời gian.. Nguyên tắc hoạt độngStator của động cơ đ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
––––––––––––
ĐỒ ÁN MÔN HỌC
HỆ THỐNG NHÚNG
Đề tài:
BỘ ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ
GVHD: ThS ĐINH CÔNG ĐOAN
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
TP HCM, Tháng 05 năm 2019
Trang 3MỤC LỤC
PHẦN MỞ ĐẦU 1
1.1 Tóm tắt 1
1.2 Đặt vấn đề 1
1.2.1 Tóm lược những nghiên cứu trong và ngoài nước liên quan đền đề tài 1 1.2.2 Tính cấp thiết cần nghiên cứu của đề tài 1
1.2.3 Một số tài liệu liên quan 2
1.2.4 Mục tiêu đề tài 2
1.2.5 Đối tượng và phạm vi nghiên cứu 2
1.2.6 Phương pháp nghiên cứu 2
1.2.7 Nội dung đề tài 2
CHƯƠNG 1: GIỚI THIỆU VỀ ARM CORTEX M3 STM32F103 4
1.1 Giới thiệu về ARM Cortex M3 STM32F103 4
1.1.1 Một vài đặc điểm nổi bật của STM32 5
1.2 Vi điều khiển STM32F103 8
1.2.1 Tổng quan 10
1.2.2 Thông số của vi điều khiển 11
CHƯƠNG 2: CẤU TRÚC CHUNG CỦA KIT 12
2.1 Giới thiệu chung 12
2.2 Một số hình ảnh của kit 13
CHƯƠNG 3: NHỮNG KIẾN THỨC LIÊN QUAN 14
3.1 Động cơ điện một chiều 14
3.1.1 Khái niệm cơ bản về động cơ điện một chiều 14
3.1.2 Nguyên tắc hoạt động 16
3.1.3 Cơ chế sinh lực quay của động cơ điện một chiều 17
3.1.4 Điều khiển tốc độ 17
3.2 Các module hổ trợ cho dự án 20
3.2.1 Mạch điều khiển động cơ DC L9110 20
3.2.2 Mạch chuyển mức tín hiệu 4 kênh giao tiếp IIC UART SPI TTL 21
3.2.3 Module I2C PCF8574 với LCD 1602A 22
Trang 4CHƯƠNG 4: ỨNG DỤNG 25
4.1 Các bước cấu hình cho chương trình 25
4.2 Các bước cấu hình chân và các yêu tố cần thiết với CubeMx 25
4.3 Lập trình với Keil C 32
4.4 Nạp code cho kit STM32F103C8T6 49
4.5 Demo dự án 52
KẾT LUẬN 52
TÀI LIỆU THAM KHẢO 53
Trang 5DANH MỤC CÁC HÌ
Hình 1.1 Kiến trúc của vi xử lý ARM Cortex M3 4
Hình 1.2 Kiến trúc của STM32 nhánh Performance và Access 5
Hình 1.3 Đặc điểm của bốn nhánh trong họ STM32 8
Hình 1.4 Các phiên bản kiến trúc lõi ARM 9
Hình 1.5 Hình ảnh vi điều khiển STM32F103C8T6 9
Hình 1.6 Sơ đồ chân của vi điều khiển STM32F103C8T6 10Y Hình 2.1 Hình ảnh thực tế của kit STM32F103C8T6 13
Hình 2.2 Sơ đồ chân của kit STM32F103C8T6 1 Hình 3.1 Hình ảnh một động cơ giảm tốc V1 trục kim loại 14
Hình 3.2 Nguyên lý hoạt động của động cơ điện một chiều 16
Hình 3.3 Cơ chế của động cơ điện một chiều 17
Hình 3.4 Module L9110 20
Hình 3.5 Sơ đồ chân và hoạt động của L9110 21
Hình 3.6 Module chuyển tín hiệu 4 kênh 21
Hình 3.7 LCD 1602A 22
Hình 3.8 Sơ đồ kết nối PCF8574 và LCD 1602 2 Hình 4.1 Tạo project với CubeMx 25
Hình 4.2 Lựa chọn chip trong CubeMx 26
Hình 4.3 Màn hình hoạt động của CubeMx 26
Hình 4.4 TIM2 mode and configuration 27
Hình 4.5 TIM3 mode 28
Hình 4.6 Các chân được kích hoạt trong CubeMx 29
Hình 4.7 Điều chỉnh xung nhịp cho vi điều khiển 29
Hình 4.8 Configuration các chế độ và các chân 30
Hình 4.9 Cấu hình cho Timer 3 31
Hình 4.10 Điều chỉnh các chân GPIO 32
Trang 6Hình 4.12 Thực hiện dự án 50
Trang 7DANH MỤC CÁC BẢNG
Bảng 1 Thông số của vi điều khiển STM32F103C8T6 11Bảng 2 Bảng kết nối chân PCF8574 và STM32F103 23
Trang 8PHẦN MỞ ĐẦU
1.1 Tóm tắt
Xuất hiện từ những năm đầu thập niên 1960, hệ thống nhúng đang dần trở thànhmột ngành phát triển mạnh mẽ trong lĩnh vực công nghệ thông tin (CNTT), với nhữngứng dụng rộng rãi trong công nghiệp và đời sống Từ những hệ thống phức tạp nhưhàng không vũ trụ, phòng thủ quân sự, máy móc tự động trong công nghiệp, đếnnhững phương tiện di chuyển thông thường như máy bay, xe điện, xe hơi, các trangthiết bị y tế trong bệnh viện, cho tới những thiết bị truyền hình và điện thoại di độngchúng ta sử dụng hằng ngày, đâu đâu cũng có sự hiện diện của hệ thống nhúng
Ngày nay với sự phát triển đó, ứng dụng hệ thống nhúng vào những việc nhưđiều khiển các hệ thống phức tạp, vận hành dây chuyền, … với sự chính xác, làm việcđộc lập và đạt được một hiệu năng ổn định
Bộ điều khiển động cơ cung cấp một loạt các tính năng điều khiển động cơmotor một chiều Sử dụng nguồn ngoài và một hệ thống xử lý có nhân ARM CortexM3 Với bộ điều khiển này, việc ứng dụng nó vào các loại hệ thống như tự động hóa,
cơ khí, lắp ghép sẽ giúp tối ưu hóa về mặt hiệu quả và thời gian
1.2 Đặt vấn đề
1.2.1 Tóm lược những nghiên cứu trong và ngoài nước liên quan đền đề tài
- Speed Control of DC Motor
Trang 9
https://www.instructables.com/id/Speed-Control-of-DC-Motor-Using-PID-Qua 2 bài viết phát triển trên, ta có thể nhận thấy được mức độ cần thiết củađiều khiển động cơ trên các hệ thống nhúng, họ điều khiển dựa
1.2.2 Tính cấp thiết cần nghiên cứu của đề tài
Hiểu rõ được các chuẩn giao tiếp, điều khiển tín hiệu của vi xử lý ARM hoặccác kit, sẽ giúp chúng ta cực kỳ nhiều trong việc tương tác điều khiển các hệ thốngnhúng bên ngoài khác, giúp thực hiện những công việc cần xử lý theo các thành phần
Mở rộng điều khiển, tương tác với nhiều kit khác nhau
1.2.3 Một số tài liệu liên quan
1.2.5 Đối tượng và phạm vi nghiên cứu
- Đối tượng nguyên cứu: đề tài được thực hiện trên kit STM32F103C8T6, với
nhân xử lý ARM Cortex M3
- Phạm vi nghiên cứu: đề tại tập trung nghiên cứu cách hoạt động, xử lý các chân
tín hiệu trên kit từ đó thực hiện việc điều khiển động cơ motor
1.2.6 Phương pháp nghiên cứu
Để phục vụ cho quá trình nghiên cứu đề tài, cần phải có phương pháp nghiêncứu một cách phù hợp, cụ thể nhằm đạt được kết quả tốt nhất, phục vụ cho yêu cầunghiên cứu Các quá trình nghiên cứu chủ yếu được sử dụng:
Trang 10- Phương pháp phân tích tài liệu: Trên cơ sở tài liệu đã tổng hợp được, nhóm vận
dụng các lý thuyết đã được học, sau đó thiết lập phản ánh và phân tích tài liệu
để nghiên cứu tìm hiểu cách thức hoạt động của các loại giao tiếp
1.2.7 Nội dung đề tài
Ngoài phần mở đầu, kết luận, danh mục tài liệu tham khảo, nội dung chính của
đề tại được cấu thành từ phần nội dung gồm các chương sau:
Chương 1: Giới thiệu vi xử lý
Chương 2: Cấu trúc chung của kit
Chương 3: Những kiến thức liên quan
Chương 4: Ứng dụng
Tổng kết
Trang 11PHẦN NỘI DUNG
Chương 1: Giới thiệu vi xử lý
Chương 2: Cấu trúc chung của kit
Chương 3: Những kiến thức liên quan
Chương 4: Ứng dụng
Kết quả đạt được, ưu nhược điểm, hướng phát triển của đề tài
Trang 12CHƯƠNG 1: GIỚI THIỆU VỀ ARM CORTEX M3 STM32F103
1.1 Giới thiệu về ARM Cortex M3 STM32F103
Dòng ARM Cortex là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩn chonhu cầu đa dạng về công nghệ Không giống như các chip ARM khác, dòng Cortex làmột lõi xử lí hoàn thiện, đưa ra một chuẩn CPU và kiến trúc hệ thống chung DòngCortex gồm có 3 phân nhánh chính: dòng A dành cho các ứng dụng cao cấp, dòng Rdành cho các ứng dụng thời gian thực như các đầu đọc và dòng M dành cho các ứngdụng vi điều khiển và chi phí thấp STM32 được thiết kế dựa trên dòng Cortex-M3,dòng Cortex-M3 được thiết kế đặc biệt để nâng cao hiệu suất hệ thống, kết hợp vớitiêu thụ năng lượng thấp, Cortex M3 được thiết kế trên nền kiến trúc mới, do đó chiphí sản xuất đủ thấp để cạnh tranh với các dòng vi điều khiển 8 và 16-bit truyền thống
Hình 1.1 Kiến trúc của vi xử lý ARM Cortex M3
Trang 13cả họ vi xử lý Cortex M nói chung và Cortex M3 là một trong số các đại diện tiêubiểu
Những đặc điểm nổi trội của dòng ARM Cortex đã thu hút các nhà sản xuất IC,hơn 240 dòng vi điều khiển dựa vào nhân Cortex đã được giới thiệu Không nằm ngoài
xu hướng đó, hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòngSTM32 STM32 là vi điều khiển dựa trên nền tảng lõi ARM Cortex-M3 thế hệ mới dohãng ARM thiết kế Lõi ARM Cortex-M3 là sự cải tiến từ lõi ARM7 truyền thống từngmang lại thành công vang dội cho công ty ARM
1.1.1 Một vài đặc điểm nổi bật của STM32
ST đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhưngSTM32 là một bước tiến quan trọng trên đường cong chi phí và hiệu suất(price/performance), giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách thức thật
sự với các vi điều khiển 8 và 16-bit truyền thống STM32 đầu tiên gồm 14 biến thểkhác nhau, được phân thành hai dòng: dòng Performance có tần số hoạt động của CPUlên tới 72Mhz và dòng Access có tần số hoạt động lên tới 36Mhz Các biến thể STM32trong hai nhóm này tương thích hoàn toàn về cách bố trí chân (pin) và phần mềm,đồng thời kích thước bộ nhớ FLASH ROM có thể lên tới 512K và 64K SRAM
Hình 1.2 Kiến trúc của STM32 nhánh Performance và Access
1.1.1.1 Sự tinh vi
Thoạt nhìn thì các ngoại vi của STM32 cũng giống như những vi điều khiển
Trang 14ngoại vi trên đều có rất nhiều đặc điểm thú vị Ví dụ như bộ ADC 12-bit có tích hợpmột cảm biến nhiệt độ để tự động hiệu chỉnh khi nhiệt độ thay đổi và hỗ trợ nhiều chế
độ chuyển đổi Mỗi bộ định thời có 4 khối capture compare (dùng để bắt sự kiện vớitính năng input capture và tạo dạng sóng ở ngõ ra với output compare), mỗi khối địnhthời có thể liên kết với các khối định thời khác để tạo ra một mảng các định thời tinh vihơn Một bộ định thời cao cấp chuyên hỗ trợ điều khiển động cơ, với 6 đầu ra PWMvới dead time (khoảng thời gian được chèn vào giữa hai đầu tín hiệu xuất PWM bùnhau trong điều khiển mạch cầu H) lập trình được và một đường break input (khi pháthiện điều kiện dừng khẩn cấp) sẽ buộc tín hiệu PWM sang một trạng thái an toàn đãđược cài sẵn Ngoại vi nối tiếp SPI có một khối kiểm tổng (CRC) bằng phần cứng cho
8 và 16 word hỗ trợ tích cực cho giao tiếp thẻ nhớ SD hoặc MMC
STM32 có hỗ trợ thêm tối đa 12 kênh DMA (Direct Memory Access) Mỗi kênh
có thể được dùng để truyền dữ liệu đến các thanh ghi ngoại vi hoặc từ các thanh ghingoại vi đi với kích thước từ (word) dữ liệu truyền đi có thể là 8/16 hoặc 32-bit Mỗingoại vi có thể có một bộ điều khiển DMA (DMA controller) đi kèm dùng để gửi hoặcđòi hỏi dữ liệu như yêu cầu Một bộ phân xử bus nội (bus arbiter) và ma trận bus (busmatrix) tối thiểu hoá sự tranh chấp bus giữa truy cập dữ liệu thông qua CPU (CPU dataaccess) và các kênh DMA Điều đó cho phép các đơn vị DMA hoạt động linh hoạt, dễdùng và tự động điều khiển các luồng dữ liệu bên trong vi điều khiển
STM32 là một vi điều khiển tiêu thụ năng lượng thấp và đạt hiệu suất cao Nó
có thể hoạt động ở điện áp 2V, chạy ở tần số 72MHz và dòng tiêu thụ chỉ có 36mA vớitất cả các khối bên trong vi điều khiển đều được hoạt động Kết hợp với các chế độ tiếtkiệm năng lượng của Cortex, STM32 chỉ tiêu thụ 2μA khi ở chế độ Standby Một bộ
Trang 15Ngày nay các ứng dụng hiện đại thường phải hoạt động trong môi trường khắckhe, đòi hỏi tính an toàn cao, cũng như đòi hỏi sức mạnh xử lý và càng nhiều thiết bịngoại vi tinh vi Để đáp ứng các yêu cầu khắc khe đó, STM32 cung cấp một số tínhnăng phần cứng hỗ trợ các ứng dụng một cách tốt nhất Chúng bao gồm một bộ pháthiện điện áp thấp, một hệ thống bảo vệ xung Clock và hai bộ Watchdogs Bộ đầu tiên
là một Watchdog cửa sổ (windowed watchdog) Watchdog này phải được làm tươitrong một khung thời gian xác định Nếu nhấn nó quá sớm, hoặc quá muộn, thìWatchdog sẽ kích hoạt Bộ thứ hai là một Watchdog độc lập (independent watchdog),
có bộ dao động bên ngoài tách biệt với xung nhịp hệ thống chính Hệ thống bảo vệxung nhịp có thể phát hiện lỗi của bộ dao động chính bên ngoài (thường là thạch anh)
và tự động chuyển sang dùng bộ dao động nội RC 8MHz
1.1.1.3 Tính bảo mật
Một trong những yêu cầu khắc khe khác của thiết kế hiện đại là nhu cầu bảomật mã chương trình để ngăn chặn sao chép trái phép phần mềm Bộ nhớ Flash củaSTM32 có thể được khóa để chống truy cập đọc Flash thông qua cổng Debug Khi tínhnăng bảo vệ đọc được kích hoạt, bộ nhớ Flash cũng được bảo vệ chống ghi để ngănchặn mã không tin cậy được chèn vào bảng vector ngắt Hơn nữa bảo vệ ghi có thểđược cho phép trong phần còn lại của bộ nhớ Flash STM32 cũng có một đồng hồ thờigian thực và một khu vực nhỏ dữ liệu trên SRAM được nuôi nhờ nguồn pin Khu vựcnày có một đầu vào chống giả mạo (anti-tamper input), có thể kích hoạt một sự kiệnngắt khi có sự thay đổi trạng thái ở đầu vào này Ngoài ra một sự kiện chống giả mạo
sẽ tự động xóa dữ liệu được lưu trữ trên SRAM được nuôi bằng nguồn pin
1.1.1.4 Phát triển phần mềm
Nếu bạn đã sử dụng một vi điều khiển dựa trên lõi ARM, thì các công cụ pháttriển cho ARM hiện có đã được hỗ trợ tập lệnh Thumb-2 và dòng Cortex Ngoài ra STcũng cung cấp một thư viện điều khiển thiết bị ngoại vi, một bộ thư viện phát triểnUSB như là một thư viện ANSI C và mã nguồn đó là tương thích với các thư viện
Trang 16nguồn mở và thương mại và middleware (TCP/IP, hệ thống tập tin, v.v.) hỗ trợ cho họCortex Dòng Cortex-M3 cũng đi kèm với một hệ thống gỡ lỗi hoàn toàn mới gọi làCoreSight Truy cập vào hệ thống CoreSight thông qua cổng truy cập Debug (DebugAccess Port), cổng này hỗ trợ kết nối chuẩn JTAG hoặc giao diện 2 dây (serial wire-2Pin), cũng như cung cấp trình điều khiển chạy gỡ lỗi, hệ thống CoreSight trên STM32cung cấp hệ thống điểm truy cập(data watchpoint) và một công cụ theo dõi(instrumentation trace) Công cụ này có thể gửi thông tin về ứng dụng được lựa chọnđến công cụ gỡ lỗi Điều này có thể cung cấp thêm các thông tin gỡ lỗi và cũng có thểđược sử dụng trong quá trình thử nghiệm phần mềm.
Trang 171.1.1.5 Dòng Performance và Access của STM32
Họ STM32 có hai nhánh đầu tiên riêng biệt: dòng Performance và dòng Access.Dòng Performance tập hợp đầy đủ các thiết bị ngoại vi và chạy với xung nhịp tối đa72MHz Dòng Access có các thiết bị ngoại vi ít hơn và chạy tối đa 36MHz Quan trọnghơn là cách bố trí chân (pins layout) và các kiểu đóng gói chip (package type) là nhưnhau giữa dòng Access và dòng Performance Điều này cho phép các phiên bản khácnhau của STM32 được hoán vị mà không cần phải sửa đổi sắp sếp lại footprint (môhình chân của chip trong công cụ layout bo mạch) trên PCB (Printed Circuit Board)
Ngoài hai dòng Performance và Access đầu tiên, hiện nay ST đã đưa ra thịtrường thêm hai dòng USB Access và Connectivity như hình bên dưới
Hình 1.3 Đặc điểm của bốn nhánh trong họ STM32
1.2 Vi điều khiển STM32F103
Vi điều khiển STM32F103 có bộ xử lí Cortex M3 dành cho dòng vi điều khiển,được tối ưu hóa cho các ứng dụng nhạy cảm về chi phí Chỉ hỗ trợ tập lệnh Thumb-2.Con số nằm cuối trên Cortex cho biết mức độ hiệu suất tương đối, với 1 là thấp nhất và
8 là cao nhất Hiện nay dòng Cortex-M có mức hiệu suất cao nhất là mức 3
Trang 18Tính đến thời điểm hiện tại thì phiên bản kiến trúc mới nhất của lõi ARM làARMv7 (Trước đó có ARMv4, ARMv5, ARMv6) Bộ xử lý Cortex-M3 dựa trên kiếntrúc ARMv7 M và có khả năng thực hiện tập lệnh Thumb-2.
ARM®Cortex®-M3 hoạt động ở tần số lên tới 72 MHz
Họ vi xử lý STM32F103XX kết hợp các bộ nhớ nhúng tốc độ cao (Bộ nhớ flashlên tới 64 kbytes, lên tới 20 kbytes SRAM)
Tất cả các thiết bị đều cung cấp 2 bộ ADC 12 bit, RTC công suất thấp, 12 bộđịnh thời 16 bit cho mục đích chung bao gồm hai bộ định thời PWM để điều khiểnđộng cơ, hai bộ định thời 32 bit cho mục đích chung một bộ tạo số ngẫu nhiên thực sự(RNG) Họ cũng có giao diện truyền thông tiêu chuẩn và tiên tiến
Hình 1.4 Các phiên bản kiến trúc lõi ARM
Các tài liệu hướng dẫn kỹ thuật cho Cortex-M3 và kiến trúc ARMv7-M có thểđược tải về từ website của ARM tại www.arm.com
Trang 191.2.1 Tổng quan
Hình 1.5 Hình ảnh vi điều khiển STM32F103C8T6
Hình 1.6 Sơ đồ chân của vi điều khiển STM32F103C8T6
Trang 201.2.2 Thông số của vi điều khiển
Standard Package 250
Category – phân loại Integrated Circuits (ICs)
Family – họ Embedded - Microcontrollers
Series - dòng STM32 F1
Core Processor ARM® Cortex™-M3
Core Size 32-Bit
Speed – xung nhịp 72MHz
Connectivity CAN, I²C, IrDA, LIN, SPI, UART/USART, USBPeripherals DMA, Motor Control PWM, PDR, POR, PVD,
PWM, Temp Sensor, WDTNumber of I /O 37
Program Memory Size 64KB (64K x 8)
Program Memory Type FLASH
RAM Size 20K x 8
Voltage - Supply (Vcc/Vdd) 2 V ~ 3.6 V
Data Converters A/D 10x12b
Oscillator Type Internal
Operating Temperature -40°C ~ 85°C
Package / Case 48-LQFP
Bảng 1 Thông số của vi điều khiển STM32F103C8T6
Trang 21CHƯƠNG 2: CẤU TRÚC CHUNG CỦA KIT
2.1 Giới thiệu chung
Đề tài này, nhóm thực hiện trên kit STMF103C8T6 sử dụng vi điều khiểnSTM32F103 là loại được sử dụng ở rất nhiều trong vi điều khiển ARM, kit có thiết kế
ra chân đầy đủ và hổ trợ chuẩn MicroUSB và cổng nạp chuẩn Jtag/SWD tích hợp, kit
có giá thành phải chăng, là sự lựa chọn hợp lý cho người mới bắt đầu tìm hiểu về dòngSTM32F103XX
Thông tin chung về sản phẩm
- Lõi : ARM 32 bit Cortex M3
- Tần số hoạt động lên tới 72 MHz
- DMA : Điều khiển 7 kênh DMA
- Timer : 4 bộ, 16 bit ( IC, OC, PWM )
- Ứng dụng : Những tính năng này làm cho vi điều khiển STM32F103 thích hợpcho một loạt các ứng dụng như điều khiển động cơ, kiểm soát các ứng dụngnâng cao, thiết bị y tế và thiết bị cầm tay, máy tính và thiết bị ngoại vi chơi
Trang 22game, GPS, ứng dụng công nghiệp, PLC, biến tần, máy in, máy quét , hệ thốngbáo động, hệ thống liên lạc video, và HVACs.
Trang 232.2 Một số hình ảnh của kit
Hình 2.1 Hình ảnh thực tế của kit STM32F103C8T6
Hình 2.2 Sơ đồ chân của kit STM32F103C8T6
Trang 24CHƯƠNG 3: NHỮNG KIẾN THỨC LIÊN QUAN
3.1 Động cơ điện một chiều
3.1.1 Khái niệm cơ bản về động cơ điện một chiều
Động cơ một chiều DC (DC là từ viết tắt của "Direct Current Motors") là Động
cơ điều khiển bằng dòng có hướng xác định hay nói dễ hiểu hơn thì đây là loại động
cơ chạy bằng nguồn điện áp DC- điện áp 1 chiều Đầu dây ra của đông cơ thường gồmhai dây (dây nguồn- VCC và dây tiếp đất- GND) DC motor là một động cơ một chiềuvới cơ năng quay liên tục
Khi bạn cung cấp năng lượng, động cơ DC sẽ bắt đầu quay, chuyển điện năngthành cơ năng Hầu hết các động cơ DC sẽ quay với cường độ RPM rất cao ( số vòngquay/ phút) Tốc độ không tải của động cơ DC nếu không giảm tốc có thể đạt từ1000RPM tới 40.000RPM
Trang 25Đối với động cơ điện 1 chiều có loại không chổi than (Brussless DC BLDC) và động cơ có chổi than (Brush DC Motor- DC Motor) Do động cơ BLDCthực chất là động cơ điện 3 pha không đồng bộ vì vậy mình chỉ xét động cơ điện 1chiều có chổi than.
Trang 26Motor-3.1.2 Nguyên tắc hoạt động
Stator của động cơ điện 1 chiều thường là 1 hay nhiều cặp nam châm vĩnh cửu,hay nam châm điện, rotor có các cuộn dây quấn và được nối với nguồn điện một chiều,một phần quan trọng khác của động cơ điện 1 chiều là bộ phận chỉnh lưu, nó có nhiệm
vụ là đổi chiều dòng điện trong khi chuyển động quay của rotor là liên tục Thôngthường bộ phận này gồm có một bộ cổ góp và một bộ chổi than tiếp xúc với cổ góp
Hình 3.2 Nguyên lý hoạt động của động cơ điện một chiều
Nếu trục của một động cơ điện một chiều được kéo bằng 1 lực ngoài, động cơ
sẽ hoạt động như một máy phát điện một chiều, và tạo ra một sức điện động cảm ứngElectromotive force (EMF) Khi vận hành bình thường, rotor khi quay sẽ phát ra mộtđiện áp gọi là sức phản điện động counter-EMF (CEMF) hoặc sức điện động đốikháng, vì nó đối kháng lại điện áp bên ngoài đặt vào động cơ Sức điện động nàytương tự như sức điện động phát ra khi động cơ được sử dụng như một máy phát điện
Trang 27Công suất cơ mà động cơ đưa ra được, được tính bằng:
3.1.3 Cơ chế sinh lực quay của động cơ điện một chiều
Khi có một dòng điện chạy qua cuộn dây quấn xung quanh một lõi sắt non,cạnh phía bên cực dương sẽ bị tác động bởi một lực hướng lên, trong khi cạnh đối diệnlại bị tác động bằng một lực hướng xuống theo nguyên lý bàn tay trái của Fleming.Các lực này gây tác động quay lên cuộn dây, và làm cho rotor quay Để làm cho rotorquay liên tục và đúng chiều, một bộ cổ góp điện sẽ làm chuyển mạch dòng điện saumỗi vị trí ứng với 1/2 chu kỳ Chỉ có vấn đề là khi mặt của cuộn dây song song với cácđường sức từ trường Nghĩa là lực quay của động cơ bằng 0 khi cuộn dây lệch 90o sovới phương ban đầu của nó, khi đó rotor sẽ quay theo quán tính
Trong các máy điện một chiều lớn, người ta có nhiều cuộn dây nối ra nhiềuphiến góp khác nhau trên cổ góp Nhờ vậy dòng điện và lực quay được liên tục và hầunhư không bị thay đổi theo các vị trí khác nhau của rotor
Hình 3.3 Cơ chế của động cơ điện một chiều
Trang 283.1.4 Điều khiển tốc độ
Thông thường, tốc độ quay của một động cơ điện 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 Điều khiển tốc độ của động cơ có thểbằng cách điều khiển các điểm chia điện áp của bình ắc quy, điều khiển bộ cấp nguồnthay đổi được, dùng điện trở hoặc mạch điện tử Chiều quay của động cơ có thể thayđổi được bằng cách thay đồi chiều nối dây của phần kích từ, hoặc phần ứng, nhưngkhông thể được nếu thay đổi cả hai Thông thường sẽ được thực hiện bằng các bộ côngtắc tơ đặc biệt (Công tắc tơ đổi chiều)
Điện áp tác dụng có thể thay đổi bằng cách xen vào mạch một điện trở nối tiếphoặc sử dụng một thiết bị điện tử điều khiển kiểu chuyển mạch lắp bằng Thyristor,transistor hoặc loại cổ điển hơn nữa bằng các đèn chỉnh lưu hồ quang Thủy ngân.Trong một mạch điện gọi là mạch băm điện áp, điện áp trung bình đặt vào động cơthay đổi bằng cách chuyển mạch nguồn cung cấp thật nhanh Khi tỷ lệ thời gian "on"trên thời gian "off" thay đổi sẽ làm thay đổi điện áp trung bình Tỷ lệ phần trăm thờigian "on" trong một chu kỳ chuyển mạch nhân với điện áp cấp nguồn sẽ cho điện áptrung bình đặt vào động cơ Như vậy với điện áp nguồn cung cấp là 100V, và tỷ lệ thờigian ON là 25% thì điện áp trung bình là 25V Trong thời gian "Off", điện áp cảm ứngcủa phần ứng sẽ làm cho dòng điện không bị gián đoạn, qua một đi ốt gọi là đi ốt phihồi, nối song song với động cơ Tại thời điểm này, dòng điện của mạch cung cấp sẽbằng không trong khi dòng điện qua động cơ vẫn khác không và dòng trung bình củađộng cơ vẫn luôn lớn hơn dòng điện trong mạch cung cấp, trừ khi tỷ lệ thời gian "on"đạt đến 100% Ở tỷ lệ 100% "on" này, dòng qua động cơ và dòng cung cấp bằng nhau.Mạch đóng cắt tức thời này ít bị tổn hao năng lượng hơn mạch dùng điện trở Phương
Trang 29Vì động cơ điện một chiều kiểu nối tiếp có thể đạt tới mô men quay cực đại từkhi vận tốc còn nhỏ, nó thường được sử dụng để kéo, chẳng hạn đầu máy xe lửa haytàu điện Một ứng dụng khác nữa là để khởi động các loại động cơ xăng hay động cơđiezen loại nhỏ Tuy nhiên nó không bao giờ dùng trong các ứng dụng mà hệ thốngtruyền động có thể dừng (hay hỏng), như băng truyền Khi động cơ tăng tốc, dòng điệnphần ứng giảm (do đó cả trường điện cũng giảm) Sự giảm trường điện này làm chođộng cơ tăng tốc cho tới khi tự phá hủy chính nó Đây cũng là một vấn đề với động cơ
xe lửa trong trường hợp mất liên kết, vì nó có thể đạt tốc độ cao hơn so với chế độ làmviệc định mức Điều này không chỉ gây ra sự cố cho động cơ và hộp số, mà còn pháhủy nghiêm trọng đường ray và bề mặt bánh xe vì chúng bị đốt nóng và làm lạnh quánhanh Việc giảm từ trường trong bộ điều khiển điện tử được ứng dụng để tăng tốc độtối đa của các phương tiện vận tải chạy bằng điện Dạng đơn giản nhất là dùng một bộđóng cắt và điện trở làm yếu từ trường, một bộ điều khiển điện tử sẽ giám sát dòngđiện của động cơ và sẽ chuyển mạch, đưa các điện trở suy giảm từ vào mạch khi dòngđiện của động cơ giảm thấp hơn giá trị đặt trước Khi điện trở được đưa vào mạch, nó
sẽ làm tăng tốc động cơ, vượt lên trên tốc độ thông thường ở điện áp định mức Khidòng điện tăng bộ điều khiển sẽ tách điện trở ra, và động cơ sẽ trở về mức ngẫu lựcứng với tốc độ thấp
Một phương pháp khác thường được dùng để điều khiển tốc độ động cơ mộtchiều là phương pháp điều khiển theo kiểu Ward-Leonard Đây là phương pháp điềukhiển động cơ một chiều (thường là loại kích thích song song hay hỗn hợp) bằng cách
sử dụng nguồn điện xoay chiều, mặc dù nó không được tiện lợi như những sơ đồ điềukhiển một chiều Nguồn điện xoay chiều được dùng để quay một động cơ điện xoaychiều, thường là một động cơ cảm ứng, và động cơ này sẽ kéo một máy phát điện mộtchiều Điện áp ra của phần ứng máy phát một chiều này được đưa thẳng đến phần ứngcủa động cơ điện một chiều cần điều khiển Cuộn dây kích từ song song của cả máyphát điện và động cơ điện một chiều sẽ được kích thích độc lập qua các biến trở kích
từ Có thể điều khiển tốc độ động cơ rất tốt từ tốc độ = 0 đến tốc độ cao nhất với ngẫulực phù hợp bằng cách thay đổi dòng điện kích thích của máy phát và động cơ điện
Trang 30một chiều Phương pháp điều khiển này đã được xem là chuẩn mực cho đến khi nó bịthay thế bằng hệ thống mạch rắn sử dụng Thyristor Nó đã tìm được chỗ đứng ở hầuhết những nơi cần điều khiển tốc độ thật tốt, từ các hệ thống thang nâng hạ người trongcác hầm mỏ, cho đến những máy công nghiệp cà các cần trục điện Nhược điểm chủyếu của nó là phải cần đến ba máy điện cho một sơ đồ (có thể lên đến 5 trong các ứngdụng rất lớn vì các máy DC có thể được nhân đôi lên và điều khiển bằng các biến trởchỉnh đồng thời) Trong rất nhiều ứng dụng, hợp bộ động cơ - máy phát điện thườngđược duy trì chạy không tải, để tránh mất thời gian khởi động lại.
Mặc dù các hệ thống điều khiển điện tử sử dụng Thyristor đã thay thế hầu hếtcác hệ thống Ward Leonard cỡ nhỏ và trung bình, nhưng một số hệ thống lớn (cỡ vàitrăm mã lực) vẫn còn đắc dụng Dòng điện kích từ nhỏ hơn nhiều so với dòng điệnphần ứng, cho phép các Thyristor cỡ trung bình có thể điều khiển một động cơ lớn hơnrất nhiều, so với điều khiển trực tiếp Thí dụ, trong một ứng dụng, một bộ Thyristor
300 ampe có thể điều khiển một máy phát điện Dòng điện ngõ ra của máy phát này cóthể lên đến 15.000 ampe, với cùng dòng này, nếu điều khiển trực tiếp bằng thyristor thì
có thể rất khó khăn và giá thành cao
3.2 Các module hổ trợ cho dự án
3.2.1 Mạch điều khiển động cơ DC L9110
Trang 31Mạch điều khiển động cơ DC L9110 là mạch điều khiển được 2 động cơ dùng
để điều cho các robot có kích thước nhỏ gọn module L9910 nhỏ điều khiển 2 động cơđọc lập module có thể tải 800mA cho mỗi động cơ
Mạch L9110 sử dụng nguồn từ 2.5V đến 12V điều khiển bằng vi điều khiển với
cả 2 mức nguồn là 3.3V và 5V điều khiển tốc độ động cơ qua điều khiển xung PWM,
và điều khiển chiều quay qua các chân bằng tín hiệu LOGIC Ngoài ra module cònđiều khiển được 1 động cơ bước 2 pha
Thông số kỹ thuật:
- Điện áp hoạt động: DC2.5V – 12V
- Số motor điều khiển: 2
- Dòng điều khiển tối đa mỗi kênh: 800mA
- Kích thước 31mm x 22mm x 12mm
Về cách thức hoạt động, module có chip xử lý chính là L9110 có chân ra vàonhư hình dưới đây:
Hình 3.5 Sơ đồ chân và hoạt động của L9110
Dựa trên 2 chân tín hiệu Input A và Input B, chip sẽ cho ra 2 chân tín hiệuOutput A & B Tùy thuộc vào trạng thái của motor ta muốn nó hoạt động như thế nào
mà cấp tín hiệu vào Input A & B tương ứng Với điều khiển tốc độ, ta chỉ cần cấp 1 tínhiệu xung PWM vào 1 chân, chân còn lại tín hiệu LOW, tốc độ động cơ khi đó sẽ phụthuộc vào xung PWM đó
Trang 323.2.2 Mạch chuyển mức tín hiệu 4 kênh giao tiếp IIC UART SPI TTL
Hình 3.6 Module chuyển tín hiệu 4 kênh
Mạch chuyển mức tín hiệu I2C giúp bạn dễn dàng kết nối thông qua mudulenày Các mạch giao tiếp I2C nhưng khác điện áp như (VD 5V/3.3V) có thể dễ dàng kếtnối thông qua mudule này Mạch có 2 con Fet BSS138 cùng với điện trở 10k Ohm kéolên Có thể hoạt động xuống tới mức 1.8V ở phía mức điện áp thấp, và chịu dòng ápnhất là 10V ở phía mức điện áp cao
THÔNG SỐ KỸ THUẬT
Bên phía mức điện áp thấp BVCC nối vào chân nguồn của mạch 3V
BSCL nối vào chân SCL của mạch 3V
BSDA nối với chân SDA của mạch 3V
BGND nối với chân GND của mạch 3V
Trang 33LCD 1602 là một thiết bị ngoại vi dùng để hiển thị thông tin dưới dạng text.LCD có cấu tạo gồm 16 chân như hình bên dưới Phần hiển thị bao gồm 16 cột, 2hàng, mỗi ô hiển thị một kí tự.
Hình 3.7 LCD 1602A
Để hiển thị thông tin trên LCD, module I2C PCF8574 được sử dụng làm trunggian kết nối giữa STM32F103 và LCD Module PCF8574 hỗ trợ giao tiếp I2C với 7bit địa chỉ, trong đó có 4 bit cố định và 3 bit có thể thay đổi có dạng 0 1 0 0 A2 A1 A0.Mặc định, trên module nhà sản xuất để các chân A2 A1 A0 ở mức logic cao
Hình 3.8 Module I2C PCF8574
Các chân trên module PCF8574 được nối với STM32F103 như sau:
PCF8574 STM32
Trang 34VCC (nối nguồn ngoài 5V)
Hình 3.8 Sơ đồ kết nối PCF8574 và LCD 1602
Thư viện phục vụ cho hiển thị thông tin text lên LCD: i2c-lcd.h, i2c-lcd.c
Một số hàm hỗ trợ trong thư viện:
- void lcd_init (void); // initialize lcd
- void lcd_send_cmd (char cmd); // send command to the lcd
- void lcd_send_data (char data); // send data to the lcd
- void lcd_send_string (char *str); // send string to the lcd
- void lcd_clear_display (void); //clear display lcd
Trang 35CHƯƠNG 4: ỨNG DỤNG
4.1 Các bước cấu hình cho chương trình
Trong chương này sẽ hướng dẫn cách thức để tạo một project trên Keil C, cáccông cụ cần thiết để viết dự án này cần:
- Driver ST-Link 009: cấp driver cho pc để có thể nhận được, sau đó ta dùng
mạch nạp này để nhúng code vào kit
- STM32 CubeMx: công cụ giúp khởi tạo phần cứng, ngoại vi, xung nhịp cho vi
điều khiển STM32, phần mềm sẽ giúp sinh code giúp chúng ta, công cụ hổ trợđắc lực cho những ai lập trình về nhúng mà không rành về điện
- Keil C MDK: Lập trình C cho dòng Vi điều khiển ARM
4.2 Các bước cấu hình chân và các yêu tố cần thiết với CubeMx
Mở phần mềm STM32CubeMX lên, sau đó chọn New Project
Hình 4.1 Tạo project với CubeMx
Trang 36Sau đó chúng ta lựa chọn vi điều khiển tương ứng mà ta muốn lập trình, ở đây
dự án này, mình chọn STMF103C8Tx
Hình 4.2 Lựa chọn chip trong CubeMx
Sau khi chọn xong, chúng ta chờ cho phần mềm tải các library tương ứng với viđiều khiển cần thiết Sau đó màn hình chính của phần mềm hiển thị như sau
Trang 37Hình 4.3 Màn hình hoạt động của CubeMx
Phần bên trái của chương trình hiển thị các chế độ mà vi điều khiển có, bên phảitương ứng với các chân của vi điều khiển Đầu tiên ta chỉnh:
- RCC: thẻ High Speed Clock chọn Crystal / Ceramic Resonator, mục đích ta
kích hoạt thạch anh trên kit để có thể sử dụng được xung cao nhất mà kit hổ trợ.Với kit STM32F103C8T6 này thì xung tối đa là 72 MHz
- SYS: thẻ Debug chọn Serial Wire.
- PB0 – TIM3_CH3: cấu hình Timer để xuất xung tín hiệu PWM cho module
L9110
- PA0 – TIM2_CH1: cấu hình Timer để xuất xung tín hiệu PWM cho module
L9110
- TIM2: cấu hình timer 2 như hình dưới đây Tick “Internal Clock” để dùng xung
nội trong vi điều khiển để tạo xung PWM, như chân đã cấu hình ở trên thuộckênh CH1 nên ta chọn xuất tín hiệu PWM kênh CH1