[PIC] Hệ Thống Điều Khiển Quạt Điện Thông Minh Sử Dụng PIC16F877A

Hệ Thống Điều Khiển Quạt Điện Thông Minh

1.      Yêu cầu của đề tài

-         Quạt có 3 số điều khiển độc lập, có chức năng đảo chiều (tuýp năng), phun sương điều khiển bằng điện và điều khiển qua Bluetooth.

-         Bàn phím điều khiển gồm 6 phím nhấn:

·        3 phím nhấn: bật trực tiếp các số của quạt.

·        1 phím: bật/tắt chế độ đảo chiều.

·        1 phím: bật/tắt chế độ phun sương.

·        1 phím: chuyển từ số sang tự động, tắt quạt.

-         Cảm biến nhiệt độ: mô phỏng bằng biến trở cho điện áp ra trong phạm vi từ 0V đến 5V.

-         Thiết kế phần mềm điều khiển mô phỏng cho chế độ điều khiển qua Bluetooth.

2. Phân tích thiết kế

2.1  Linh kiện

a.      Vi điều khiển PIC16F877A

Hình 2.1: Sơ đồ chân của vi điều khiển PIC16F877A

Hình 2.2: Sơ đồ khối của vi điều khiển PIC16F777A

Tổ chức không gian bộ nhớ

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data Memory).

-         Bộ nhớ chương trình

Hình 2.3: Bộ nhớ chương trình của vi điều khiển PIC16F877A

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page 0 đến page 3). Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit).

Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13 bit (PC<12:0>). Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector).

-         Bộ nhớ dữ liệu

Hình 2.4: Bộ nhớ dữ liệu của vi điều khiển PIC16F877A

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia làm nhiều bamk. Đối với PIC16F877A, bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đich chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình xuất và làm giảm bớt lệnh của chương trình.

Các thông số cơ bản

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O.

v Các đặc tính ngoại vi bao gồm các khối chức năng sau:

·        Timer0: Bộ đếm 8 bit với bộ chia tần số 8 bit.

·        Timer1: Bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa

vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

·        Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.

·        Hai bộ Capture/so sánh/điều chế độ rông xung.

·        Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.

·        Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.

·        Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.

·        Đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit.

·        Hai bộ so sánh.

·        Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:

§  Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.

§  Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần. Dữ liệu bộ nhớ

EEPROM có thể lưu trữ trên 40 năm.

§  Khả năng tự nạp chương trình với sự điều khiển của phần mềm.

Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming)

§  Watchdog Timer với bộ dao động trong.

§  Chức năng bảo mật mã chương trình.

§  Chế độ Sleep.

§  Có thể hoạt động với nhiều dạng Oscillator khác nhau

b.      Màn hình LCD1602

Hình 2.5: Màn hình LCD1602

Giới thiệu

LCD 1602 (Liquid Crystal Display) được dùng trong rất nhiều các ứng dụng của VĐK. LCD 1602 có rất nhiều ưu điểm so với các dạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (kí tự đồ họa, chữ, số, ); đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau dễ dàng , tiêu tốn rất ít tài nguyên hệ thống, giá thành rẻ,…

Thông số kỹ thuật

-         Điện áp MAX : 7V

-         Điện áp MIN : - 0,3V

-         Điện áp ra mức thấp : <0.4V

-         Điện áp ra mức cao : > 2.4

-         Hoạt động ổn định : 2.7-5.5V

-         Dòng điện cấp nguồn : 350uA - 600uA

-         Nhiệt độ hoạt động : - 30 - 75 độ C

Chức năng từng chân của LCD1602

-         Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển.

-         Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển.

-         Chân số 3 - VE : điều chỉnh độ tương phản của LCD.

-         Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":

·        Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read).

·        Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

-         Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0” để ghi hoặc nối với logic “1” đọc.

-         Chân số 6 - E : chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này như sau:

·        Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.

·        Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.

-         Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7).

-         Chân số 15 - A : nguồn dương cho đèn nền.

-         Chân số 16 - K : nguồn âm cho đèn nền.

c.      Module Bluetooth HC – 06      

Giới thiệu

Với thiết kế nhỏ gọn, tiện lợi, giao tiếp với vi điều khiển chỉ bằng 2 chân (Tx và Rx), module bluetooth HC06 sẽ giúp bạn thực hiện các dự án truyền dẫn và điều khiển từ xa một cách dễ dàng.

Điểm khác biệt so với HC05 đó là HC06 chỉ có thể chạy được 1 chế độ Slave (khác với HC05 có thể hoạt động với chế độ Mater hoặc Slave). Điều này có nghĩa là bạn không thể chủ động kết nối từ vi điều khiển đến các thiết bị ngoại vi. Mà cách kết nối là: bạn phải sử dụng thiết bị ngoại vi (điện thoại thông minh, máy tính laptop) để dò tín hiệu kêt nối Buletooth mà HC06 phát ra. Sau khi pair thành công bạn có thể gửi tín hiệu từ vi điều khiển đến các thiết bị ngoại vi này, và ngược lại.

Thông số kỹ thuật

-         Điện áp hoạt động: 3V3-5V DC

-         Dòng điện tiêu thụ: 20-30mA

-         Nhiệt độ hoạt động: -20~75°C

-         Sử dụng chip: CSR Bluetooth V2.0

-         Cấu hình Slave mặc định, không thay đổi được.

-         Hỗ trợ tốc độ baud: 200,2400,4800,9600,19200,38400,57600,115200

-         Kích thước: 28x15x2,35mm

-         Giao tiếp: UART (TX,RX)

-         Tốc độ:

·        Bất đồng bộ: 2.1Mbps(Max)/160kbps

·        Đồng bộ: 1Mbps/1Mbps

-         Bảo mật: mã hóa và chứng thực

-         Cấu hình mặc định:

·        Tốc độ baud 9600, N, 8, 1

·        Mật khẩu: 1234

Hình 2.6: Module Bluetooth HC – 06

2.2  Các chức năng chính

-         Chế độ thủ công (Manual):

·        Người dùng có thể sử dụng bật độc lập 3 số để quạt hoạt động.

·        Trong khi bật số hoặc không bật số, có thể sử dụng một hoặc đồng thời chế độ quay (tuýp năng) hoặc phun sương.

-         Chế độ tự động (Auto):

·        Dựa vào nhiệt độ (t) thu được chuyển sang điện áp 0 – 5V.

·        Nếu nhiệt độ từ 0 – 1V thì bật số 1.

·        Nếu nhiệt độ từ 1 – 2V à bật số 2.

·        Nếu nhiệt độ từ 2 – 3V à bật số 3.

·        Nếu nhiệt độ từ 3 – 4V à bật số 3 và chế độ quay (tuýp năng).

·        Nếu nhiệt độ từ 4 – 5V à bật số 3, chế độ quay và phun sương.

-         Chế độ điều khiển qua Bluetooth: Sử dụng phần mềm điều khiển Window Form để mô phỏng.

2.3  Phần mềm điều khiển

-         Phần mềm dễ nhìn, dễ sử dụng.

-         Giao tiếp với Bluetooth qua chuẩn UART.

-         Tạo công tắc điều khiển và hình ảnh chuyển động của cánh quạt quay theo tốc độ phụ thuộc vào số đã được bật.

3.      Triển khai

3.1  Thiết kế phần cứng

v Sơ đồ khối:

Hình 3.1: Sơ đồ khối hệ thống

v Sơ đồ nguyên lý:

Hình 3.2: Sơ đồ nguyên lý của hệ thống

-         Bộ xử lý trung tâm: PIC16F877A với dao động thạch anh 20MHz và nút nhấn Reset hệ thống.

-         Bluetooth: ghép nối với Module Bluetooth HC – 06.

-         LCD: Màn hình LCD1602 hiển thị chế độ hoạt động cũng như trạng thái từng số khi được bật giúp người dùng dễ dàng sử dụng.

-         Nút nhấn: ở đây sử dụng 5 nút nhấn giữ trạng thái cho 3 số độc lập, chế độ quay (SW) và chế độ phun sương (MIST); 1 nút nhấn nhả MODE để thay đổi chế độ hoạt động cho hệ thống (Manual/Auto/Bluetooth).

-         Cảm biến nhiệt độ: sử dụng biến trở để mô phỏng cho cảm biến nhiệt độ, từ giá trị biến trở nhận được chia ra thành các khoảng từ 0 – 5V để điều chỉnh quạt chạy tự động theo nhiệt độ.

-         Mode: sử dụng 2 led đơn xanh và đỏ. Khi ở chế độ Manual, 2 led không sáng. Khi ở chế độ Auto thì led đỏ sáng, chế độ Bluetooth thì led xanh sáng.

-         Khối relay để sử dụng đầu ra với 220V:

Hình 3.3: Khối Relay

·        Khi tín hiệu từ chân RC0 đưa vào là mức 0 (Tức = 0V) thì Q4 không dẫn do không có dòng IBE à Relay không làm việc.

·        Khi tín hiệu từ chân RC0 đưa vào là mức 1 (Tức = 5V) thì sẽ qua R6 hạn dòng, Q4 dẫn thông lúc này ta có dòng Ice là dòng điện chạy qua cuộn dây à Q4 à Mass, Relay đóng tiếp điểm thường mở (Điều khiển thiết bị nào đó). Khí đó, led D8 sẽ sáng để báo thiết bị này đã được bật.

·        Diot D7 trong mạch có tác dụng chống lại dòng điện cảm ứng do cuộn đây sinh ra làm hỏng transistor.

Mục đích của R1 là tạo dòng vào cực B của trans tới ngưỡng bão hòa để trans hoạt động như 1 chiếc khóa có điều kiện.

Dòng vào của Tin hiệu là rất nhỏ không thể chạy thẳng Relay được nên sử dụng transistor để kích dòng cho Relay.

v Lưu đồ thuật toán:

Hệ thống sử dụng nút nhấn để thay đổi chế độ hoạt động (Manual/Auto/Bluetooth). Một biến đếm để nhận biết thay đổi trạng thái. Khi bắt đầu chương trình, tức mod = 0, hệ thống sẽ hoạt động ở chế độ Manual. Nút nhấn được sử dụng hàm ngắt, nối tới chân INT0, mỗi lần nhấn sẽ tăng lên một đơn vị.

·        Khi mod = 0: chế độ Manual.

·        Khi mod = 1: chế độ Auto.

·        Khi mod = 2: chế độ điều khiển qua Bluetooth.

·        Khi mod ≥ 3: mod = 0 à chế độ Manual.

Cụ thể, các chế độ hoạt động được dùng vào cách hoạt động như thế nào sẽ được trình bày ở hình 2.9, 2.10 và hình 2.11 dưới đây.

Hình 3.4: Lưu đồ thuật toán hệ thống

Hình 3.5: Lưu đồ thuật toán chế độ thủ công

Ở chế độ thủ công, người dùng vận hành hệ thống bằng cách nhấn nút nhấn giữ trạng thái. Về cách sử dụng nút nhấn đã được trình bày rõ ở trên lưu đồ thuật toán chế độ thủ công. Và đương nhiên, khi đang giữ nút K1 (bật số 1), ta không thể bật số 2 hay 3 mà phải tắt số 1 đi trước. Về chế độ phun sương (MI) và đảo chiều, tuýp năng (SW) có thể sử dụng cùng lúc trong khi bật số.

Hình 3.6: Lưu đồ thuật toán chế độ Auto

Chế độ Auto, hệ thống hoạt động tự động dựa trên nhiệt độ môi trường (ở đây có thể là phòng học, phòng ngủ,...), có thể sử dụng các cảm biến nhiệt thông dụng như LM35, DS18B20, DHT11,... Trong Proteus, sử dụng biến trở để mô phỏng cho cảm biến nhiệt độ, sau khi nhận được giá trị từ biến trở chuyển đổi tỉ lệ sang điện áp từ 0 – 5V. Dựa vào vào đó, ta chia thành 5 mức khác nhau để điều khiển quạt điện phù hợp.

Hình 3.7: Lưu đồ thuật toán chế độ Bluetooth

Khi hệ thống ở chế độ điều khiển qua Bluetooth, hệ thống sẽ chờ phần mềm điều khiển gửi lệnh để thực hiện (ký tự). Dựa vào các ký tự nhận được, ta sẽ gán nó phù hợp với những chế độ hoạt động của quạt. Ví dụ, hệ thống gửi ký tự ‘1’ à bật số 1, ký tự ‘2’ à tắt số 1. Cứ như vậy cho đến khi sử dụng hết chức năng của quạt điện.

3.2  Thiết kế phần mềm

3.2.1       Phần mềm Configure Virtual Serial Port Driver

Để mô phỏng điều khiển thiết bị qua Bluetooth, sử dụng phần mềm Configure Virtual Serial Port Driver để tạo 2 cổng COM giao tiếp với nhau.

Được xây dựng trên chức năng trình điều khiển cổng COM ảo, Virtual Serial Port Driver là một ứng dụng phần mềm mạnh mẽ và hiệu quả, Virtual Serial Port Driver hỗ trợ việc tạo ra các cổng nổi tiếp ảo và kết nối chúng theo cặp thông qua dây cáp ảo.

Virtual Serial Port Driver cho phép tách các cổng vật lý nối tiếp thành nhiều cổng giao tiếp ảo trong hệ thống giống như các bản sao, và khi kết nối với phần cứng chúng vẫn hoạt động một cách chính xác. Ngoài ra, tiện ích cũng cho phép chia sẻ các cổng nổi tiếp phần cứng giữa nhiều ứng dụng.

Cổng nối tiếp ảo được tạo từ Virtual Serial Port Driver có thể được điều khiển trực tiếp từ chính ứng dụng thông qua Dynamic Link Library được cấp với VSPD. Link giữa các cổng nối tiếp ảo nhanh hơn nhiều so với kết nối dây cáp null-modem thực và chỉ phụ thuộc vào tốc độ xử lý.

Hình 3.8: Giao diện của phần mềm Configure Virtual Serial Port Driver

Để tạo 2 cổng COM ảo ta chỉ chần chọn “Add pair”, thao tác dễ dàng và dễ sử dụng. Từ đó, trên phần mềm mô phỏng, phần Bluetooth chọn COM1 và phần mềm điều khiển chọn COM2 hoặc ngược lại, là ta có thể giao tiếp giữa phần mềm và mô phỏng với nhau. Lưu ý: các thông số truyền phải giống nhau (ví dụ như Baudrate, Data Bits,...)

3.2.2       Phần mềm điều khiển

Hình 3.9: Giao diện của phần mềm điều khiển

-         Simulation: Mô phỏng hoạt động của quạt khi điều khiển, dựa vào các số điều khiển mà quạt quay với tốc độ khác nhau.

-         COM Port Control: ComboBox hiển thị những Port hiện có trên máy tính, Button “Open” mở cổng COM được chọn ở ComboBox để bắt đầu truyền dữ liệu, nếu COM đang được sử dụng sẽ hiện cảnh báo và người dùng phải chọn COM khác để kết nối. Khi kết nối thành công, trạng thái Status sẽ là “ON” và thanh Process Bar sẽ hoạt động. Button “Close”, đóng kết nối với cổng COM, Status là “OFF” và Process Bar trở về trạng thái ban đầu.

-         Display: Sử dụng Picture Box để mô phỏng cho các bóng LED, khi chế độ nào được bật, LED tương ứng sẽ được bật sang màu xanh.

-         Control: Gồm những nút nhấn được sử dụng Picture Box để mô phỏng, khi bật công tắc ở đây thì mô phỏng Simulation quạt sẽ quay với các số tương ứng, LED tương ứng ở phần Display sẽ được bật. Và không thể bật cùng lúc 2 số, muốn đổi số phải tắt số đang bật.

Xem cách vận hành hệ thống:


PROJECT:
Schematic: Tại đây
Phần mềm điều khiển Window Form: Tại đây

Chúc Các Bạn Thành Công!

Đinh Xuân Hậu

Đinh Xuân Hậu Trường: Đại học Sư phạm Kỹ thuật Hưng Yên Khoa: Công nghệ Thông tin Bộ môn: Hệ thống Thông tin

Đăng nhận xét

Mới hơn Cũ hơn