Professional Documents
Culture Documents
ĐỒ ÁN HỆ THỐNG NHÚNG
ĐỒ ÁN HỆ THỐNG NHÚNG
GV HƯỚNG DẪN
MỤC LỤC
2.1 SƠ ĐỒ KHỐI: 5
2.2 KHỐI NGUỒN 6
2.3 KHỐI XỬ LÝ: 7
2.4 KHỐI BLUETOOTH: 13
2.5 ĐÈN: 16
Phụ lục A
0
C Độ C
dB Decibel
GND Đất
I2C Mạch tích hợp
IC Mạch tích hợp
LCD Màn hình LCD
PLC Programmable Logic Controller
RH Độ ẩm tương đối
SCL Dòng đồng hồ nối tiếp
SD Secure Digital
SDA Serial Data Line
SPI Giao diện ngoại vi nối tiếp
VAC Điện áp xoay chiều
VCC Bộ thu điện áp tới bộ thu
VDC Điện áp dòng điện trực tiếp
VDD Voltage Drain Drain
VEE Voltage Emitor Emitor
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 1/30
Hiện nay, với nền công nghệ 4.0 các thiết bị điện tử đang được sử dụng rộng rải và
ngày càng phổ biến cùng với đó là các bài toán về điều khiển động cơ hiệu quả, linh
hoạt và tiết kiệm chi phí. Và em quyết định chọn đề tài “điều khiển động cơ DC
nhiều chế độ” với lý do tối ưu hóa hiệu suất làm việc của động cơ DC thông qua
việc điều chỉnh linh hoạt tốc độ và hướng quay, đáp ứng nhanh chóng và chính xác
yêu cầu của các ứng dụng khác nhau cùng vớ việc mở rộng khả năng ứng dụng của
công nghệ điều khiển động cơ, tăng khả năng tương thích với nhiều nền tảng và
giao thức giao tiếp. Bên cạnh đó việc sử dụng IC L298 giúp giảm thiểu các thiết bị
cần sử dụng và chi phí chi tiêu. Động cơ DC được sử dụng rộng rãi trong nhiều ứng
dụng công nghiệp, robot, và các thiết bị tự động khác. Việc điều khiển linh hoạt các
động cơ này là yêu cầu quan trọng trong nhiều dự án , việc điều chỉnh tốc độ, hướng
quay của động cơ DC một cách chính xác là cần thiết trong nhiều ứng dụng. IC
L298 cho phép hỗ trợ điều chỉnh tốc độ và hướng quay, đáp ứng nhu cầu này.
Để có thể làm được bài viết này, đầu tiên, chúng ta cần tìm hiểu tổng quan về hệ
thống đèn led, tìm hiểu các loại Bluetooth tương ứng cũng như tìm hiều về phần
mềm proteus và phần mềm App MIT Inventor. Sau đó thiết kế sơ đồ khối và sơ đồ
nguyên tắc. Tiếp theo, chúng ta sẽ thiết lập và lắp ráp mạch với cảm biến Bluetooth.
Tiếp theo, chúng ta sẽ lập trình giao diện giữa máy tính và cảm biến Bluetooth và
tạo ra phần mềm App MIT Inventor. Sau khi lập trình xong, giao diện sẽ được ghi
trên máy tính. Cuối cùng, chúng tôi sẽ thử nghiệm và hoàn thiện sản phẩm.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 2/30
Sau khi chúng ta đã tìm hiểu tổng quan về hệ thống đèn led kết nối cũng như phát
tín hiệu với Bluetooth HC06 và tìm hiểu các loại cảm biến, sơ đồ khối thiết kế và sơ
đồ nguyên tắc. Tiếp theo, chúng tôi thiết kế và lắp ráp mạch cảm biến về nhiệt độ,
độ ẩm và tiếng ồn. Chúng tôi sử dụng PIC 16F877A để đọc các giá trị cảm biến
bằng cách chúng tôi viết mã cho cảm biến và sau đó chúng tôi tải chương trình lên
mạch, nhấn Ctrl + Shift + M để mở cửa sổ màn hình nối tiếp và xem kết quả đo
được từ con cảm biến. Phương pháp thử nghiệm bằng cách kiểm tra nhiều lần cho
đến khi đạt được kết quả mong muốn.
Sau khi chúng tôi hoàn thành việc thiết kế và lắp ráp các mạch cho cảm biến. Tiếp
theo, chúng ta sẽ lập trình giao tiếp giữa máy tính và các cảm biến. Và viết giao
diện trên máy tính. App MIT Inventor hỗ trợ nhiều ngôn ngữ lập trình khác nhau và
cho phép trình soạn thảo mã và trình gỡ lỗi hỗ trợ (ở các mức độ khác nhau) hầu hết
mọi ngôn ngữ lập trình. Nó cho phép xây dựng nhanh chóng những phần mềm cơ
bản của một ứng dụng Android như: nút nhấn, nút lựa chọn, …. Sử dụng nhiều tính
năng trên điện thoại: chụp ảnh, quay phim, chọn ảnh và bật chế độ video hoặc
audio, …. Ngoài ra, nó còn hỗ trợ xây dựng game bằng các components như: ball,
canvas. Nó hỗ trợ lưu trữ đọc hoặc lưu tệp txt,csv, sử dụng fusiontables control, tạo
cơ sở dữ liệu đơn giản trên điện thoại hoặc trên đám mây thông qua server tự tạo
hoặc firebase. Chúng còn điều khiển robot thông qua LegoMindstorms. Và còn rất
nhiều mở rộng do các nhà lập trình hoạt động riêng liên tục thêm vào như: báo thức,
cảm biến ánh sáng, kết nối dữ liệu SQLite, …
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 3/30
2.1 Sơ đồ khối:
Khối hiển thị: Nó được sử dụng với ưu điểm là để tạo ra ánh sáng. Ngoài ra, nó còn
được sử dụng như tấm tản nhiệt để hấp thụ nhiệt do chúng ta tạo ra và tản ra môi
trường xung quanh.
Khối Bluetooth: Khối có chức năng truyền/nhận dữ liệu giữa các phần mềm trên
điện thoại di động (hoặc một thiết bị khác) với khối điều khiển trung tâm thông qua
chuẩn Bluetooth. Khối Bluetooth và khối điều khiển giao tiếp với nhau thông qua
chuẩn UART. Khối sử dụng để phần mềm trên điện thoại gửi lệnh điều khiển thời
gian sáng đèn qua kết nối Bluetooth.
Nguồn điện: Nguồn điện có điện áp đầu vào 12VAC, công suất đầu ra và điện áp
đầu ra phù hợp với thiết bị và mô-đun với điện áp đầu ra là 5VDC.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 4/30
Khối xử lý: Nhiệm vụ điều khiển toàn bộ thiết bị báo động bao gồm: lấy dữ liệu từ
các cảm biến, thời gian thực từ khối đồng bộ hóa thời gian, đọc/ghi dữ liệu trên khối
lưu trữ dữ liệu và hiển thị các thông số trên khối hiển thị. Khối điều khiển trung tâm
cũng có nhiệm vụ giao tiếp với phần mềm trên máy tính để thực hiện các yêu cầu từ
người dùng: tải dữ liệu trên khối lưu trữ dữ liệu về máy tính, đồng bộ hóa thời gian
cho các khối đồng bộ hóa thời gian theo thời gian trên máy tính, cấu hình lại thời
gian lấy mẫu, cấu hình lại loại tên tệp dữ liệu để ghi vào khối lưu trữ dữ liệu, ....
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 5/30
Đầu ra của khối cung cấp Vin cần đảm bảo điện áp là 5VDC và công suất phải lớn
hơn 2W. Do đó, đầu vào của khối nguồn yêu cầu điện áp cao hơn 5VDC và công
suất cao hơn 2W. Trong chủ đề tôi đã chọn bộ điều hợp nguồn với các thông số đầu
ra là 12VAC / 1A. Nguồn 12VAC được cung cấp cho J1.
Tụ điện C1, C2 là bộ lọc năng lượng và cũng là bộ lưu trữ điện khi nguồn cung cấp
bên ngoài bị thiếu. Thông thường giá trị tụ điện được chọn 33pF với điện áp lớn
hơn điện áp sử dụng từ 10% -30%. Ở đây tôi chọn một tụ điện có giá trị 33pF / 16V.
LM 7805 là IC ổn định điện áp với đầu ra 5VDC để cung cấp cho bo mạch PIC. Với
yêu cầu điện áp 5VDC và công suất phải lớn hơn 2W, tôi chọn điện áp LM 7805
với điện áp đầu vào từ 7 - 18VDC và dòng điện đầu ra là 1A (tương đương 5W).
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 6/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 7/30
• Một nút nhấn và một điện trở được kết nối đến chân này. Chân MCLR này luôn
được cấp điện áp 5V. Khi muốn khởi động lại mạch. Chỉ cần nhấn vào nút nhấn thì
chân MCLR sẽ được đưa về 0 và mạch được đặt lại.
+ Chân RA0/AN0/ULPWU/C12IN0 (2): có 4 chức năng:
• RA0: xuất/ nhập số.
• AN0: ngõ vào tương tự của kênh thứ 0.
• ULPWU (Ultra Low-power Wake up input): ngõ vào đánh thức CPU công suất
cực thấp.
• C12IN0 (Comparator C1 or C2 negative input): ngõ vào âm thứ 0 của bộ so sánh
C1 hoặc C2.
+ Chân RA1/AN1/C12IN1 (3): có 3 chức năng:
• RA1: xuất/nhập số - bit thứ 1 của port A.
• AN1: ngõ vào tương tự của kênh thứ 1.
• C12IN1: ngõ vào âm thứ 1 của bộ so sánh C1 hoặc C2.
+ Chân RA2/AN2/VREF-/CVREF/C2IN+ (4): có 5 chức năng:
• RA2: xuất/nhập số - bit thứ 1 của port A.
• AN2: ngõ vào tương tự của kênh thứ 2.
• VREF-: ngõ vào điện áp chuẩn (thấp) của bộ ADC.
• CVREF: điện áp tham chiếu VREF ngõ vào bộ so sánh.
• C2IN+: ngõ vào dương của bộ so sánh C2.
+ Chân RA3/AN3/VREF+/C1IN+ (5): có 4 chức năng:
• RA3: xuất/nhập số.
• AN3: ngõ vào tương tự của kênh thứ 3.
• VREF+: ngõ vào điện áp chuẩn (cao) của bộ A/D.
• C1IN+: ngõ vào dương của bộ so sánh C1.
+ Chân RA4/TOCKI/C1OUT (6): có 3 chức năng:
• RA4: xuất/nhập số.
• TOCKI: ngõ vào xung clock từ bên ngoài cho timer0.
• C1OUT: ngõ ra bộ so sánh 1.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 8/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 9/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 10/30
• SCL: ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra của chế độ I2C.
+ Chân RC4/SDI/SDA (23): có 3 chức năng:
• RC4: xuất/ nhập số.
• SDI: ngõ vào dữ liệu trong truyền dữ liệu kiểu SPI.
• SDA: xuất/ nhập dữ liệu I2C.
+ Chân RC5/SDO (24): có 2 chức năng:
• RC5: xuất/nhập số.
• SDO: ngõ xuất dữ liệu trong truyền dữ liệu kiểu SPI.
+ Chân RC6/TX/CK (25): có 3 chức năng:
• RC6: xuất/ nhập số.
• TX: ngõ ra phát dữ liệu trong chế độ truyền đạt bất đồng bộ USART.
• CK: ngõ ra cấp xung clock trong chế độ truyền đồng bộ EUSART.
+ Chân RD0 (19), chân RD1 (20), chân RD2 (21), chân RD3 (22), chân RD4
(27): xuất/ nhập số.
+ Chân RD5/PIB (28): có 2 chức năng:
• RD5: xuất/nhập số.
• PIB: ngõ ra PWM.
+ Chân RD6/PIC (29): có 2 chức năng:
• RD6: xuất/nhập số.
• PIC: ngõ ra PWM.
+ Chân RD7/PID (30): có 2 chức năng:
• RD7: xuất/ nhập số.
• PID: ngõ ra tang cường CPP1.
+ Chân RE0/AN5 (8): có 2 chức năng:
• RE0: xuất/ nhập số.
• AN5: ngõ vào tương tự kênh thứ 5.
+ Chân RE1/AN6 (9): có 2 chức năng:
• RE1: xuất/ nhập số.
• AN6: ngõ vào tương tự kênh thứ 6.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 11/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 12/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 13/30
RXD: Chân nhận dữ liệu nối tiếp (mặc định ở tốc độ 9600bps), 3,3V.
State: Chân được kết nối với đèn LED trên bo mạch để biểu thị trạng thái của mô
đun.
Thông số kỹ thuật mô đun Bluethooh HC-06.
Môiđun Bluetooth HC-06 có các thông số như sau:
• Giao thức Bluetooth: Chuẩn giao thức Bluetooth V2.0.
• Mức công suất: Class2(+6dBm).
• Băngitần: 2,40GHz—2,48GHz, Băng tần ISM.
• Độinhạy máy thu: -85dBm.
• Giao thức USB: USB v1.1/2.0.
• Chế độ điều chế: Phím dịch chuyển tần số Gauss.
• Tính năng an toàn: Xác thực và mã hóa.
• Dải điện áp hoạt động: +3,3V đến +6V.
• Phạm vi nhiệt độ hoạt động: -20°C đến +55°C Dòng điện hoạt động: 40mA.
Ưu điểm mô đun Bluetooth HC-06.
Mô đuniBluetooth HC-06 có những đặc điểm sau:
• HC-06 là lựa chọn tốt nhất khi cần liên lạc không dây ở khoảng cách ngắn.
• Môiđun này được sử dụng để liên lạcikhông dây dưới 100 mét.
• Mô đun này rất dễ dàng để giao tiếp và giao tiếp.
• Mô đun này là một trong những giải pháp rẻ nhất cho tất cả các loại giao tiếp
không dây hiện có trên thị trường.
• Mô đun này tiêu thụ rất ít năng lượng để hoạt động và có thể được sử dụng trên
các hệ thống di động chạy bằng pin.
• Mô đun này cóithể được giao tiếp với hầu hết tất cả các bộ điều khiển hoặc bộ
xử lý vì nó sử dụng giao diện UART.
2.5 Đèn:
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 14/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 15/30
trong chíp bán dẫn. LED phân thành ba loại chính theo dải công suất: cỡ nhỏ, cỡ
trung bình, cỡ lớn.
- LED cỡ nhỏ: tiêu thụ dòng điện từ 2mA đến 20mA điện áp đặt trên chip từ 1.5V
đến 3V, chúng được thiết kế đơn chiếc phục vụ cho mục đích hiển thị trạng thái của
máy, chiếu sáng cục bộ.
- LED cỡ trung: được thiết kế có chân cắm để hàn vào mạch in hoặc thành chip 4
chân để giúp tản nhiệt tốt, chúng được ghép thành bản mạch với nhiều LED nối tiếp
hoặc song song. Loại đèn LED này thường sử dụng làm các biển báo, đèn chiếu hậu
ô tô, đèn chiếu sáng khẩn cấp, chúng tiêu thụ dòng điện cỡ 100mA.
- LED công suất lớn hay HPLED: tiêu thụ dòng điện vài trăm mA đến vài Ampe, do
tiêu thụ dòng điện lớn nên loại này nhất thiết phải gắn với một bộ tỏa nhiệt tốt, nếu
không HPLED sẽ hỏng sau vài giây. Hiệu suất của HPLED rất cao, có thể lên đến
105lm/W. Ứng dụng của HPLED là để thay loại đèn chiếu sáng trong nhà, ngoài
trời.
- LED thường có điện thế phân cực thuận cao hơn điốt thông thường, trong khoảng
1,5 đến 3V. Nhưng điện thế phân cực nghịch ở LED thì không cao. Do đó LED rất
dễ bị hư hỏng do điện thế ngược gây ra.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 16/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 17/30
2: bật đèn 2.
3: bật đèn 3.
4: bật đèn 4.
a: tắt đèn 1.
b: tắt đèn 2.
c: tắt đèn 3.
d: tắt đèn 4.
5: bật tất cả đèn.
6: tắt tất cả đèn.
7: các đèn sáng dần.
8: các đèn tắt dần.
9: đèn sáng nhấp nháy.
e: đèn sáng xen kẽ.
App Inventor là một ứng dụng web mã nguồn mở được cung cấp bởi Google từ
tháng 7 năm 2010. Sau này, App Inventor được quản lý bởi Viện Công nghệ
Massachusetts hay còn gọi là MIT. Đó cũng là lý do tại sao nó hay được gọi là MIT
App Inventor.
Về cơ bản, App Inventor sẽ hoạt động dựa trên nền tảng di động Android. Tức là
các thành phẩm được tạo ra từ App Inventor sẽ chỉ hoạt động được trên Android.
Giao diện của App Inventor bao gồm các khối hộp, bên trong là các đoạn mã. Khi
sử dụng, người dùng sẽ kéo thả các khối này vào bảng mã để tiến hành lắp ghép
thành một ứng dụng hoàn chỉnh. Nhìn chung, cách sử dụng App Inventor rất đơn
giản, tất cả chỉ xoay quanh thao tác kéo và thả thôi.
Các bước sử dụng phần mềm MIT App Invertor:
Bước 1: Tạo project.
Sau khi đăng nhập vào phần mềm, tại cửa sổ chính (My project), ta chọn vào Start
new project, sau đó đặt tên cho project mà bạn muốn tạo.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 18/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 19/30
Palette: Chứa các thành phần có thể đặt lên trên Screen như: Button, Label, Image,
Listview, Video player, …. Đến các thanh phần chức năng không nhìn thấy trên
Screen như: BLE extension, Notifier, các sensors, ….
Viewer: Hiển thị giao diện screen. Kéo thả các thành phần từ khung Palette sang
đây để thiết kế giao diện cho phần mềm của bạn.
Components: Sơ đồ cây thể hiện cấu trúc các thành phần đã được bố trí trên Screen.
Properties: Hiển thị thuộc tính của component tương ứng được chọn.
Ngoài ra còn khung Media chứa các file media bạn tải lên để sử dụng trong chương
trình như: Ảnh icon, ảnh nền, …
Chương trình minh họa trong bài viết được thiết kế như hình bên dưới. Bao gồm các
thành phần nhìn thấy trên Screen và các thành phần chức năng không nhìn thấy trên
Screen (non-visible) là:
Notifier1: Hiển thị các câu thông báo đến người dùng.
BluetoothLE1: Đây là extension cho phép truyền thông qua giao tiếp Bluetooth
Low Energy.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 20/30
Trong MIT AI2, code chính là các Blocks, việc của chúng ta là kéo thả các blocks
này sang khung Viewer và kết nối chúng theo chức năng mong muốn.
Các block chức năng cơ bản của một chương trình như: điều khiển luồng, logic,
toán học, ký tự, biến, …
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 21/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 22/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 23/30
Cách 1: Sử dụng phần mềm MIT Companion. Với cách này, bạn cần cài đặt phần
mềm MIT Companion trên điện thoại của bạn. Sau đó, kết nối với project của bạn
để tự động download về và chạy bên trong phần mềm MIT Companion. Điều này
gây ra nhiều sự bất tiện và phụ thuộc.
Cách 2: Biên dịch ra file apk và cài đặt, bao gồm tùy chọn download file apk về
máy tính sau đó sao chép sang điện thoại để cách đặt hoặc biên dịch và tải online
thông qua mã QR code.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 24/30
Để vẽ bố cục PCB, chúng ta cần cài đặt phần mềm Proteus (tôi sử dụng Proteus 8
professional). Tiếp theo, chúng ta mở phần mềm Proteus để tiến hành vẽ sơ đồ.
Đầu tiên, chúng ta sẽ mở phần mềm chuyên nghiệp proteus 8 để vẽ như trong hình
4.1.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 25/30
Sau đó chọn công cụ chế độ compponent để lấy các thành phần vẽ mạch nguyên lý
như trong hình 4.6.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 26/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 27/30
Sau khi vẽ xong sơ đồ mạch bố trí PCB, chúng ta xử lý mạch in như hình dưới đây:
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 28/30
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 29/30
Tiếng Việt:
[1] Hanh, L. D. (2019). Lập trình vi điều khiển họ PIC và ứng dụng. TP. Hồ Chí
Minh: NXB ĐHQG-HCM.
[2] TS. Dang Phuoc Vinh, TS. Vo Nhu Thanh. (2019). Giáo trình kỹ thuật vi điều
khiển PIC. Hà Nội: Nhà xuất bản xây dựng.
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang A
Phụ lục
char n;
#INT_RDA
void ngatUART ()
{
n = getc ();
}
void main ()
{
enable_interrupts (int_rda);
enable_interrupts (global);
while(true)
{
If (n == '1') //sang LED1
{
output_high(pin_d3);
}
If (n == 'a') //tat LED1
{
output_low(pin_d3);
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang B
}
If (n == 'b') //tat LED2
{
output_low(pin_d2);
}
If (n == '3') //sang LED3
{
output_high(pin_d1);
}
If (n == 'c') //tat LED3
{
output_low(pin_d1);
}
If (n == '4') //sang LED4
{
output_high(pin_d0);
}
if (n == 'd') //tat LED4
{
output_low(pin_d0);
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang C
}
If (n == '5') //sang LED1234
{
output_high(pin_d2);
output_high(pin_d1);
output_high(pin_d3);
output_high(pin_d0);
}
If (n == '6') //tat het cac LED
{
output_low(pin_d2);
output_low(pin_d1);
output_low(pin_d3);
output_low(pin_d0);
}
If (n == '7') //sang dan
{
int i;
output_low(pin_d2);
output_low(pin_d1);
output_low(pin_d3);
output_low(pin_d0);
for (i=0; i<=4; i++)
{
switch (i)
{
case 1: output_high(pin_d3); break; //sang LED1
case 2: output_high(pin_d2); break; //sang LED2
case 3: output_high(pin_d1); break; //sang LED3
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang D
default: break;
}
delay_ms (450);
}
}
If (n == '8') //tat dan
{
int i;
output_high(pin_d2);
output_high(pin_d1);
output_high(pin_d3);
output_high(pin_d0);
for (i=0; i<=4; i++)
{
switch (i)
{
case 1: output_low(pin_d3); break; //tat LED1
case 2: output_low(pin_d2); break; //tat LED2
case 3: output_low(pin_d1); break; //tat LED3
case 4: output_low(pin_d0); break; //tat LED4
default: break;
}
delay_ms (450);
}
}
If (n == '9') //nhap nhay
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang E
{
output_high(pin_d2);
output_high(pin_d1);
output_high(pin_d3);
output_high(pin_d0);
delay_ms (390);
output_low(pin_d2);
output_low(pin_d1);
output_low(pin_d3);
output_low(pin_d0);
delay_ms (390);
}
If (n == 'e') //sang tat xen ke LED13&24
{
output_high(pin_d0);
output_high(pin_d2);
output_low(pin_d1);
output_low(pin_d3);
delay_ms (390);
output_high(pin_d1);
output_high(pin_d3);
output_low(pin_d0);
output_low(pin_d2);
delay_ms (390);
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên
ĐỒ ÁN HỆ THỐNG NHÚNG
Trang F
}
}
Điều khiển dộng cơ DC bằng PIC16f877A Người thực hiện: Dương Kim Duyên