ĐIỀU KHIỂN ĐỘNG cơ DC QUA BLUETOOTH DÙNG PIC (có code và layout) ĐIỀU KHIỂN ĐỘNG cơ DC QUA BLUETOOTH DÙNG PIC (có code và layout) ĐIỀU KHIỂN ĐỘNG cơ DC QUA BLUETOOTH DÙNG PIC (có code và layout) ĐIỀU KHIỂN ĐỘNG cơ DC QUA BLUETOOTH DÙNG PIC (có code và layout) ĐIỀU KHIỂN ĐỘNG cơ DC QUA BLUETOOTH DÙNG PIC (có code và layout)
Trang 1ĐIỀU KHIỂN ĐỘNG CƠ DC QUA
BLUETOOTH DÙNG PIC
Trang 2CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1
2.2.1 Vi điều khiển PIC 16F887 32.2.1.1 Các đặc tính ngoại vi 4
2.2.1.2 Sơ đồ chân, chức năng các chân PIC16F887 5
2.2.1.3 Bộ định thời Timer 6
2.2.1.4 Bộ nhớ chương trình7
2.2.2 Động cơ DC 92.2.2.1 Định nghĩa 9
2.2.2.2 Cấu tạo của động cơ DC9
2.2.3 Relay RY136-K 102.2.3.1 Định nghĩa 10
2.2.3.2 Cấu trúc của Relay 10
2.2.4 Module Bluetooth HC-05 112.2.4.1 Giới thiệu 11
2.2.4.2 Nguyên lý hoạt động 12
2.2.4.3 Phần mềm trên Smartphone Android 13
CHƯƠNG 3 THI CÔNG MẠCH 19
3.1 SƠ ĐỒ NGUYÊN LÝ 19
3.2 LƯU ĐỒ GIẢI THUẬT 20
3.3 MẠCH LAYOUT 21
Trang 34.1.1 Ưu điểm 234.1.2 Nhược điểm 23
TÀI LIỆU THAM KHẢO 24
PHỤ LỤC A 25
Trang 4HÌNH 2.1: SƠ ĐỒ CHÂN PIC 16F887
……….5
Hình 2.2: Chức năng các chân của PIC16F887 6
Hình 2.3: Bộ nhớ chương trình 7
Hình 2.4: Động cơ DC 8
Hình 2.5: Module bluetooth HC-05 11
Hình 3.1: Sơ đồ nguyên lý………18
Hình 3.2: Lưu đồ giải thuật 19
Hình 3.3: Mạch layout 21
Hình 3.4: Mạch thực tế 22
Trang 5PIC Programmable Intelligent Computer
ADC Analog Digital Converter
EEPROM Electrically Erasable Programmable Read - Only Memory
PC Program Counter
Trang 6CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu
Ngày nay, công nghệ tự động hóa hay kỹ thuật vi điều khiển đang ngày càngphát triển hơn trong cuộc sống của chúng ta Các mạch điện tử được cấu tạo để cóthể điều khiển qua các thiết bị điện tử thông minh khác
Đề tài này có tên là “Điều khiển động cơ DC qua Bluetooth dùng PIC” đượcthực hiện dựa trên sự kết hợp giữa vi điều khiển Pic, động cơ DC và giao tiếpBluetooth bằng điện thoại thông minh (Smartphone) được viết trên chương trìnhngôn ngữ C++ Theo đó, sản phẩm thiết kế này có khả năng ứng dụng trong thực tếcao vì rất nhiều thiết bị hay các sản phẩm sử dụng tới động cơ DC, đi kèm là bướccải tiến với sản phẩm đã được điều khiển qua bluetooth kèm theo đó là mật khẩu cótính bảo mật cao hơn nhằm tránh tình huống xấu
1.2 Mục tiêu
Sự cần thiết, quan trọng cũng như tính khả thi và lợi ích của mạch số cũngchính là lý do em chọn và thực hiện đề tài “điều khiển động cơ DC qua Bluetoothdùng PIC” này nhằm vận dụng kiến thức đã học vào thực tế
Những yêu cầu của đề tài trên như sau:
- Mạch động cơ DC chạy thuận nghịch
- Mạch được điều khiển qua Bluetooth trên điện thoại thông minh
- Thiết kế phần mềm giao tiếp Bluetooth trên điện thoại Android có giaodiện đăng nhập mật khẩu bảo mật
Trang 7CHƯƠNG 2 THIẾT KẾ HỆ THỐNG
1.3 SƠ ĐỒ KHỐI HỆ THỐNG
2.1 Sơ đồ khối
Hình 1.1: Sơ đồ khối
2.2 Chức năng của các khối trong mạch
Mạch được thiết kế bao gồm các khối tạo thành: khối nguồn, khối modulebluetooth, khối vi xử lý, khối relay điều khiển động cơ DC, khối động cơ DC
Khối nguồn: đây là nơi cấp nguồn điện cho cả toàn mạch động cơ DC
Khối vi xử lý: đây là nơi trung tâm của toàn mạch, nơi xử lý các dữ liệu nhận
từ module HC-05 truyền tới PIC16F887 rồi khi xử lý xong sẽ truyền tín hiệu đầu rakhối Relay
Trang 8 Khối Relay điều khiển động cơ: chức năng chinhscuar Relay là đóng hoặc
mở để điều khiển động cơ khi có dòng điện chạy qua, khi có dòng điện từ vi xử lýPIC16F887 chạy qua sẽ kích hoạt Relay đang ở trạng thái tiếp điểm thường hởthành thường đóng để cho dòng điện chạy qua điều khiển động cơ DC
Khối động cơ: chức năng của khối này là thực hiện khi có dòng điện chạyqua, là khi có dòng điện chạy qua từ Relay nào thì sẽ quyết định được động cơ sẽquay theo chiều thuận hay nghịch
1.4 LINH KIỆN CHÍNH TRONG MẠCH
2.3 Vi điều khiển PIC 16F887
PIC 16F887 là dòng PIC phổ biến nhất hiện nay (đủ mạnh về tính năng, 40chân, bộ nhớ đủ cho hầu hết các ứng dụng thông thường) Cấu trúc tổng quát củaPIC16F887 như sau:
Bộ nhớ chương trình Flash 8 K ROM cho phép xóa và lập trình lên đến100.000 lần
368 x 8 Bytes SRAM
256 x 8 Bytes EEPROM
5 ports A, B, C, D và E xuất/nhập với tín hiệu điều khiển độc lập
2 bộ định thời 8 bits đó là Timer 0 và Timer 2
Một bộ định thời 16 bits đó là bộ định thời Timer 1 được hoạt động trong chế
độ tiết kiệm năng lượng với nguồn xung Clock ở ngoài
Gồm 2 bộ CCP ( Capture / Compare/ PWM)
Có 1 bộ biến đổi ADC 10 bits và 8 ngõ vào
Có 2 bộ so sánh tương tự
Có 1 bộ định thời để giám sát
Có 1 cổng song song với 8 bits gồm các tín hiệu điều khiển
Gồm 1 cổng nối tiếp và còn có 15 nguồn ngắt
35 tập lệnh có độ dài 14 bits dữ liệu
Tần số hoạt động tối đa của PIC16F887 là 20MHz
Trang 92.3.1 Các đặc tính ngoại vi
Timer0: bộ đếm 8 bit với bộ chia tần số cũng 8 bit
Timer1: bộ đếm 16 bit có thể thực hiện chức năng đếm dựa vào xungclock ngoại vi khi vi điều khiển hoạt động ở trạng thái chế độ sleep
Timer2: bộ đếm 8 bit với bộ chia tần số đó là bộ postcaler
Hai bộ Capture/so sánh/điều chế độ rộng xung
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ
8 kênh chuyển đổi ADC 10 bit
Bộ nhớ flash với khả năng ghi xóa chương trình được 100.000 lần
Cổng nhớ EEPROM với khả năng ghi xóa dữ liệu chương trình được1.000.000 lần
Dữ liệu bộ nhớ EEPROM có thể lưu trữ rất lâu lên tới 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 bênthứ 3 Nạp được chương trình, ngay trên mạch điện ICSP thông qua 2 chân nạp.Watchdog Timer với bộ dao động trong chương trình
Chức năng bảo mật mã chương trình với độ an toàn cao
Có chế độ Sleep trong
Hoạt động cùng nhiều dạng Oscillator khác nhau
Trang 102.3.2 Sơ đồ chân, chức năng các chân PIC16F887
Sơ đồ chân :
Hình 2.1: Sơ đồ chân PIC 16F887PIC16F887 tất cả có 35 chân I/O mục đích thông thường và 5 chân chức năng
có thể được sử dụng
35 chân I/O này được chia thành 5 port:
Port A cấu thành gồm 8 chân
Port B cấu thành gồm 8 chân
Port C cấu thành gồm 8 chân
Port D cấu thành gồm 8 chân
Port E cấu thành gồm 3 chân
Mỗi port được điều khiển bởi 2 thanh ghi 8 bit, thanh ghi Port và thanh ghi Tris Thanh ghi Tris được sử dụng để điều khiển port nhập hay xuất dữ liệu xử lý Mỗi bitcủa Tris sẽ điều khiển mỗi chân của Port điều khiển đó, nếu giá trị bit ở mức là 1 thìchân liên quan là chân nhập, ngược lại nếu giá trị bit ở mức là 0 thì chân liên quan
là chân xuất dữ liệu
Trang 11Hình 2.2: Chức năng các chân của PIC16F887
2.3.3 Bộ định thời Timer
Vi điều khiển PIC16F887 gồm có 3 bộ định thời Timer là bộ Timer0, bộTimer1 và bộ Timer2
Bộ định thời Timer0: là bộ đếm 8 bit được kết nối với bộ chia tần 8 bit
Bit TMR0IE (INTCON<5>): là bit điều khiển của bộ Timer0
Khi bit TMR0IE = 1: cho phép thực hiện ngắt bộ Timer0
Khi bit TMR0IE = 0: không cho phép thực hiện ngắt Timer0
Trang 12 Bộ định thời Timer1: là bộ định thời gồm 16 bit, giá trị của bộ Timer1 được
lưu trong thanh ghi TMR1H:TMR1L
Cờ ngắt của bộ Timrer1 là bit TMR1IF, bit điều khiển của Timer1 làTMR1IE
Tương tự như bộ định thời Timer0, bộ định thời Timer1 cũng có 2 chế độhoạt động: chế độ định thời và chế độ xung kích là xung clock của osciled ma trận.Chế độ hoạt động của bộ định thời Timer được điều khiển bởi bit TMR1CS
Bộ Timer2: là bộ định thời gồm 8 bit và đã được hỗ trợ hai bộ chia tần là bộ
prescaler và bộ postscaler
Thanh ghi chứa các giá trị đếm của Timer2 là TMR2
Bit cho phép ngắt bộ Timer2 tác động vào được là bit TMR2ON
Cờ ngắt của bộ Timer2 là bit TMR2IF
Xung ngõ vào được đưa qua bộ chia tần số của prescaler 4 bit và được điềukhiển bởi 2 bit T2CKPS1 và T2CKPS0
2.3.4 Bộ nhớ chương trình
Bộ nhớ chương trình gồm có:
Bộ nhớ chương trình của vi điều khiển PIC16F887 có dung lượng 8K bytesđược chia làm 4K bytes trang của bộ nhớ, mỗi trang gồm 2K bytes
Trang 13Hình 2.3: Bộ nhớ chương trìnhThanh ghi bộ đếm của chương trình PC sẽ là quản lý địa chỉ của bộ nhớ chươngtrình PIC Khi vi điều khiển PIC16F887 bị reset thì thanh ghi PC có giá trị củathanh ghi là 0000H và PIC sẽ bắt đầu thực hiện chương trình tại thanh địa chỉ0000H Khi có bất kỳ một ngắt nào tác động thì PIC16F887 sẽ thực hiện chươngtrình phục vụ ngắt tại thanh địa chỉ 0004H
Trang 142.4.2 Cấu tạo của động cơ DC
Động cơ DC bao gồm 3 phần chính đó là Stator, Rotor và cuối là phần chỉnhlưu
- Stator của động cơ điện 1 chiều thường là một hay nhiều cặp nam châm vĩnhcửu
- Rotor có các cuộn dây quấn lại theo vòng và được nối với nguồn điện một chiềuDC
- Bộ phận chỉnh lưu là bộ phận có nhiệm vụ đổi chiều dòng điện khi chuyển độngquay của rotor là liên tục Thông thường bộ phận này gồm 2 bộ, một bộ cổ góp vàmột bộ chổi than tiếp xúc với cổ góp
Trang 152.5.2 Cấu trúc của Relay
Dạng phổ biến nhất của Relay cơ kích bằng dòng điện gồm một cuộn cảm dâyđiện được cuốn ngoài thân một lõi sắt từ Bộ phận này có cả một phần gọi là phầntĩnh là Ách từ và một phần gọi là phần động, là Phần ứng Phần ứng này được liênkết cơ học với một tiếp điểm động để tạo thành Relay
Khi cuộn dây được cấp nguồn điện, từ trường tại đó được tạo ra xung quanhcuộn và được lõi sắt từ tập trung lại nơi nam châm điện này hút phần ứng động để
mở hoặc đóng trực tiếp các tiếp điểm điện của Relay đó
Khi Relay bị ngắt điện tức là đang tắt thì từ trường biến mất và phần ứng, được
lò xo phản hồi hỗ trợ, đưa tiếp điểm trở lại vị trí “bình thường” của nó là thường hởhoặc thường đóng tùy cấu trúc của Relay
Hình 2.5: Relay RY136-K
Trang 162.6 Module Bluetooth HC-05
2.6.1 Giới thiệu
Bluetooth là chuẩn mạng không dây để trao đổi các dữ liệu ở khoảng cách ngắn.Chuẩn mạng truyển thông này sử dụng sóng tần số radio ngắn trong dải tần số 2.4tới 2.485 GHz Khoảng cách truyền và nhận của module này vào khoảng 10m.Module Bluetooth HC-05 được thiết kế dựa trên chíp BC417 Việc sử dụngmodule này dễ dàng hơn bởi vì nhà sản xuất đã tích hợp mọi thứ cho chúng ta trênmodule bluetooth HC-05
Hình 2.6: Module bluetooth HC-05
Sơ đồ chân module Bluetooth HC-05 gồm có:
Key: chân này sẽ thực hiện kết nối chế độ hoạt động AT Mode hoặc Data Mode.VCC: chân VCC dùng để cấp nguồn 3.6V đến 6V Bên trong module này đã cómột IC nguồn để tự động chuyển về điện áp 3.3V rồi cấp cho IC BC417
GND: nối với chân nguồn GND của mạch
TXD, RND: đây là hai chân UART để giao tiếp module hoạt động ở mức logic3.3V
Trang 17STATE: chúng ta không dùng tới chân này.
2.6.2 Nguyên lý hoạt động
HC-05 bao gồm hai chế độ hoạt động là: Command Mode và Data Mode Ở chế
độ Command Mode này ta giao tiếp với module Bluetooth HC-05 thông qua cổngserial trên module bằng tập câu lệnh AT Ở chế độ Data Mode này thì module cóthể truyền nhận dữ liệu tới module Bluetooth khác Có chân KEY dùng để chuyểnđổi qua lại giữa hai chế độ này
Nếu ta đưa chân này lên mức logic ở mức cao trước khi cấp nguồn thì module
sẽ đưa vào chế độ Command Mode với baudrate mặc định của nó là 38400 Chế độnày sẽ hữu ích khi chúng ta không biết baudrate trong module Bluetooth được thiếtlập ở tốc độ bao nhiêu Khi ta chuyển sang chế độ này đèn led trên module sẽ nháychậm (khoảng 2s) và ngược lại thì khi chân KEY nối với mức logic thấp trước khicấp nguồn module sẽ hoạt động chế độ Data Mode
Nếu module Bluetooth đang hoạt động ở chế độ Data Mode để đưa module nàyvào hoạt động tại chế độ Command Mode ta sẽ đưa chân KEY lên mức logic mứccao Lúc này module Bluetooth vào chế độ Command Mode nhưng với tốc độ BaudRate được tại lần thiết lập cuối cùng của bạn Vậy chúng ta phải biết baudrate hiệntại của thiết bị để có thể tương tác kết nối được với nó Chú ý nếu module Bluetoothchưa được chỉnh sửa thì mặc định của nó như sau:
Baudrate: 9600, data: 8 bits, stop bits: 1, handshake: none, parity : none
Trang 18Ở chế độ MASTER: module Bluetooth HC-05 sẽ tự động dò tìm thiết bịbluetooth khác như là usb bluetooth, bluetooth của laptop hay điện thoại cóBluetooth ) và tiến hành pair chủ động mà không cần thiết lập cài đặt gì từ máytính hoặc smartphone.
2.6.3 Phần mềm trên Smartphone Android
Dựa trên yêu cầu của đề tài và các ý tưởng được xây dựng em đã làm ứng dụngtrên App Inventor để có thể kết nối được giữa mạch động cơ DC và điện thoại thôngminh qua giao thức Bluetooth kèm theo đó là bảo mật phần mềm bằng mật khẩu
Thiết kế giao diện và chương trình phần mật khẩu trong phần mềm:
Giao diện đăng nhập mật khẩu thiết kế có hình ảnh như sau:
Hình 2.7: Giao diện đăng nhập mật khẩuChương trình cho phần nhập mật khẩu bảo mật:
Trang 20 Thiết kế giao diện và chương trình phần kết nối và điều khiển mạch qua giao thức Bluetooth:
Giao diện màn hình kết nối và điều khiển:
Trang 21Hình 2.8: Giao diện kết nối và điều khiểnChương trình để kết nối và điều khiển động cơ DC qua giao thức Bluetooth:
Trang 23Cách sử dụng phần mềm:
Khi ta mở ứng dụng này lên thì màn hình sẽ hiển thị phần đăng nhập mật khẩu.Tại đây mình ấn mật khẩu để đăng nhập, khi nhập đúng mật khẩu thì tại ô hiển thịmật khẩu sẽ chuyển sang màu xanh và chuyển sang màn hình kết nối Bluetooth vàcác nút điều khiển, còn nếu nhập mật khẩu sai thì ô mật khẩu chuyển sang màu đỏcảnh báo sai mật khẩu và không cho vào màn hình kết nối
Sau khi vào màn hình kết nối và bộ nút điều khiển, ta chỉ việc kết nối Bluetoothgiữa điện thoại với moduel HC-05 với nhau để có thể điều khiển động cơ DC quađiện thoại được
Trang 24CHƯƠNG 3 THI CÔNG MẠCH
1.5 SƠ ĐỒ NGUYÊN LÝ
Hình 3.1: Sơ đồ nguyên lý
Nguyên lý hoạt động:
Khi ta cấp nguồn điện vào mạch, dòng điện sẽ đi qua khối nguồn tạo điện áp
DC ổn định có giá trị 5V đầu ra rồi cấp vào vi điều khiển Dòng đi qua khối Relay
có dòng điện là 12V và đang ở chế độ thường hở Sau khi ta cấp nguồn cho mạchrồi, tiếp theo mở phần mềm trên điện thoại Android, đăng nhập mật khẩu bảo mật
để có thể vào phần kết nối Bluetooth với mạch động cơ DC Ở phần mềm sẽ có cácnút là “kết nối”, “chạy thuận”, “chạy nghịch”, “dừng” thì mỗi nút sẽ có các chứcnăng tương ứng Khi ta ấn nút nào thì data sẽ được truyền tới module BluetoothHC-05 tiếp tục truyền tới vi xử lý để xử lý dữ liệu rồi truyền ra khối Relay để có thểchấp hành mà có thể đóng mở Relay theo tín hiệu cao thấp mà vi xử lý đưa ra Khitín hiệu được đưa ra rồi thì sẽ có dòng điện chạy qua Relay để tới động cơ DC làm
Trang 25cho động cơ DC chạy thuận chạy nghịch hoặc dừng lại tùy theo các thiết lập màmình cài đặt trong chương trình.
1.6 LƯU ĐỒ GIẢI THUẬT
Hình 3.2: Lưu đồ giải thuật
Trang 26Giải thích:
Khi ta bắt đầu kết nối bluetooth từ điện thoại thông minh với mạch điện, thì phảitrải qua quá trình nhập mật khẩu thì sau đó mới kết nối được Khi đã kết nối đượcgiữa 2 thiết bị là điện thoại và module Bluetooth HC-05, lúc này ở phần mềm trênđiện thoại có các nút nhấn Ta nhấn nút bất kỳ thì data sẽ truyền tới module sau đótới vi xử lý có nhiệm vụ xử lý dữ liệu rồi xuất ra tín hiệu ở mức cao hay thấp để cóthể điều khiển được động cơ chạy thuận, nghịch hay dừng động cơ
Trang 271.8 MẠCH THỰC TẾ
Hình 3.4: Mạch thực tếSau khi mạch cứng được thi công hoàn tất, cuối cùng là ta nạp chương trình vào
vi xử lý PIC16F887 để mạch có thể hoạt động được
Trang 29TÀI LIỆU THAM KHẢO
[1] Giáo trình vi điều khiển – Phạm Hùng
[2] Giáo trình mạch xung – Th Lương Văn Sơn
[3] http://ai2.appinventor.mit.edu/
[4] www.picvietnam.com
[5] http://alldatasheet.com
[6] http://dientuvietnam.net
Trang 30l1=l2=0;//dong co o trang thai dung
trisd = 0x00;//xuat port d