2.4.1. Động cơ Brushless DC Mortor
a. Khái niệm, đặc điểm
- Động cơ Brushless DC (BLDC) đang được sử dụng ngày càng nhiều.Vì những ưu điểm nổi bật của động cơ BLDC, tỉ số: trọng lượng/kích thước tốt, có hiệu quả gia tốc cao, đòi hỏi ít hoặc không có bảo trì và tạo ra ít tiếng ồn hơn các động cơ brushed DC phổ biến.
- Động cơ BLDC là “động cơ một chiều không chổi than” nhưng nó thuộc nhóm động cơ đồng bộ nam châm vĩnh cửu chứ không phải là động cơ một chiều.
- Động cơ đồng bộ nam châm vĩnh cửu là nhóm động cơ xoay chiều đồng bộ (tức là rotor quay cùng tốc độ với từ trường quay) có phần cảm là nam châm vĩnh cửu.
- Dựa vào dạng sóng của sức phản điện động trên stator ta có thể chia thành 2 loại: - Động cơ (sóng) hình sin
- Động cơ (sóng) hình thang
- Động cơ BLDC là loại động cơ sóng hình thang, những động cơ khác là động cơ sóng hình sin (PM – Permanent magnet Motor). Chính sức phản điện động có dạng hình thang này là yếu để xác định một động cơ BLDC chứ không phải các yếu tố khác như Hall sensor, bộ chuyển mạch điện tử (Electronic Commutator), .v.v.
b. Cấu tạo và nguyên lý làm việc của động cơ Brushless DC Mortor Cấu tạo :
Động cơ BLDC hiện nay có hai loại:
- Động cơ BLDC không có sensor (Hall sensor) gọi là sensorless BLDC - Động cơ BLDC có sensor (Hall sensor) gọi là “sensor BLDC”
1. Cấu tạo động cơ sensorless BLDC:
Hình 2.37. Mặt cắt bằng của một BLDC
- Stator: bao gồm các lõi sắt (các lá thép kĩ thuật điện ghép cách điện với nhau) và dây quấn.Cách quấn dây của BLDC khác so với cách quấn dây động cơ xoay chiều 3 pha thông thường, sự khác biệt này tạo nên sức phản điện động dạng hình thang.
- Rotor: Gồm các cặp nam châm gắn cách đều nhau
Hình 2.39. Rotor động cơ BLDC
2. Cấu tạo động cơ sensor BLDC:
- Cấu tạo của sensor BLDC cũng giống như sensorless đã trình bày ở trên nhưng phần stator có thêm 3 sensor (Hall sensor)
Hình 2.40. Động cơ Brushless có cảm biến Hall
- Nguyên lý của Hall sensor :
Hall sensor dùng để xác định từ trường sinh ra trong động cơ
Khi không có từ trường thì điện áp V = 0 và khi có từ trường thì V= VH
Và được tính theo công thức VH = B.I
Hall sensor có 2 loại là analog và digital thì trong BLDC thường dùng digital sensor
Hình 2.42. Nguyên lý của Hall Sensor khi có từ trường
Nguyên lý đảo pha các cuộn dây của BLDC
c. Điều khiển động cơ BLDC
- Nguyên lý điều khiển động cơ BLDC thì chúng ta đảo pha ở 3 đầu dây động cơ theo 6 trạng thái đảo pha đã nêu ở trên thì sẽ điều khiển được động cơ.Và tốc độ động cơ phụ thuộc và tầng số đảo các pha này.Ta dùng PWM mode (Pulse Width Measurement mode) để điều khiển tốc độ của động cơ BLDC
Hình 2.44. Chiều của 6 trạng thái đảo pha của BLDC
- Sự khác nhau giữa điều khiển có Hall sensor và không có Hall sensor là phương pháp xác định vị trí của từ trường rotor so với các pha của cuộn dây trên stator.
- Với động cơ có Hall sensor thì hall sesor có nhiệm vụ nhận biết được các vị trí của từ trường trên rotor so với các pha của cuộn dây trên stator.
2.4.2. Khối LCD hiển thị
Hình 2.46. Khối LCD hiển thị
Phân tích:
LCD đảm nhận vai trò hiển thị các thông số, các thông tin cần nhập vào hay các thông tin xử lý mà bộ điều khiển đang hoạt động được. Loại LCD được sử dụng là loại SD- DM1602A, có 2 hàng, mỗi dòng 16 kí tự.
Kết cấu LCD gồm 16 chân, trong đó: hai chân 1, 2 dùng để cấp nguồn cho LCD hoạt động, chân thứ 3 (chân VEE) được nối vào đầu ra của biến trở dùng để điều chỉnh độ tương phản, 2 chân 15, 16 (chân A và K ) là 2 chân cấp nguồn.
Từ chân 4 → 14 là các chân điều khiển được nối với vi điều khiển, các chân 4, 5, 6 được dùng để điều khiển hoạt động của LCD, các chân còn lại là 8 bit Data dùng để truyền nhận dữ liệu.
2.4.3. Khối giao tiếp bàn phím
Hình 2.47. bàn phím keypad 4x4
Phân tích:
Bàn phím HEX Keypad được thiết kế bằng các công tắc nhấn ( công tắc luôn luôn hở ở trạng thái bình thường). Khi nhấn một phím trên bàn phím thì công tắc sẽ đóng lại lúc đó hai đường chân Port nối tới công tắc sẽ giao nhau tạo ra mức logic giống nhau và bằng phương pháp quét các chân Port ta sẽ phát hiện ra phím được ấn.
2.4.4. Khối chân ga điều khiển
Hình 2.48.chân ga điều khiển
Hệ thống điều khiển xe với chân ga điều dùng linh kiện bán dẫn làm việc theo hiệu ứng Hall hoặc dùng biến trở điều khiển, đây là một dạng linh kiện cảm ứng theo từ trường.
2.4.5. Giới thiệu về Vi điều khiển AVR
AVR là họ vi điều khiển 8 bit theo công nghệ mới, với những tính năng rất mạnh được tích hợp trong Chip của hãng Atmel theo công nghệ RISC (viết tắt của Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa ), nó mạnh ngang hàng với các họ vi điều khiển 8 bit khác như PIC, Pisoc. Do ra đời muộn hơn nên họ vi điều khiển AVR có nhiều tính năng mới đáp ứng tối đa nhu cầu của người sử dụng. So với họ 8051, 89xx thì nó có độ ổn định, khả năng tích hợp, sự mềm dẻo trong việc lập trình và tiện lợi hơn rất nhiều.
a. Những tính năng chính của Vi điều khiển AVR
– Bộ nhớ chương trình Flash dung lượng lớn có thể lập trình nhiều lần. – Bộ nhớ Ram tĩnh (SRAM) có dung lượng lớn.
– Có thể sử dụng xung CLOCK lên đến 16MHz, hoặc sử dụng xung Clock nội lên đến 8MHz.
– Có nhiều cổng vào ra (I/O).
Có các bộ Timer/Counter 8 bit, 16 bit có tích hợp PWM.
– Có các bộ chuyển đổi Analog – Digital độ phân giải 8 bit, 10 bit và có nhiều kênh chuyển đổi.
– Có giao thức nối tiếp USART. – Có giao thức nối tiếp I2C. – Có giao thức nối tiếp SPI.
b. Cấu trúc bộ nhớ của AVR
AVR có cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ liệu (Data memory bus) và đường truyền cho bộ nhớ chương trình (Program memory bus) được tách riêng. Data memory bus chỉ có 8 bit và được kết nối với hầu hết các thiết bị ngoại vi, với tệp thanh ghi (Register file). Trong khi đó đường truyền cho bộ nhớ chương trình có độ rộng 16 bits và chỉ phục vụ cho thanh ghi lệnh (Instruction registers).
Hình 2.49. Cấu trúc bộ nhớ của AVR
Bộ nhớ chương trình (Program memory): Là bộ nhớ Flash lập trình được, hay còn gọi là Application section. Thực chất, Application section bao gồm 2 phần: phần chứa các mã lệnh cho hoạt động của Chip (Instruction) và phần chứa các Vector ngắt (Interrupt vectors). Các Vector ngắt nằm ở phần đầu của Application section (từ địa chỉ 0x0000) và dài đến bao nhiêu tùy thuộc vào loại Chip. Phần chứa Instruction nằm liền sau đó, chương trình viết cho Chip phải được nạp vào phần này.
Bộ nhớ dữ liệu (Data memory): Chứa các thanh ghi quan trọng nhất của Chip, việc lập trình cho Chip phần lớn là truy cập bộ nhớ này. Bộ nhớ dữ liệu trên các Chip AVR có độ lớn khác nhau tùy theo mỗi Chip, tuy nhiên về cơ bản phần bộ nhớ này được chia thành 5 phần:
Hình 2.50. Thanh ghi 8 bit
+ Phần 1: Là phần đầu tiên trong bộ nhớ dữ liệu, phần này bao gồm 32 thanh ghi có tên gọi là Register file, hay đơn giản là các thanh ghi. Tất cả các thanh ghi này đều là các thanh ghi 8 bits .
Hình 2.51. Register file
Tất cả các Chip trong họ AVR đều bao gồm 32 thanh ghi Register file có địa chỉ tuyệt đối từ 0x0000 đến 0x001F. Mỗi thanh ghi có thể chứa giá trị dương từ 0 đến 255 hoặc các giá trị có dấu từ - 128 đến 127 hoặc mã ASCII của một ký tự nào đó. Các thanh ghi này được đặt tên theo thứ tự là R0 đến R31. Chúng được chia thành 2 phần, phần 1 bao gồm các thanh ghi từ R0 đến R15 và phần 2 là các thanh ghi R16 đến R31.
Tất cả 32 thanh ghi Register file đều có đặc điểm chung sau: Được truy cập trực tiếp trong các lệnh. Các toán tử, phép toán thực hiện trên các thanh ghi này chỉ cần 1 chu kỳ xung Clock. Register file được kết nối trực tiếp với bộ xử lí trung tâm (CPU) của Chip. Và chúng là nguồn chứa các số hạng trong các phép toán và cũng là đích chứa kết quả trả lại của phép toán.
Tóm lại 32 thanh ghi Register file của AVR được xem là một phần của CPU, vì thế chúng được CPU sử dụng trực tiếp và nhanh chóng, để gọi các thanh ghi này, chúng ta không cần gọi địa chỉ mà chỉ cần gọi trực tiếp tên của chúng. Register file thường được sử dụng như các toán hạng của các phép toán trong lúc lập trình.
+ Phần 2: RAM tĩnh, nội (Internal SRAM), là vùng không gian cho chứa các biến (tạm thời hoặc toàn cục) trong lúc thực thi chương trình, vùng này tương tự các thanh RAM trong máy tính nhưng có dung lượng khá nhỏ (khoảng vài KB, tùy thuộc vào loại Chip).
+ Phần 3: RAM ngoại (External SRAM), các Chip AVR cho phép người sử dụng gắn thêm các bộ nhớ ngoài để chứa biến, vùng này thực chất chỉ tồn tại khi nào người sử dụng gắn thêm bộ nhớ ngoài vào Chip.
+ Phần 4: EEPROM (Electrically ereasable programmable ROM) là một phần quan trọng của các Chip AVR mới, vì là ROM nên bộ nhớ này không bị xóa ngay cả khi không cung cấp nguồn nuôi cho Chip, rất thích hợp cho các ứng dụng lưu trữ dữ liệu. Như trong hình 2.54 phần bộ nhớ EEPROM được tách riêng và có địa chỉ tính từ 0x0000.
c. Cách thức hoạt động của Vi điều khiển AVR
Hình 2.57 biểu diễn cấu trúc bên trong của một AVR. Ta thấy rằng 32 thanh ghi Register file được nối trực tiếp với ALU bằng 2 line. Vì thế mà ALU có thể truy suất trực tiếp tới 2 thanh ghi Register file trong cùng một chu kỳ xung Clock.
Các lệnh được chứa trong bộ nhớ chương trình Flash memory dưới dạng các thanh ghi 16 bit. Bộ nhớ chương trình được truy cập trong mỗi chu kỳ xung Clock và mỗi lệnh chứa trong bộ nhớ chương trình được đưa vào trong thanh ghi lệnh Instruction register.
Các thanh ghi lệnh tác động và lựa chọn Register file cũng như RAM cho ALU thực thi. Trong lúc thực thi chương trình, địa chỉ của dòng lệnh đang thực thi được quyết định bởi một bộ đếm chương trình PC (Program counter). Đó chính là cách thức hoạt động của AVR.
AVR có ưu điểm là hầu hết các lệnh đều được thực thi trong 1 chu kỳ xung Clock, vì vậy có thể nguồn Clock lớn nhất cho AVR có thể nhỏ hơn một số vi điều khiển khác như PIC nhưng thời gian thực thi vẫn nhanh hơn.
Hình 2.52. Cấu trúc bên trong của AVR d. Cổng vào ra của Vi điều khiển AVR
Cổng vào ra là một trong số các phương tiện để Vi điều khiển giao tiếp với các thiết bị ngoại vi. Mỗi Chip có số cổng vào ra khác nhau. Các cổng vào ra của Vi điều khiển AVR đều là cổng vào ra hai chiều có thể định hướng được. Tất cả các chân của cổng đều được nối với điện trở kéo lên, ta có thể cho phép hay không cho phép điện trở này hoạt động.
Mỗi một cổng vào ra của Vi điều khiển được liên kết với ba thanh ghi PORTx, DDRx, PINx. Ba thanh ghi này sẽ được phối hợp với nhau để điều khiển hoạt động của cổng.
Thanh ghi DDRx: Đây là thanh ghi 8 bit có thể đọc ghi, có chức năng điều khiển hướng của cổng (là lối ra hay lối vào). Khi một bit của thanh ghi này được set lên 1 thì có nghĩa một chân tương ứng với nó được thiết lập là ngõ ra. Ngược lại nếu 1 bit của thanh ghi DDRx là 0 thì chân tương ứng với nó được thiết lập là ngõ vào.
Hình 2.54. Thanh ghi DDRA
Thanh ghi PORTx: Đây là thanh ghi 8 bit có thể đọc ghi, đây là thanh ghi dữ liệu của PORTx. Nếu một bit của thanh ghi này được thiết lập là 1 thì điện trở treo ở chân tương ứng của nó được kích hoạt, ngược lại nếu nếu bit này được thiết lập là 0 thì điện trở treo ở chân tương ứng sẽ không được kích hoạt, cổng ở trạng thái cao trở.
Hình 2.55. Thanh ghi PORTA
Thanh ghi PINx: Đây là thanh ghi chỉ đọc chứ không ghi, đây là địa chỉ trong bộ nhớ I/O kết nối trực tiếp các chân của cổng. Khi ta đọc PORTx tức là ta đọc dữ liệu được chốt trong PORTx, còn khi ta đọc PINx thì giá trị logic hiện thời ở chân của cổng tương ứng được đọc.
Bảng 1: Cấu hình các chân của cổng
DDRxn là bit thứ n của thanh ghi DDRx. PORTxn là bit thứ n của thanh ghi PORTx.
Dấu “x” ở cột thứ 3 là để chỉ giá trị logic là tùy ý.
e. Bộ định thời Timer/counter của AVR
Trong mỗi Chip của họ AVR được tích hợp số bộ định thời khác nhau. Có hai loại bộ định thời là bộ định thời 8 bit và bộ định thời 16 bit.
Hình 2.58. Sơ đồ khối bộ Timer/Counter 16 bit
Các thanh ghi có trong một bộ Timer (ở đây ta chọn bộ Timer 0 làm ví dụ): Thanh ghi TCCR0: Là thanh ghi điều khiển bộ Timer/Counter0, thanh ghi điều khiển này gồm 8 bit: FOC0, WGM00, COM01, COM00, WGM01, CS02, CS01, CS00 như hình vẽ:
Hình 2.59. Thanh ghi TCCR0
+ Bit 3 (WGM01) và bit 6 (WGM00) là các bit chọn chế độ hoạt động của Timer.
+ Bit 4 (COM00) và bit 5 (COM01) là các bít lựa chọn chế độ so sánh kết hợp. Nó điều khiển các ngõ ra so sánh ở pin OC0. Nếu một hoặc cả hai bit COM00 và COM01 bằng 1 thì ngõ ra OC0 thực hiện chức năng nhập dữ liệu từ các pin I/O kết nối với nó.
Bảng 3. Chế độ so sánh không PWM
+ Bit 2 (CS02) bit 1(CS01) và bit 0 (CS00) là các bit chọn nguồn xung để sử dụng cho bộ Timer hoạt động.
Thanh ghi TCNT0: Giá trị của thanh ghi này tăng giảm một đơn vị sau mỗi chu kỳ xung Clock. Thay đổi giá trị thanh TCNT0 khi đang hoạt động sẽ kéo theo những lỗi khi so sánh giữa hai thanh ghi TCNT0 và OCR0.
Hình 2.60. Thanh ghi TCNT0
Thanh ghi OCR0: Thanh ghi OCR0 chứa một giá trị 8 bit, giá trị này được so sánh liên tục với giá trị của thanh ghi Counter TCNT0. Phép so sánh này có thể được sử dụng để tạo ra hành động ngắt ở ngõ ra hay tạo xung ở ngõ ra tại chân OC0.
Thanh ghi TIMSK (Timer/Counter Interrupt Mask Register): Là thanh ghi mặt nạ ngắt.
Hình 2.62. Thanh ghi mặt nạ ngắt
+ Bít 1 (OCIE0): Khi bít này được thiết lập lên bằng 1 thì cho phép một ngắt so sánh. + Bít 0 (TOIE0): Khi bít này được thiết lập lên bằng 1 thì cho phép một ngắt tràn. Thanh ghi cờ ngắt TIFR (Timer/Counter interrupt flag register):
Hình 2.63. Thanh ghi cờ ngắt
+ Bit 1 (OCF0): Bit này được set lên mức 1 khi xảy ra sự so sánh khớp giữa thanh ghi TCCN0 và thanh ghi 0CR0. Cờ OCF0 sẽ được tự động xóa đi khi ngắt tương ứng được thực thi.
+ Bit 0 (TOV0): Được set lên mức 1 khi bộ định thời tràn và nó được xóa khi ngắt tương ứng được thực thi.
f. Các chế độ hoạt động của bộ Timer
Chế độ hoạt động thường: Đây là chế độ hoạt động đơn giản nhất của Timer. Bộ đếm sẽ liên tục đếm tăng lên cho đến khi vượt quá giá trị lớn nhất TOP và sau đó sẽ được khởi động lại tại giá trị BOTTOM. Trong các hoạt động thông thường thì cờ