SlideShare a Scribd company logo
1 of 34
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÀI TẬP LỚN
Đề tài: Đóng cắt thiết bị điện
GVHD: ThS. Hoàng Văn Mạnh
Nhóm sinh viên: Nhóm 2
Lớp: K57M
Khoa: Cơ học kỹ thuật & Tự động hóa
Hà Nội, ngày 28/12/2015
Môn: Ứng dụng máy tính trong đo lường và điều khiển
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 1
Mục lục
Lời mở đầu.............................................................................................................................2
Phần I. Cơ sở lý thuyết liên quan........................................................................................3
I. Vi điều khiển Atmega16................................................................................................................. 3
1. Cấu trúc nhân................................................................................................................................. 3
2. Sơ đồ khối ........................................................................................................................................ 6
3. Ý nghĩa các chân............................................................................................................................ 7
4. Bộ định thời..................................................................................................................................... 7
5. Giao tiếp USART ......................................................................................................................... 10
II. Giao tiếp cổng COM với chuẩn RS232............................................................................... 12
1. Tổng quan chuẩn RS232 và cổng nối tiếp RS232 (cổng COM)...................................... 12
2. Quá trình dữ liệu.......................................................................................................................... 14
3. Sơ đồ ghép nối RS232................................................................................................................. 15
4. Phần mềm giao tiếp cổng COM............................................................................................... 16
III. Rơ-le (Relay) đóng mở thiết bị điện..................................................................................... 16
1. Các khái niệm............................................................................................................................... 16
2. Nguyên lý hoạt động của Rơ-le................................................................................................ 17
3. Ghép nối các linh kiện thành module Rơ-le ......................................................................... 18
IV. Lập trình giao diện với ngôn ngữ C#................................................................................... 19
Phần II. Nội dung thực hiện ..............................................................................................20
I. Thiết kế phần cứng..................................................................................................................... 20
1. Mạch nguồn 5V ............................................................................................................................ 20
2. Mạch điều khiển........................................................................................................................... 20
3. Mạch công suất ............................................................................................................................ 22
4. Mạch mô phỏng trong Proteus................................................................................................. 23
II. Phần mềm nạp cho vi điều khiển .......................................................................................... 24
1. Lưu đồ thuật toán......................................................................................................................... 24
2. Chương trình................................................................................................................................. 24
III. Giao diện điều khiển .................................................................................................................. 27
1. Khái quát giao diện..................................................................................................................... 27
2. Các đoạn mã liên quan .............................................................................................................. 28
IV. Hình ảnh phần cứng................................................................................................................... 30
Phần III. Kết luận, đánh giá đề tài và hướng phát triển ................................................33
I. Kết luận.............................................................................................................................................. 33
II. Đánh giá.......................................................................................................................................... 33
1. Ưu điểm.......................................................................................................................................... 33
2. Nhược điểm ................................................................................................................................... 33
III. Hướng phát triển......................................................................................................................... 33
IV. Hình ảnh sản phẩm hoàn chỉnh............................................................................................. 33
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 2
Lời mở đầu
Chúng ta đang sống trong thời đại công nghiệp hóa, gần như mọi thứ đều được thực hiện
một cách tự động, liên tục. Công nghiệp hóa làm phát triển ngành công nghiệp điều khiển lên một
tầm cao mới, đạt hiệu quả cao và cho năng suất lớn. Việc điều khiển có ý nghĩa vô cùng quan trọng
với đời sống, nó làm cho các quá trình được đơn giản hóa, đỡ phức tạp đi, giải phóng sức lao động
của con người mà hơn hết đó là hiệu quả thu được vô cùng to lớn. Quá trình điều khiển được áp
dụng ở hầu hết các ngành từ công nghiệp đến nông nghiệp và cả dịch vụ, trong đó ở ngành công
nghiệp là dễ tìm thấy nhất và cũng chiếm tỉ lệ cao nhất.
Có nhiều phương pháp điều khiển khác nhau như điều khiển thường, điều khiển bằng các
thuật toán điều khiển như thuật toán mờ, thuật toán PID, … Các hình thức điều khiển cũng nhiều
và đa dạng như điều khiển bằng nút nhấn, điều khiển từ xa, điều khiển thông qua các bộ vi điều
khiển có cài đặt sẵn các chương trình, điều khiển qua máy tính, điều khiển qua mạng, điều khiển
qua điện thoại, … Mỗi một hình thức lại có một ưu điểm, nhược điểm riêng nhưng cơ bản đều
nhằm đạt được mục đích của người sử dụng đó là điều khiển được các thiết bị điện để chúng hoạt
động nhằm phục vụ mục đích sử dụng.
Nhằm vận dụng những kiến thức đã học trên lớp về vi điều khiển và lập trình, chúng em đã
thực hiện đề tài “Đóng cắt thiết bị điện” với mục đích nắm được cơ bản về vi điều khiển
ATmega16, sơ đồ các chân, cách lập trình vào ra với vi điều khiển cũng như cách để tạo ra một
phần mềm điều khiển trên máy tính.
Bài của chúng em gồm các phần:
Phần I. Cơ sở lý thuyết liên quan
Phần II. Nội dung thực hiện
Phần III. Kết luận, đánh giá đề tài và hướng phát triển.
Các thành viên nhóm:
STT Họ và tên Mã sinh viên Ghi chú
1 Phạm Trần Hoàng 12020162
2 Vũ Đình Ngọc 12020271
3 Nguyễn Viết Bình 12020525
4 Nguyễn Sỹ Trung 12020396
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 3
Phần I. Cơ sở lý thuyết liên quan
I. Vi điều khiển Atmega16
ATmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC. Với khả năng thực hiện mỗi lệnh
trong vòng một chu kỳ xung clock, ATmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz.
Ngoài ra ATmega16 có các đặc điểm sau: 16KB bộ nhớ Flash với khả năng đọc trong khi
ghi, 512 byte bộ nhớ EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào
ra chung, 3 bộ định thời/bộ đếm, ngắt nội và ngắt ngoại, USART, giao tiếp nối tiếp 2 dây, 8 kênh
ADC 10 bit, ... ATmega 16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như:
trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, …
Hình 1. Hình ảnh và sơ đồ chân của vi điều khiển Atmega16.
1. Cấu trúc nhân
CPU của Atmega16 có chức năng bảo đảm sự hoạt động chính xác các chương trình. Do đó
nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều khiển các thiết bị
ngoại vi và quản lý ngắt.
Cấu trúc tổng quát
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình và dữ liệu.
Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương trình được lưu trong bộ
nhớ Flash.
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 4
Hình 2. Cấu trúc tổng quát Atmega16
ALU
ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được thực hiện
trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại: đại số, logic và theo bit.
Thanh ghi trạng thái
Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và
logic.
Hình 3. Thanh ghi trạng thái
Trong đó:
+ C: Carry Flag: cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập).
+ Z: Zero Flag: Cờ zero (Nếu kết quả phép toán bằng 0).
+ N: Negative Flag: (Nếu kết quả của phép toán là âm).
+ V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2)
+ H: Half Carry Flag
+ T: Transfer bit used by BLD and BST instructions: (Được sử dụng làm nơi trung gian
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 5
trong các lệnh BLD,BST).
+ I: Global Interrupt Enable/Disable Flag: (Đây là bit cho phép toàn cục ngắt. Nếu bit này
ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.)
Các thanh ghi chức năng chung
Hình 4. Các thanh ghi chức năng chung
Con trỏ ngăn xếp (SP)
Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc biệt
8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (trong bộ nhớ RAM là $5E) và có
nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp.
Hình 5. Thanh ghi con trỏ ngăn xếp
Quản lý ngắt
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn sàng cho
đổi dữ liệu của mình.Ví dụ: khi bộ truyền nhận UART nhận được một byte nó sẽ báo cho CPU biết
thông qua cờ RXC, hoặc khi nó đã truyền được một byte thì cờ TX được thiết lập … Khi có tín
hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên chương
trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục
vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và
tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện.
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 6
Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt
đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên. Trong khi đang thực hiện ngắt mà xuất hiện
ngắt mới thì sẽ xảy ra hai trường hợp. Trường hợp ngắt này có mức ưu tiên cao hơn thì nó sẽ được
phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua.
Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào
SRAM thông thường thì ta dùng con trỏ X, Y, Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì
ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit
chung có địa chỉ: SPL: 0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E.
Khi chương trình phục vụ ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn
xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh
PUSH. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET
hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt
trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho
phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các
thanh ghi.
2. Sơ đồ khối
Hình 6: Sơ đồ khối
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 7
3. Ý nghĩa các chân
ChânVCC: Chân số 10 là VCC cấp điện áp nguồn cho Vi điều khiển. Nguồn điện cấp trong
khoảng +5V ± 0,5.
Chân GND: Chân số11 và chân số 31 nối GND(hay nối Mass). Khi thiết kế cần sử dụng
một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805.
Port A (PA): Port A gồm 8 chân (từ chân 33 đến 40) có chức năng: đầu vào cho chuyển đổi
ADC.
Port B (PB): Port PB gồm 8 chân (từ chân 1 đến chân 8), ngoài có chức năng làm các
đường xuất/nhập thì còn có nhiều chức năng phụ khác.
Port C (PC): Port C gồm 8 chân (từ chân 22 đến chân 29) : Nếu giao tiếp JTAG được kích
hoạt điện trở trên các PC5(TDI), PC3 (TMS) ,PC2 (TCK) sẽ được kích hoạt ngay cả khi khởi động
lại (reset)
Port D (PD): Port D gồm 8 chân (từ chân 14 đến 21):chưc năng xuất nhập
Chân RESET(RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái
ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1
tối thiểu 2 chu kì máy.
Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 12 và 13 được sử dụng để nhận
nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo
nguồn xung clock ổn định.
Chân AVCC: Nguồn cấp cho cổng A và bộ chuyển đổi ADC , chân này nên được nối với
nguồn cấp VCC bên ngoài , ngay cả khi bộ chuyển đổi ADC không được sử dụng. Nếu bộ chuyển
đổi ADC không được sử dụng, chân AVCC nên được nối với nguồn qua bộ lọc.
Chân AREF: AREF là chân chuẩn analog cho bộ chuyển đổi ADC.
4. Bộ định thời
Bộ định thời (timer/counter) là một module định thời/đếm 8 bit, có các đặc điểm sau:
+ Bộ đếm một kênh
+ Xóa bộ định thời khi trong mode so sánh
+ PWM
+ Tạo tần số
+ Bộ đếm sự kiện ngoài
+ Bộ chia tần 10 bit
+ Nguồn ngắt tràn bộ đếm và so sánh
TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi
TIFR. Các ngắt có thể được che bởi thanh ghi TIMSK.
Bộ định thời có thể sử dụng xung clock nội thông qua bộ chia hoặc xung clock ngoài trên
chân T0. Khối chọn xung clock điều khiển việc bộ định thời bộ đếm sẽ dùng nguồn xung nào để
tăng giá trị của nó. Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời.
Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm. Kết quả so sánh có
thể được sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0.
Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được. Cấu
trúc của nó như hình dưới đây:
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 8
Hình 7. Sơ đồ đơn vị đếm
+ Count: tăng hay giảm TCNT0:1
+ Direction: lựa chọn giữa đếm lên và đếm xuống
+ Clear: xóa thanh ghi TCNT0
+ TOP: báo hiệu bộ định thời đẫ tăng đến giá trị lớn nhất
+ BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất
Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị thanh ghi so sánh ngõ ra (OCR0).
Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo hiệu này sẽ đặt giá trị cờ
so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo. Nếu được kích hoạt (OCIE0 = 1), cờ
OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động được xóa khi ngắt được thực thi. Cờ OCF0
cũng có thể được xóa bằng phần mềm.
Hình 8. Sơ đồ đơn vị so sánh ngõ ra
 Mô tả các thanh ghi
 Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0
+ Bit 7 (FOC0): so sánh ngõ ra bắt buộc: bit này chỉ tích cực khi bit WGM00 chỉ định chế
độ làm việc không có PWM. Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn
vị tạo dạng sóng.
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 9
+ Bit 6 (WGM00) – bit 3 (WGM01): chế độ tạo dạng sóng: các bit này điều khiển hoạt
động của chân OC0. Nếu một hoặc cả hai bit COM01, COM00 được đặt lên 1, ngõ ra OC0 sẽ hoạt
động.
+ Bit 2 (CS02), bit 1 (CS01), bit 0 (CS00): chọn xung đồng hồ: ba bit này dùng để lựa
chọn nguồn xung cho bộ định thời/bộ đếm.
Hình 9. Lựa chọn nguồn xung cho bộ định thời
 Thanh ghi bộ định thời/bộ đếm
Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp vào bộ đếm 8 bit.
 Thanh ghi so sánh ngõ ra – OCR0
Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm
 Thanh ghi mặt nạ ngắt
+ Bit 1 (OCIE0): cho phép ngắt báo hiệu so sánh
+ Bit 0 (TOIE0): cho phép ngắt tràn bộ đếm
 Thanh ghi cờ ngắt bộ định thời
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 10
+ Bit 1 (OCF0): Cờ so sánh ngõ ra 0
+ Bit 0 (TOV0): Cờ tràn bộ đếm
Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và được xóa bởi phần cứng khi vector ngắt
tương ứng được thực hiện. Bit này cũng có thể được xóa bằng phần mềm.
5. Giao tiếp USART
5.1. Các thuật ngữ được dùng trong giao tiếp USART
Truyền thông nối tiếp không đồng bộ
Trong nhiều bài toán cần sử dụng vi điều khiển và máy tính kết nối với nhau, trong quá
trình làm việc đó vi điều khiển cần trao đổi dữ liệu với máy tính. Ví dụ như vi điều khiển gửi giá
trị đo đạc bằng ADC về máy tính và máy tính gửi tín hiệu điều khiển xuống vi điều khiển.
Giả sử dữ liệu cần trao đổi là các mã có chiều dài 8 bit, cách đơn giản nhất là kết nối một
cổng (8 bit) của vi điều khiển với máy tính, mỗi dây nối sẽ chịu trách nhiện truyền nhận một bit dữ
liệu. Đây gọi là cách giao tiếp song song, cách này là cách đơn giản nhất, nhưng nhược điểm của
cách truyền này là số đường truyền quá nhiều, giá trị càng lớn thì số đường truyền cũng sẽ nhiều
thêm.
Trong truyền thông nối tiếp dữ liệu được truyền từng bit trên một hoặc một ít đường
truyền, vì thế tiết kiệm đường truyền dữ liệu. Hình dưới mô tả sự so sánh giữa hai cách truyền
song song và nối tiếp trong việc truyền số 187 (10111011).
Hình 10. Phương pháp truyền song song (a) và nối tiếp (b)
Vì dữ liệu cần đươc chia nhỏ thành từng bit khi truyền nhận, tốc độ truyền nối tiếp sẽ bị
giảm. Mặt khác để đảm bảo tính tính chính xác của dữ liệu, bộ truyền và bộ nhận cần có những
tiêu chuẩn nhất định.
Khái niệm đồng bộ để chỉ sự báo trước trong quá trình truyền. Lấy ví dụ thiết bị 1 (tb1) kết
nối với thiết bị 2 (tb2) bởi hai đường, một đường dữ liệu và một đường xung nhịp. Cứ mỗi lần tb1
muốn gửi một bit dữ liệu, tb1 điều khiển đường xung nhịp chuyển từ mức thấp lên mức cao báo
cho tb2 sẵn sàng nhận một bit. Bằng cách báo trước này tất cả các bit dữ liệu có thể truyền/ nhận
dễ dàng với ít rủi ro trong quá trình truyền. Tuy nhiên cách truyền này đòi hỏi ít nhất hai đường
truyền cho một quá trình (gửi hoặc nhận dữ liệu).
Khác với cách truyền đồng bộ, truyền thông không đồng bộ chỉ cần một đường truyền cho
một quá trình. Khung dữ liệu đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp
báo trước dữ liệu đến. Ví dụ hai thiết bị đang giao tiếp với nhau theo phương pháp này, chúng đã
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 11
được thỏa thuận với nhau là cứ 1ms thì sẽ có một bit dữ liệu truyền đến, như thế thiết bị nhận chỉ
cần kiểm tra và đọc đường truyền mỗi mili-giây để đọc các bit dữ liệu và sau đó kết hợp chúng lại
thành dữ liệu có ý nghĩa. Truyền thông nối tiếp không đồng bộ vì thế hiệu quả hơn truyền thông
đồng bộ (không cần nhiều đường truyền). Tuy nhiên, để quá trình truyền thành công thì việc tuân
thủ các tiêu chuẩn truyền là hết sức quan trọng.
Tốc độ Baud (Baud Rate)
Như trong ví dụ trên về việc truyền một bit trong 1ms, ta thấy rằng để việc truyền và nhận
không đồng bộ xảy ra thành công thì các thiết bị tham gia phải thống nhất nhau về khoảng thời
gian dành cho 1 bit truyền hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc
độ này gọi là tốc độ Baud. Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây. Ví dụ nếu tốc
độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1 / 19200 ~ 52.083us.
Khung truyền (Frame)
Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền, các bit báo như bit
start, bit stop, các bit kiểm tra như Parity. Ngoài ra số lượng các bit trong một data cũng được quy
định bởi khung truyền. Hình dưới là một ví dụ của một khung truyền theo USART, khung truyền
này được bắt đầu bằng một start bit, tiếp theo là 8 bit data, sau đó là 1 bit Parity dùng kiểm tra dữ
liệu và cuối dùng là 1 bit stop.
Hình 11. Khung truyền theo USART
Start
Start là bit đầu tiên được truyền trong một frame truyền, bit này có chức năng báo cho thiết
bị nhận biết rằng có một gói dữ liệu sắp được truyền tới. Start là bit bắt buộc phải có trong khung
truyền.
Data
Data hay dữ liệu cần truyền là thông tin chính cần gửi và nhận, thường data gồm 8 bit.
Parity bit
Parity là bit dùng kiểm tra dữ liệu truyền đúng không (một cách tương đối). Parity bit
không phải là bit bắt buộc và vì thế có thể loại bit này khỏi khung truyền.
Stop bit
Stop bit là một hoặc các bit báo cho thiết bị nhận rằng một gói dữ liệu đã được gửi xong.
Stop bit là các bit bắt buộc xuất hiện trong khung truyền.
5.2. Giao tiếp USART trên Atmega16
Vi điều khiển Atmega16 có một module truyền thông nối tiếp USART. Với chế độ truyền
nối tiếp không đồng bộ (giao tiếp với máy tính), hai chân của Atmega16 để phục vụ cho truyền
nhận dữ liệu là: chân truyền dữ liệu TxD (Transmitted Data) chân 15 (PD1) của vi điều khiển và
chân nhận dữ liệu RxD (Reveived Data) chân số 14 (PD0).
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 12
Hình 12. Chân RxD và TxD trên Atmega16
Module USART trên vi điều khiển Atmega16 hoạt động theo chế độ quá trình truyền và
nhận dữ liệu có thể xảy ra đồng thời.
Khi sử dụng USART để giao tiếp với máy tính, phải thiết lập các thông số hoạt động ở vi
điều khiển và trên máy tính giống nhau bao gồm:
Baud Rate: Baud rate càng cao thì tốc độ truyền càng nhanh, tuy nhiên xác suất xảy ra lỗi
trong quá trình truyền/nhận cũng lớn hơn. Thường chọn Baud rate là 9600 với các ứng dụng không
đòi hỏi tốc độ cao.
Frame: khung truyền bao gồm start bit, data, parity bit và stop bit trong đó start bit là cố
định và không thay đổi.
USART của Atmega16 cũng có tính năng ngắt, ngắt của USART xảy ra khi hoàn tất gửi
xong một dữ liệu, hoặc nhận xong một dữ liệu. Tính năng ngắt khi nhận xong một dữ liệu sẽ được
dùng trong ứng dụng truyền dữ liệu từ vi xử lý về máy tính.
II. Giao tiếp cổng COM với chuẩn RS232
Ngày nay các thiết bị đo lường, điều khiển ... đều phải giao tiếp với máy tính để quan sát
thông số và chế độ hoạt động của thiết bị như thế nào. Chuẩn giao tiếp được coi là đơn giản và dễ
dùng đó là RS232. Hầu như các thiết bị đều được giao tiếp với máy tính thông qua chuẩn này.
Hình 13. Cổng COM và IC MAX232 trong giao tiếp RS232
1. Tổng quan chuẩn RS232 và cổng nối tiếp RS232 (cổng COM)
Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi để
ghép nối các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp nối tiếp dùng định dạng
không đồng bộ, kết nối nhiều nhất là hai thiết bị, chiều dài kết nối lớn nhất cho phép để đảm bảo
dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 13
nghĩa của chuẩn truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit được gửi đi dọc
theo đường truyền.
Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và
RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện vẫn
được dùng và tồn tại thường được gọi là tên ngắn gọn là chuẩn RS232. Các máy tính thường có
một hoặc hai cổng nối tiếp theo chuẩn RS232C được gọi là cổng COM. Chúng được dùng ghép
nối cho chuột, modem, thiết bị đo lường. Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy
vào đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ
dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp.
Tuy nhiên trong các máy tính hiện đại ngày nay, đặc biệt là các máy tính xách tay thì các
cổng COM cũng không còn được tích hợp vào main của máy tính. Để sử dụng cổng COM với loại
máy này thì cần phải có các thiết bị chuyển đổi tương tự như cáp chuyển đổi USB to COM.
Ưu điểm của giao diện nối tiếp RS232:
+ Khả năng chống nhiễu của các cổng nối tiếp cao.
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện.
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp.
Những đặc điểm cần lưu ý trong chuẩn RS232:
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là ±12V. Hiện nay đang
được cố định trở kháng tải trong phạm vi từ 3000Ω - 7000Ω.
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ 3V đến 12V.
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps.
+ Các lối vào phải có điện dung nhỏ hơn 2500pF.
+ Trở kháng tải phải lớn hơn 3000Ω nhưng phải nhỏ hơn 7000Ω
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232
không vượt qua 15m nếu không sử modem.
+ Các giá trị tốc độ truyền dữ liệu chuẩn: 50, 75, 110, 750, 300, 600, 1200, 2400, 4800,
9600, 19200, 28800, 38400, 56600, 115200 bps.
Các mức điện áp đường truyền RS232 sử dụng phương thức truyền thông không đối xứng,
tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên ra đời
nó đã mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương thích TTL để mô tả
các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được đấu
vào bus của bộ phận và các trở kháng ra của bộ phát.
Mức điện áp của tiêu chuẩn RS232C được mô tả như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ -3V
tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao
hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý.
Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền.
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 14
Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ
trợ với tốc độ 19,2 kBp.
Cổng nối tiếp RS232 trên PC (cổng COM): Xét sơ đồ chân cổng COM 9 chân:
Hình 14. Cổng COM và sơ đồ chân
Chức năng của các chân như sau:
+ Chân 1: Data Carrier Detect (DCD): Phát tín hiệu mang dữ liệu
+ Chân 2: Receive Data (RxD): Nhận dữ liệu
+ Chân 3: Transmit Data (TxD): Truyền dữ liệu
+ Chân 4: Data Termial Ready (DTR): Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ
phận khi muốn truyền dữ liệu
+ Chân 5: Singal Ground (SG): Mass của tín hiệu
+ Chân 6: Data Set Ready (DSR): Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó
sẵn sàng nhận dữ liệu
+ Chân 7: Request to Send: yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi
sẵn sàng truyền dữ liệu
+ Chân 8: Clear To Send (CTS): Xóa để gửi, bộ nhận đặt đường này lên mức kích hoạt
động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ Chân 9: Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung
chuông.
2. Quá trình dữ liệu
2.1. Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy nên tại một
thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit bắt đầu (bit start) để thông
báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếp theo. Bit này luôn bắt đầu
bằng mức 0. Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII (có thể là 5,
6, 7 hay 8 bit dữ liệu). Sau đó là một Parity bit (kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit
dừng - bit stop có thể là 1, 1.5 hay 2 bit dừng.
2.2. Baud Rate (tốc độ baud)
Đây là một tham số đặc trưng của RS232, tham số này đặc trưng cho quá trình truyền dữ
liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit. Tốc độ bit
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 15
được định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit truyền được trong thời gian
1 giây. Tốc độ bit này phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau.
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ Baud liên
quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền còn tốc độ bit
thì phản ánh tốc độ thực tế mà các bit được truyền. Vì một phần tử báo hiệu sự mã hóa một bit nên
khi đó hai tốc độ bit và tốc độ Baud là phải đồng nhất.
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600,
19200, 28800, 38400, 56000, 115200, …
Khi sử dụng chuẩn nối tiếp cáp cổng Com RS232 thì yêu cầu khi sử dụng chuẩn là thời
gian chuyển mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao
thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. Điều này làm giới
hạn tốc Baud và khoảng cách truyền.
2.3. Parity bit (bit chẵn lẻ)
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi khi truyền dữ
liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong quá trình truyền. Do
đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để cho thấy số lượng các bit 1 được
gửi trong một khung truyền là chẵn hay lẻ. Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi ví dụ
như 1, 3, 5, 7, 9 ... Nếu như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp
không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không được sử
dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.
3. Sơ đồ ghép nối RS232
3.1. Mạch chuẩn giao RS232 dùng IC MAX232
MAX232 là IC do hãng Maxim sản xuất chuyên dùng cho giao tiếp giữa RS232 và thiết bị
ngoại vi. Đây là IC chạy ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232.
MAX232 được tích hợp hai kênh truyền cho chuẩn RS232, dòng tín hiệu được thiết kế cho chuẩn
RS232. Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện.
Ngoài ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.
Mạch giao tiếp như sau:
Hình 15. Sơ đồ phần cứng kết nối MAX232 với cổng COM
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 16
3.2. Mạch chuẩn giao tiếp RS232 dùng DS275
Đây cũng là IC của hãng Maxim. DS275 được dùng trong các mạch giao tiếp của chuẩn
RS232 nhưng do nó chỉ là bán song công và dùng trong các thiết kế công suất nhỏ.
Hình 16. Sơ đồ kết nối phần cứng dùng DS275
3.3. Mạch chuẩn giao tiếp RS232 dùng transistor
Mạch sử dụng hai transior để giao tiếp RS232.
Hình 17. Sơ đồ kết nối phần cứng dùng transistor
4. Phần mềm giao tiếp cổng COM
Giao tiếp chuẩn giữa RS232 và vi điều khiển phải thông qua phần mềm giao diện để nhận
biết được dữ liệu truyền lên và nhận xuống như thế nào. Có thể dùng các ngôn ngữ lập trình giao
diện như C#, Visual Basic, Matlab, LabView, C, C++, … để viết ra các giao diện giúp giao tiếp
truyền nhận từ vi điều khiển với máy tính. Có thể dùng một số phần mềm có sẵn để kiểm tra giao
diện như Terminal, Hyper Terminal, …
Với máy tính xách tay, để tiện dùng thì có thể sử dụng phần mềm mô phỏng cổng COM ảo
để tạo ra các cổng COM ảo để mô phỏng, đó là phần mềm VirtualSerialPort, khi đó có thể tạo ra
được các cặp cổng COM ảo và có thể dùng để mô phỏng dễ dàng.
III. Rơ-le (Relay) đóng mở thiết bị điện
1. Các khái niệm
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 17
Rơ-le là một công tắc đóng ngắt, nhưng khác với các công tắc thường là nó được đóng ngắt
bởi nguồn điện thay vì do con người thao tác. Vì vậy, rơ-le được dùng làm công tắc điện tử. Rơ-le
cũng có hai trạng thái là đóng và ngắt, xác định được khi nào rơ-le đóng, khi nào ngắt thì đã điều
khiển được rơ-le đóng mở như một công tắc.
Tùy theo cách tích hợp linh kiện với rơ-le mà ở đây là transistor (loại NPN hoặc PNP) thì
có hai loại module rơ-le là module rơ-le đóng ở mức thấp, module rơ-le đóng ở mức cao.
Để phân biệt được hai loại module này thì có thể thử bằng cách cấp nguồn vào các chân
điều khiển để xác định hoặc tra tên của transistor để biết transistor đó là transistor thuận hay ngược
(transistor NPN kích ở mức cao, transistor PNP kích ở mức thấp.
Hình 18. Module Rơ-le.
Các thông số của một module rơ-le:
Hiệu điện thế kích tối ưu: xem rơ-le hoạt động ở mức điện áp nào thì chọn loại module rơ-
le. Một số mức điện áp hoạt động của rơ-le thường thấy như 5V, 12V, 24V, …
Các mức hiệu điện thế tối đa và cường độ dòng điện tối đa của đồ dùng điện khi nối vào rơ-
le. Các giá trị này đã được ghi ở mặt trên vỏ của rơ-le. Xét với rơ-le 5V các thông số thường thấy
gồm có:
+ 10A – 250VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế
nhỏ hơn hoặc bằng 250V (AC) là 10A.
+ 10A – 30VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế
nhỏ hơn hoặc bằng 30V (DC) là 10A.
+ 10A – 125VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế
nhỏ hơn hoặc bằng 125V (AC) là 10A.
+ 10A – 28VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế
nhỏ hơn hoặc bằng 28V (DC) là 10A.
+ SRD-05VDC-SL-C: Hiệu điện thế kích tối ưu là 5V.
2. Nguyên lý hoạt động của Rơ-le
Dạng phổ biến nhất của rơ-le cơ điện gồm một cuộn dây điện được cuốn trên một lõi sắt từ.
Bộ phận này có cả một phần tĩnh và một phần động trong đó phần động được liên kết cơ học với
một tiếp điểm động.
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 18
Hình 19. Cấu tạo của Rơ-le và nối với thiết bị điện
Khi cuộn dây được cấp điện, từ trường được tạo ra xung quanh cuộn và được lõi tập trung
lại tạo thành một nam châm điện. 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.
Khi rơ-le bị ngắt điện, từ trường 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í ban đầu.
3. Ghép nối các linh kiện thành module Rơ-le
Hình 20. Các linh kiện cơ bản trong ghép nối module rơ-le
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 19
Hình 21. Mạch điều khiển thiết bị dùng Rơ-le 5V và cách ly quang PC817
IV. Lập trình giao diện với ngôn ngữ C#
C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft. Microsoft phát
triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có sự cân bằng giữa C++, Visual
Basic, Delphi và Java.
C# được thiết kế chủ yếu bởi Anders Hejilsberg kiến trúc sư phần mềm nổi tiếng với các
sản phẩm Turbo Pascal, Delphi, J++, WFC.
C# theo một hướng nào đó là ngôn ngữ lập trình phản ánh trực tiếp nhất đến .NET
Framework mà tất cả các chương trình .NET chạy và nó phụ thuộc mạnh mẽ vào Framework này.
Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector
và nhiều kiểu trừu tượng khác như class, delegate, interface, exception, … phản ánh rõ ràng những
đặc trưng của .NET runtime.
So sánh với C và C++, ngôn ngữ C# bị giới hạn và được nâng cao ở một vài đặc điểm nào
đó, nhưng không bao gồm các giới hạn sau:
+ Các con trỏ chỉ có thể được sử dụng trong các chế độ không an toàn, hầu hết các đối
tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm. Các con trỏ chỉ
được sử dụng để gọi các loại kiểu giá trị, còn những đối tượng thuộc bộ thu rác thì chỉ được gọi
bằng cách tham chiếu.
+ Các đối tượng không thể được giải phóng tường minh.
+ Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng. Chức năng này làm
đơn giản hóa sự thực thi của thời gian thực thi.
+ C# thì an toàn kiểu (typesafe) hơn C++
+ Cú pháp khai báo mảng khác nhau.
+ Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)
+ C# không có tiêu bản
+ Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập dữ liệu.
+ Có reflection.
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 20
Phần II. Nội dung thực hiện
I. Thiết kế phần cứng
1. Mạch nguồn 5V
Hình 22. Sơ đồ nguyên lý mạch nguồn 5V dùng IC LM2576
Hình 23. Sơ đồ mạch in mạch nguồn 5V
Mạch nguồn 5V có tác dụng cung cấp nguồn cho mạch điều khiển và mạch công suất hoạt
động. Ưu điểm của việc dùng IC LM2576 để tạo ra điện áp 5V so với một số IC khác (như
LM7805) đó là dòng ra lớn (~3A), IC ít nóng hơn, tuy nhiên mạch nguồn phải mắc thêm nhiều linh
kiện hơn.
2. Mạch điều khiển
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 21
Hình 24. Sơ đồ nguyên lý mạch điều khiển dùng IC Atmega16
Hình 25. Sơ đồ mạch in mạch điều khiển
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 22
3. Mạch công suất
Hình 26. Sơ đồ nguyên lý mạch công suất
Hình 27. Sơ đồ một nhánh trong mạch công suất
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 23
Hình 28. Sơ đồ mạch in mạch công suất
4. Mạch mô phỏng trong Proteus
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 24
II. Phần mềm nạp cho vi điều khiển
1. Lưu đồ thuật toán
Hình 29. Lưu đồ thuật toán chương trình
Để đọc một ký tự gửi xuống từ cổng COM, ta dùng lệnh getchar();
Để gửi một chuỗi từ vi điều khiển lên máy tính ta dùng lệnh puts();
2. Chương trình
#include <mega16.h>
#include <stdio.h>
char read;
void main(void)
{
int dem1=0, dem2=0, dem3=0, dem4=0, dem5=0, dem6=0, dem7=0, dem8=0;
PORTC = 0xff;
DDRC = 0xff;
DDRD = 0x00;
UCSRA = 0x00;
UCSRB = 0x18;
UCSRC = 0x86;
UBRRH = 0x00;
UBRRL = 0x33;
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 25
while (1)
{
read = getchar();
switch(read)
{
case '0':
{
puts("Tat tat ca, ");
PORTC = 0xff;
break;
}
case '1':
{
dem1++;
PORTC.0 = ~PORTC.0;
if(dem1 % 2 == 0)
{
puts("TB1: OFF, ");
}
else
{
puts("TB1: ON, ");
}
break;
}
case '2':
{
dem2++;
PORTC.1 = ~PORTC.1;
if(dem2 % 2 == 0)
{
puts("TB2: OFF, ");
}
else
{
puts("TB2: ON, ");
}
break;
}
case '3':
{
dem3++;
PORTC.2 = ~PORTC.2;
if(dem2 % 2 == 0)
{
puts("TB3: OFF, ");
}
else
{
puts("TB3: ON, ");
}
break;
}
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 26
case '4':
{
dem4++;
PORTC.3 = ~PORTC.3;
if(dem3 % 2 == 0)
{
puts("TB4: OFF, ");
}
else
{
puts("TB4: ON, ");
}
break;
}
case '5':
{
dem5++;
PORTC.4 = ~PORTC.4;
if(dem5 % 2 == 0)
{
puts("TB5: OFF, ");
}
else
{
puts("TB5: ON, ");
}
break;
}
case '6':
{
dem6++;
PORTC.5 = ~PORTC.5;
if(dem6 % 2 == 0)
{
puts("TB6: OFF, ");
}
else
{
puts("TB6: ON, ");
}
break;
}
case '7':
{
dem7++;
PORTC.6 = ~PORTC.6;
if(dem7 % 2 == 0)
{
puts("TB7: OFF, ");
}
else
{
puts("TB7: ON, ");
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 27
}
break;
}
case '8':
{
dem8++;
PORTC.7 = ~PORTC.7;
if(dem8 % 2 == 0)
{
puts("TB8: OFF, ");
}
else
{
puts("TB8: ON, ");
}
break;
}
case '9':
{
puts("Bat tat ca, ");
PORTC = 0x00;
break;
}
}
}
}
III. Giao diện điều khiển
1. Khái quát giao diện
Hình 30. Giao diện điều khiển trên máy tính
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 28
2. Các đoạn mã liên quan
Khai báo thêm các thư viện chức năng:
using System.IO; // Thư viện cho xuất nhập
using System.IO.Ports; // Thư viện dùng cho cổng COM
using System.Xml;
using System.Diagnostics; // Thư viện dùng cho Timer
Lấy tất cả các cổng COM có trong máy tính
Khai báo thêm lệnh SerialPort P = new SerialPort(); trong lớp public partial
class Form1 : Form
namespace DieuKhienThietBi
{
public partial class Form1 : Form
{
SerialPort P = new SerialPort();
delegate void SetTextCallback(string text);
string InputData = String.Empty;
public Form1()
{
InitializeComponent();
// Lấy tất cả các cổng COM có trong máy tính
string[] Ports = SerialPort.GetPortNames();
cmbCOM.Items.AddRange(Ports);
Kết nối và hủy kết nối cổng COM
Sử dụng hai nút nhấn (button) trong C# để thực hiện việc kết nối và ngắt kết nối với cổng
COM.
// Nút kết nối
private void btnKetnoi_Click(object sender, EventArgs e)
{
try // trường hợp bình thường
{
P.Open(); // P là một lớp SerialPort (cổng COM) đã khai báo
grbCOM.Enabled = false;
btnNgatketnoi.Enabled = true;
btnKetnoi.Enabled = false;
grbModeControl.Enabled = true;
// Thông báo trạng thái kết nối
lblStatus.Text = "Đã kết nối với cổng " +
cmbCOM.SelectedItem.ToString();
}
catch // trường hợp xảy ra lỗi
{
MessageBox.Show("Kết nối thất bại, hãy thử kết nối lại.",
"Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
btnNgatketnoi.Enabled = false;
btnKetnoi.Enabled = true;
grbModeControl.Enabled = false;
grbCOM.Enabled = true;
cmbCOM.Focus();
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 29
}
}
// Nút ngắt kết nối
private void btnNgatketnoi_Click(object sender, EventArgs e)
{
P.Close();
btnKetnoi.Enabled = true;
btnNgatketnoi.Enabled = false;
grbCOM.Enabled = true;
lblStatus.Text = "Đã ngắt kết nối.";
}
Hàm nhận chuỗi và hiển thị lên máy tính
Trước khi thực hiện thì khai báo thêm một số lệnh trên lớp public partial class
Form1 : Form:
delegate void SetTextCallback(string text);
string InputData = String.Empty;
Thêm một lệnh sau dưới các lệnh lấy cổng COM: P.DataReceived += new
SerialDataReceivedEventHandler(DataReceive);
Mô tả trong chương trình như sau:
namespace DieuKhienThietBi
{
public partial class Form1 : Form
{
SerialPort P = new SerialPort();
delegate void SetTextCallback(string text);
string InputData = String.Empty;
public Form1()
{
InitializeComponent();
string[] Ports = SerialPort.GetPortNames();
cmbCOM.Items.AddRange(Ports);
P.ReadTimeout = 1000;
P.DataReceived += new
SerialDataReceivedEventHandler(DataReceive);
// Hàm nhận và hiển thị ký tự
private void DataReceive(object obj, SerialDataReceivedEventArgs e)
{
InputData = P.ReadExisting();
if (InputData != String.Empty)
{
SetText(InputData);
}
}
private void SetText(string text)
{
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 30
if (this.txtPhanhoi.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.txtPhanhoi.Text += text;
}
}
Hàm cho phép gửi một ký tự điều khiển xuống vi điều khiển
Được thực hiện thông qua các nút checkbox trong C#, cấu trúc điều khiển với một
checkbox (ví dụ điều khiển thiết bị 1) có dạng như sau:
private void chbThietbi1_Click(object sender, EventArgs e)
{
dem1++; // Sử dụng một biến đếm để biết số lần nhấn nút
if (chbThietbi1.Enabled)
{
P.Write("1"); // Lệnh gửi một ký tự xuống cổng COM
if (dem1 % 2 != 0)
{
btnTB1.BackColor = Color.LightGreen; // Đổi màu các khối
ptbTB1Off.Visible = false; // Ẩn ảnh 1
ptbTB1On.Visible = true; // Hiện ảnh 1
}
else
{
btnTB1.BackColor = Color.Gainsboro;
ptbTB1Off.Visible = true;
ptbTB1On.Visible = false;
}
}
}
IV. Hình ảnh phần cứng
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 31
Hình 31. Mạch điều khiển
Hình 32. Mạch nguồn 5V
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 32
Hình 33. Mạch công suất điều khiển 8 thiết bị
Báo cáo Đồ án môn học
Ứng dụng máy tính trong đo lường và điều khiển Trang 33
Phần III. Kết luận, đánh giá đề tài và hướng phát triển
I. Kết luận
Mạch điện được chia thành các module nhỏ nên dễ quản lý và sửa chữa các lỗi nếu có phát
sinh.
Mạch chạy đúng yêu cầu bật tắt các thiết bị, chức năng hẹn giờ hoạt động đúng, giao diện
thiết kế bằng phần mềm Visual Studio với ngôn ngữ lập trinh C# là ngôn ngữ phổ biến cho lập
trình giao diện và đơn giản với người mới bắt đầu.
II. Đánh giá
1. Ưu điểm
Các module có thiết kế nhỏ gọn, linh kiện được bố trí hợp lý, không rối mắt, dễ quan sát.
Các module được thiết kế rời nhau nên thuận tiện cho việc sửa chữa nếu xảy ra lỗi.
Giao diện được thiết kế bằng Visual Studio và ngôn ngữ C# nên dễ dàng cho người mới bắt
đầu tiếp cận và lập trình.
2. Nhược điểm
Việc chia nhiều module dẫn đến phải nối thêm nhiều dây bên ngoài nên nhìn mạch sẽ phức
tạp, không thống nhất.
III. Hướng phát triển
Để sản phẩm được hoàn chỉnh hơn nữa thì có thể thiết kế mạch lại và bố trí tất cả các linh
kiện trên cùng một board mạch để mạch tăng thêm tính thống nhất.
Phát triển thêm phần cứng và phần mềm để có thể điều khiển được nhiều thiết bị hơn, thay
vì 8 thiết bị. Có thể tích hợp thêm bộ điều khiển từ xa vào mạch để mạch được hoàn chỉnh hơn.
IV. Hình ảnh sản phẩm hoàn chỉnh

More Related Content

What's hot

đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưđề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưnataliej4
 
Cac lenh lap trinh ladder
Cac lenh lap trinh ladderCac lenh lap trinh ladder
Cac lenh lap trinh ladderAlain Hua
 
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINHTHIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINHnataliej4
 
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfMan_Ebook
 
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua InternetĐiều khiển thiết bị qua Internet
Điều khiển thiết bị qua InternetFreelancer
 
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnđồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnhttps://www.facebook.com/garmentspace
 
Xe hai bánh tự cân bằng.pdf
Xe hai bánh tự cân bằng.pdfXe hai bánh tự cân bằng.pdf
Xe hai bánh tự cân bằng.pdfMan_Ebook
 
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Chu Quang Thảo
 
Các phương pháp thiết kế bộ điều khiển PID.docx
Các phương pháp thiết kế bộ điều khiển PID.docxCác phương pháp thiết kế bộ điều khiển PID.docx
Các phương pháp thiết kế bộ điều khiển PID.docxhunhlhongthi
 
Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdf
Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdfĐiều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdf
Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdfMan_Ebook
 
Đồ án 1_Thiết kế mạch đo nhiệt độ
Đồ án 1_Thiết kế mạch đo nhiệt độĐồ án 1_Thiết kế mạch đo nhiệt độ
Đồ án 1_Thiết kế mạch đo nhiệt độLê Công
 
tinh-toan-dong-hoc-va-dieu-khien-robot-scara
tinh-toan-dong-hoc-va-dieu-khien-robot-scaratinh-toan-dong-hoc-va-dieu-khien-robot-scara
tinh-toan-dong-hoc-va-dieu-khien-robot-scara5 Phút Giải Lao
 

What's hot (20)

đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưđề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
 
Đề tài: Xe tự hành tránh vật cản, HAY
Đề tài: Xe tự hành tránh vật cản, HAYĐề tài: Xe tự hành tránh vật cản, HAY
Đề tài: Xe tự hành tránh vật cản, HAY
 
Đề tài: Ứng dụng lập trình điều khiển động cơ bước sử dụng chip
Đề tài: Ứng dụng lập trình điều khiển động cơ bước sử dụng chipĐề tài: Ứng dụng lập trình điều khiển động cơ bước sử dụng chip
Đề tài: Ứng dụng lập trình điều khiển động cơ bước sử dụng chip
 
Cac lenh lap trinh ladder
Cac lenh lap trinh ladderCac lenh lap trinh ladder
Cac lenh lap trinh ladder
 
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PIDĐề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
 
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAYĐề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
 
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINHTHIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
 
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
 
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua InternetĐiều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
 
Đề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnh
Đề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnhĐề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnh
Đề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnh
 
Đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino
Đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng ArduinoĐề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino
Đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino
 
Đề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAY
Đề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAYĐề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAY
Đề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAY
 
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnđồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
 
Xe hai bánh tự cân bằng.pdf
Xe hai bánh tự cân bằng.pdfXe hai bánh tự cân bằng.pdf
Xe hai bánh tự cân bằng.pdf
 
Hệ thống điều khiển đóng mở cửa tự động thông minh bằng PLC
Hệ thống điều khiển đóng mở cửa tự động thông minh bằng PLCHệ thống điều khiển đóng mở cửa tự động thông minh bằng PLC
Hệ thống điều khiển đóng mở cửa tự động thông minh bằng PLC
 
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
 
Các phương pháp thiết kế bộ điều khiển PID.docx
Các phương pháp thiết kế bộ điều khiển PID.docxCác phương pháp thiết kế bộ điều khiển PID.docx
Các phương pháp thiết kế bộ điều khiển PID.docx
 
Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdf
Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdfĐiều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdf
Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG.pdf
 
Đồ án 1_Thiết kế mạch đo nhiệt độ
Đồ án 1_Thiết kế mạch đo nhiệt độĐồ án 1_Thiết kế mạch đo nhiệt độ
Đồ án 1_Thiết kế mạch đo nhiệt độ
 
tinh-toan-dong-hoc-va-dieu-khien-robot-scara
tinh-toan-dong-hoc-va-dieu-khien-robot-scaratinh-toan-dong-hoc-va-dieu-khien-robot-scara
tinh-toan-dong-hoc-va-dieu-khien-robot-scara
 

Viewers also liked

File báo cáo đồ án smarthome
File báo cáo đồ án smarthomeFile báo cáo đồ án smarthome
File báo cáo đồ án smarthomeKim Long
 
Hướng dẫn giao tiếp serial port sử dụng vb
Hướng dẫn giao tiếp serial port  sử dụng vbHướng dẫn giao tiếp serial port  sử dụng vb
Hướng dẫn giao tiếp serial port sử dụng vbCong Pho
 
Ngôi nhà thông minh
Ngôi nhà thông minhNgôi nhà thông minh
Ngôi nhà thông minhLê Thịnh
 
Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Học Tự
 
Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)Nguyễn Quang Đạo
 
[ĐAMH] Thiết kế máy ép củi trấu
[ĐAMH] Thiết kế máy ép củi trấu[ĐAMH] Thiết kế máy ép củi trấu
[ĐAMH] Thiết kế máy ép củi trấuPham Hoang
 
Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335Pham Hoang
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...Freelancer
 
Tìm hiểu về cảm biến độ ẩm
Tìm hiểu về cảm biến độ ẩmTìm hiểu về cảm biến độ ẩm
Tìm hiểu về cảm biến độ ẩmPham Hoang
 
Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0Học Huỳnh Bá
 
Tìm hiểu về cảm biến nhiệt độ
Tìm hiểu về cảm biến nhiệt độTìm hiểu về cảm biến nhiệt độ
Tìm hiểu về cảm biến nhiệt độPham Hoang
 
Cong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungCong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungViet Nam
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Ky Nguyen Ad
 
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với ArduinoGiới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với ArduinoHoa Trương Việt
 
Code chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmCode chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmFreelancer
 
Chuong 2
Chuong 2Chuong 2
Chuong 2btminh
 
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SICGiới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SICTuan Hai
 

Viewers also liked (20)

File báo cáo đồ án smarthome
File báo cáo đồ án smarthomeFile báo cáo đồ án smarthome
File báo cáo đồ án smarthome
 
Hướng dẫn giao tiếp serial port sử dụng vb
Hướng dẫn giao tiếp serial port  sử dụng vbHướng dẫn giao tiếp serial port  sử dụng vb
Hướng dẫn giao tiếp serial port sử dụng vb
 
Ngôi nhà thông minh
Ngôi nhà thông minhNgôi nhà thông minh
Ngôi nhà thông minh
 
Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360
 
Chuong5 hoạt động port nối tiếp
Chuong5 hoạt động port nối tiếpChuong5 hoạt động port nối tiếp
Chuong5 hoạt động port nối tiếp
 
Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)
 
[ĐAMH] Thiết kế máy ép củi trấu
[ĐAMH] Thiết kế máy ép củi trấu[ĐAMH] Thiết kế máy ép củi trấu
[ĐAMH] Thiết kế máy ép củi trấu
 
Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
 
Tìm hiểu về cảm biến độ ẩm
Tìm hiểu về cảm biến độ ẩmTìm hiểu về cảm biến độ ẩm
Tìm hiểu về cảm biến độ ẩm
 
Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0
 
Tìm hiểu về cảm biến nhiệt độ
Tìm hiểu về cảm biến nhiệt độTìm hiểu về cảm biến nhiệt độ
Tìm hiểu về cảm biến nhiệt độ
 
880 linh kien_dien_tu
880 linh kien_dien_tu880 linh kien_dien_tu
880 linh kien_dien_tu
 
Cong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungCong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dung
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr
 
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với ArduinoGiới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
 
Thesisguideline dtvt 2011
Thesisguideline dtvt 2011Thesisguideline dtvt 2011
Thesisguideline dtvt 2011
 
Code chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmCode chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âm
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SICGiới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
 

Similar to [ĐAMH] Điều khiển thiết bị điện qua máy tính

Bai giang-ktvxl-2012
Bai giang-ktvxl-2012Bai giang-ktvxl-2012
Bai giang-ktvxl-2012Hòn Đá To
 
Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316minhpv32
 
tailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdf
tailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdftailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdf
tailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdftrathien0975420072
 
Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Mr Giap
 
THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52
THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52
THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52quanglocbp
 
Điều khiển động cơ sử dụng IC MCP4921
Điều khiển động cơ sử dụng IC MCP4921Điều khiển động cơ sử dụng IC MCP4921
Điều khiển động cơ sử dụng IC MCP4921Pham Hoang
 
Giáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdf
Giáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdfGiáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdf
Giáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdfMan_Ebook
 
Bao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dcBao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dcnamnam2005nt
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhCao Toa
 
Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Mr Giap
 
Do an can_dien_tu_1185 (1)
Do an can_dien_tu_1185 (1)Do an can_dien_tu_1185 (1)
Do an can_dien_tu_1185 (1)Huy Tuong
 
Cantudong phanvan thang_dh04td
Cantudong phanvan thang_dh04tdCantudong phanvan thang_dh04td
Cantudong phanvan thang_dh04tdToai Nguyen
 
Bộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lườngBộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lườngChia sẻ tài liệu học tập
 
Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012vanliemtb
 
Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012vanliemtb
 

Similar to [ĐAMH] Điều khiển thiết bị điện qua máy tính (20)

Avr nang cao
Avr nang caoAvr nang cao
Avr nang cao
 
Bai giang-ktvxl-2012
Bai giang-ktvxl-2012Bai giang-ktvxl-2012
Bai giang-ktvxl-2012
 
Đề tài: Xây dựng bộ đếm xung, ứng dụng đo tốc độ động cơ, HAY
Đề tài: Xây dựng bộ đếm xung, ứng dụng đo tốc độ động cơ, HAYĐề tài: Xây dựng bộ đếm xung, ứng dụng đo tốc độ động cơ, HAY
Đề tài: Xây dựng bộ đếm xung, ứng dụng đo tốc độ động cơ, HAY
 
Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316
 
tailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdf
tailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdftailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdf
tailieuxanh_giao_trinh_lap_trinh_nhung_0082.pdf
 
Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5
 
THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52
THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52
THIẾT KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52
 
Điều khiển động cơ sử dụng IC MCP4921
Điều khiển động cơ sử dụng IC MCP4921Điều khiển động cơ sử dụng IC MCP4921
Điều khiển động cơ sử dụng IC MCP4921
 
Giáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdf
Giáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdfGiáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdf
Giáo trình môn Lập trình nhúng, Trường ĐH Văn Hiến Tp.HCM.pdf
 
Bao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dcBao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dc
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52
 
Bao cao servo
Bao cao servoBao cao servo
Bao cao servo
 
Do an can_dien_tu_1185 (1)
Do an can_dien_tu_1185 (1)Do an can_dien_tu_1185 (1)
Do an can_dien_tu_1185 (1)
 
Chuong2
Chuong2Chuong2
Chuong2
 
Cantudong phanvan thang_dh04td
Cantudong phanvan thang_dh04tdCantudong phanvan thang_dh04td
Cantudong phanvan thang_dh04td
 
Bộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lườngBộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lường
 
Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012
 
Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012Tom tat lv th s ha quang thang 2012
Tom tat lv th s ha quang thang 2012
 
Luận văn: Chương trình WinCC kết hợp vói các PLC, HAY
Luận văn: Chương trình WinCC kết hợp vói các PLC, HAYLuận văn: Chương trình WinCC kết hợp vói các PLC, HAY
Luận văn: Chương trình WinCC kết hợp vói các PLC, HAY
 

More from Pham Hoang

Bit manipulation in atmel studio for AVR
Bit manipulation in atmel studio for AVRBit manipulation in atmel studio for AVR
Bit manipulation in atmel studio for AVRPham Hoang
 
Design, construction and operation details biomass briquetti
Design, construction and operation details biomass briquettiDesign, construction and operation details biomass briquetti
Design, construction and operation details biomass briquettiPham Hoang
 
Mach dien 3 pha
Mach dien 3 phaMach dien 3 pha
Mach dien 3 phaPham Hoang
 
Zero voltage switching resonant power conversion
Zero voltage switching resonant power conversionZero voltage switching resonant power conversion
Zero voltage switching resonant power conversionPham Hoang
 
Noise in Electronic System
Noise in Electronic SystemNoise in Electronic System
Noise in Electronic SystemPham Hoang
 
TCVN 5699-1/2014
TCVN 5699-1/2014TCVN 5699-1/2014
TCVN 5699-1/2014Pham Hoang
 
Dien tu cong nghiep
Dien tu cong nghiepDien tu cong nghiep
Dien tu cong nghiepPham Hoang
 
Tài liệu Matlab kỹ thuật
Tài liệu Matlab kỹ thuậtTài liệu Matlab kỹ thuật
Tài liệu Matlab kỹ thuậtPham Hoang
 
Hệ thống bôi trơn và làm mát
Hệ thống bôi trơn và làm mátHệ thống bôi trơn và làm mát
Hệ thống bôi trơn và làm mátPham Hoang
 
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tục[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tụcPham Hoang
 

More from Pham Hoang (12)

Bit manipulation in atmel studio for AVR
Bit manipulation in atmel studio for AVRBit manipulation in atmel studio for AVR
Bit manipulation in atmel studio for AVR
 
Design, construction and operation details biomass briquetti
Design, construction and operation details biomass briquettiDesign, construction and operation details biomass briquetti
Design, construction and operation details biomass briquetti
 
Sóng hài
Sóng hàiSóng hài
Sóng hài
 
Mach dien 3 pha
Mach dien 3 phaMach dien 3 pha
Mach dien 3 pha
 
Zero voltage switching resonant power conversion
Zero voltage switching resonant power conversionZero voltage switching resonant power conversion
Zero voltage switching resonant power conversion
 
Noise in Electronic System
Noise in Electronic SystemNoise in Electronic System
Noise in Electronic System
 
TCVN 5699-1/2014
TCVN 5699-1/2014TCVN 5699-1/2014
TCVN 5699-1/2014
 
3000 tu
3000 tu3000 tu
3000 tu
 
Dien tu cong nghiep
Dien tu cong nghiepDien tu cong nghiep
Dien tu cong nghiep
 
Tài liệu Matlab kỹ thuật
Tài liệu Matlab kỹ thuậtTài liệu Matlab kỹ thuật
Tài liệu Matlab kỹ thuật
 
Hệ thống bôi trơn và làm mát
Hệ thống bôi trơn và làm mátHệ thống bôi trơn và làm mát
Hệ thống bôi trơn và làm mát
 
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tục[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
 

[ĐAMH] Điều khiển thiết bị điện qua máy tính

  • 1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÀI TẬP LỚN Đề tài: Đóng cắt thiết bị điện GVHD: ThS. Hoàng Văn Mạnh Nhóm sinh viên: Nhóm 2 Lớp: K57M Khoa: Cơ học kỹ thuật & Tự động hóa Hà Nội, ngày 28/12/2015 Môn: Ứng dụng máy tính trong đo lường và điều khiển
  • 2. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 1 Mục lục Lời mở đầu.............................................................................................................................2 Phần I. Cơ sở lý thuyết liên quan........................................................................................3 I. Vi điều khiển Atmega16................................................................................................................. 3 1. Cấu trúc nhân................................................................................................................................. 3 2. Sơ đồ khối ........................................................................................................................................ 6 3. Ý nghĩa các chân............................................................................................................................ 7 4. Bộ định thời..................................................................................................................................... 7 5. Giao tiếp USART ......................................................................................................................... 10 II. Giao tiếp cổng COM với chuẩn RS232............................................................................... 12 1. Tổng quan chuẩn RS232 và cổng nối tiếp RS232 (cổng COM)...................................... 12 2. Quá trình dữ liệu.......................................................................................................................... 14 3. Sơ đồ ghép nối RS232................................................................................................................. 15 4. Phần mềm giao tiếp cổng COM............................................................................................... 16 III. Rơ-le (Relay) đóng mở thiết bị điện..................................................................................... 16 1. Các khái niệm............................................................................................................................... 16 2. Nguyên lý hoạt động của Rơ-le................................................................................................ 17 3. Ghép nối các linh kiện thành module Rơ-le ......................................................................... 18 IV. Lập trình giao diện với ngôn ngữ C#................................................................................... 19 Phần II. Nội dung thực hiện ..............................................................................................20 I. Thiết kế phần cứng..................................................................................................................... 20 1. Mạch nguồn 5V ............................................................................................................................ 20 2. Mạch điều khiển........................................................................................................................... 20 3. Mạch công suất ............................................................................................................................ 22 4. Mạch mô phỏng trong Proteus................................................................................................. 23 II. Phần mềm nạp cho vi điều khiển .......................................................................................... 24 1. Lưu đồ thuật toán......................................................................................................................... 24 2. Chương trình................................................................................................................................. 24 III. Giao diện điều khiển .................................................................................................................. 27 1. Khái quát giao diện..................................................................................................................... 27 2. Các đoạn mã liên quan .............................................................................................................. 28 IV. Hình ảnh phần cứng................................................................................................................... 30 Phần III. Kết luận, đánh giá đề tài và hướng phát triển ................................................33 I. Kết luận.............................................................................................................................................. 33 II. Đánh giá.......................................................................................................................................... 33 1. Ưu điểm.......................................................................................................................................... 33 2. Nhược điểm ................................................................................................................................... 33 III. Hướng phát triển......................................................................................................................... 33 IV. Hình ảnh sản phẩm hoàn chỉnh............................................................................................. 33
  • 3. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 2 Lời mở đầu Chúng ta đang sống trong thời đại công nghiệp hóa, gần như mọi thứ đều được thực hiện một cách tự động, liên tục. Công nghiệp hóa làm phát triển ngành công nghiệp điều khiển lên một tầm cao mới, đạt hiệu quả cao và cho năng suất lớn. Việc điều khiển có ý nghĩa vô cùng quan trọng với đời sống, nó làm cho các quá trình được đơn giản hóa, đỡ phức tạp đi, giải phóng sức lao động của con người mà hơn hết đó là hiệu quả thu được vô cùng to lớn. Quá trình điều khiển được áp dụng ở hầu hết các ngành từ công nghiệp đến nông nghiệp và cả dịch vụ, trong đó ở ngành công nghiệp là dễ tìm thấy nhất và cũng chiếm tỉ lệ cao nhất. Có nhiều phương pháp điều khiển khác nhau như điều khiển thường, điều khiển bằng các thuật toán điều khiển như thuật toán mờ, thuật toán PID, … Các hình thức điều khiển cũng nhiều và đa dạng như điều khiển bằng nút nhấn, điều khiển từ xa, điều khiển thông qua các bộ vi điều khiển có cài đặt sẵn các chương trình, điều khiển qua máy tính, điều khiển qua mạng, điều khiển qua điện thoại, … Mỗi một hình thức lại có một ưu điểm, nhược điểm riêng nhưng cơ bản đều nhằm đạt được mục đích của người sử dụng đó là điều khiển được các thiết bị điện để chúng hoạt động nhằm phục vụ mục đích sử dụng. Nhằm vận dụng những kiến thức đã học trên lớp về vi điều khiển và lập trình, chúng em đã thực hiện đề tài “Đóng cắt thiết bị điện” với mục đích nắm được cơ bản về vi điều khiển ATmega16, sơ đồ các chân, cách lập trình vào ra với vi điều khiển cũng như cách để tạo ra một phần mềm điều khiển trên máy tính. Bài của chúng em gồm các phần: Phần I. Cơ sở lý thuyết liên quan Phần II. Nội dung thực hiện Phần III. Kết luận, đánh giá đề tài và hướng phát triển. Các thành viên nhóm: STT Họ và tên Mã sinh viên Ghi chú 1 Phạm Trần Hoàng 12020162 2 Vũ Đình Ngọc 12020271 3 Nguyễn Viết Bình 12020525 4 Nguyễn Sỹ Trung 12020396
  • 4. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 3 Phần I. Cơ sở lý thuyết liên quan I. Vi điều khiển Atmega16 ATmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC. Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock, ATmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz. Ngoài ra ATmega16 có các đặc điểm sau: 16KB bộ nhớ Flash với khả năng đọc trong khi ghi, 512 byte bộ nhớ EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào ra chung, 3 bộ định thời/bộ đếm, ngắt nội và ngắt ngoại, USART, giao tiếp nối tiếp 2 dây, 8 kênh ADC 10 bit, ... ATmega 16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, … Hình 1. Hình ảnh và sơ đồ chân của vi điều khiển Atmega16. 1. Cấu trúc nhân CPU của Atmega16 có chức năng bảo đảm sự hoạt động chính xác các chương trình. Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều khiển các thiết bị ngoại vi và quản lý ngắt. Cấu trúc tổng quát AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình và dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương trình được lưu trong bộ nhớ Flash.
  • 5. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 4 Hình 2. Cấu trúc tổng quát Atmega16 ALU ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại: đại số, logic và theo bit. Thanh ghi trạng thái Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic. Hình 3. Thanh ghi trạng thái Trong đó: + C: Carry Flag: cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập). + Z: Zero Flag: Cờ zero (Nếu kết quả phép toán bằng 0). + N: Negative Flag: (Nếu kết quả của phép toán là âm). + V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2) + H: Half Carry Flag + T: Transfer bit used by BLD and BST instructions: (Được sử dụng làm nơi trung gian
  • 6. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 5 trong các lệnh BLD,BST). + I: Global Interrupt Enable/Disable Flag: (Đây là bit cho phép toàn cục ngắt. Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.) Các thanh ghi chức năng chung Hình 4. Các thanh ghi chức năng chung Con trỏ ngăn xếp (SP) Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (trong bộ nhớ RAM là $5E) và có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp. Hình 5. Thanh ghi con trỏ ngăn xếp Quản lý ngắt Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn sàng cho đổi dữ liệu của mình.Ví dụ: khi bộ truyền nhận UART nhận được một byte nó sẽ báo cho CPU biết thông qua cờ RXC, hoặc khi nó đã truyền được một byte thì cờ TX được thiết lập … Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện.
  • 7. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 6 Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên. Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp. Trường hợp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua. Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X, Y, Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ: SPL: 0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E. Khi chương trình phục vụ ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh PUSH. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi. 2. Sơ đồ khối Hình 6: Sơ đồ khối
  • 8. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 7 3. Ý nghĩa các chân ChânVCC: Chân số 10 là VCC cấp điện áp nguồn cho Vi điều khiển. Nguồn điện cấp trong khoảng +5V ± 0,5. Chân GND: Chân số11 và chân số 31 nối GND(hay nối Mass). Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805. Port A (PA): Port A gồm 8 chân (từ chân 33 đến 40) có chức năng: đầu vào cho chuyển đổi ADC. Port B (PB): Port PB gồm 8 chân (từ chân 1 đến chân 8), ngoài có chức năng làm các đường xuất/nhập thì còn có nhiều chức năng phụ khác. Port C (PC): Port C gồm 8 chân (từ chân 22 đến chân 29) : Nếu giao tiếp JTAG được kích hoạt điện trở trên các PC5(TDI), PC3 (TMS) ,PC2 (TCK) sẽ được kích hoạt ngay cả khi khởi động lại (reset) Port D (PD): Port D gồm 8 chân (từ chân 14 đến 21):chưc năng xuất nhập Chân RESET(RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy. Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 12 và 13 được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định. Chân AVCC: Nguồn cấp cho cổng A và bộ chuyển đổi ADC , chân này nên được nối với nguồn cấp VCC bên ngoài , ngay cả khi bộ chuyển đổi ADC không được sử dụng. Nếu bộ chuyển đổi ADC không được sử dụng, chân AVCC nên được nối với nguồn qua bộ lọc. Chân AREF: AREF là chân chuẩn analog cho bộ chuyển đổi ADC. 4. Bộ định thời Bộ định thời (timer/counter) là một module định thời/đếm 8 bit, có các đặc điểm sau: + Bộ đếm một kênh + Xóa bộ định thời khi trong mode so sánh + PWM + Tạo tần số + Bộ đếm sự kiện ngoài + Bộ chia tần 10 bit + Nguồn ngắt tràn bộ đếm và so sánh TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi TIFR. Các ngắt có thể được che bởi thanh ghi TIMSK. Bộ định thời có thể sử dụng xung clock nội thông qua bộ chia hoặc xung clock ngoài trên chân T0. Khối chọn xung clock điều khiển việc bộ định thời bộ đếm sẽ dùng nguồn xung nào để tăng giá trị của nó. Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời. Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm. Kết quả so sánh có thể được sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0. Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được. Cấu trúc của nó như hình dưới đây:
  • 9. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 8 Hình 7. Sơ đồ đơn vị đếm + Count: tăng hay giảm TCNT0:1 + Direction: lựa chọn giữa đếm lên và đếm xuống + Clear: xóa thanh ghi TCNT0 + TOP: báo hiệu bộ định thời đẫ tăng đến giá trị lớn nhất + BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị thanh ghi so sánh ngõ ra (OCR0). Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo. Nếu được kích hoạt (OCIE0 = 1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động được xóa khi ngắt được thực thi. Cờ OCF0 cũng có thể được xóa bằng phần mềm. Hình 8. Sơ đồ đơn vị so sánh ngõ ra  Mô tả các thanh ghi  Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0 + Bit 7 (FOC0): so sánh ngõ ra bắt buộc: bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM. Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng.
  • 10. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 9 + Bit 6 (WGM00) – bit 3 (WGM01): chế độ tạo dạng sóng: các bit này điều khiển hoạt động của chân OC0. Nếu một hoặc cả hai bit COM01, COM00 được đặt lên 1, ngõ ra OC0 sẽ hoạt động. + Bit 2 (CS02), bit 1 (CS01), bit 0 (CS00): chọn xung đồng hồ: ba bit này dùng để lựa chọn nguồn xung cho bộ định thời/bộ đếm. Hình 9. Lựa chọn nguồn xung cho bộ định thời  Thanh ghi bộ định thời/bộ đếm Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp vào bộ đếm 8 bit.  Thanh ghi so sánh ngõ ra – OCR0 Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm  Thanh ghi mặt nạ ngắt + Bit 1 (OCIE0): cho phép ngắt báo hiệu so sánh + Bit 0 (TOIE0): cho phép ngắt tràn bộ đếm  Thanh ghi cờ ngắt bộ định thời
  • 11. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 10 + Bit 1 (OCF0): Cờ so sánh ngõ ra 0 + Bit 0 (TOV0): Cờ tràn bộ đếm Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và được xóa bởi phần cứng khi vector ngắt tương ứng được thực hiện. Bit này cũng có thể được xóa bằng phần mềm. 5. Giao tiếp USART 5.1. Các thuật ngữ được dùng trong giao tiếp USART Truyền thông nối tiếp không đồng bộ Trong nhiều bài toán cần sử dụng vi điều khiển và máy tính kết nối với nhau, trong quá trình làm việc đó vi điều khiển cần trao đổi dữ liệu với máy tính. Ví dụ như vi điều khiển gửi giá trị đo đạc bằng ADC về máy tính và máy tính gửi tín hiệu điều khiển xuống vi điều khiển. Giả sử dữ liệu cần trao đổi là các mã có chiều dài 8 bit, cách đơn giản nhất là kết nối một cổng (8 bit) của vi điều khiển với máy tính, mỗi dây nối sẽ chịu trách nhiện truyền nhận một bit dữ liệu. Đây gọi là cách giao tiếp song song, cách này là cách đơn giản nhất, nhưng nhược điểm của cách truyền này là số đường truyền quá nhiều, giá trị càng lớn thì số đường truyền cũng sẽ nhiều thêm. Trong truyền thông nối tiếp dữ liệu được truyền từng bit trên một hoặc một ít đường truyền, vì thế tiết kiệm đường truyền dữ liệu. Hình dưới mô tả sự so sánh giữa hai cách truyền song song và nối tiếp trong việc truyền số 187 (10111011). Hình 10. Phương pháp truyền song song (a) và nối tiếp (b) Vì dữ liệu cần đươc chia nhỏ thành từng bit khi truyền nhận, tốc độ truyền nối tiếp sẽ bị giảm. Mặt khác để đảm bảo tính tính chính xác của dữ liệu, bộ truyền và bộ nhận cần có những tiêu chuẩn nhất định. Khái niệm đồng bộ để chỉ sự báo trước trong quá trình truyền. Lấy ví dụ thiết bị 1 (tb1) kết nối với thiết bị 2 (tb2) bởi hai đường, một đường dữ liệu và một đường xung nhịp. Cứ mỗi lần tb1 muốn gửi một bit dữ liệu, tb1 điều khiển đường xung nhịp chuyển từ mức thấp lên mức cao báo cho tb2 sẵn sàng nhận một bit. Bằng cách báo trước này tất cả các bit dữ liệu có thể truyền/ nhận dễ dàng với ít rủi ro trong quá trình truyền. Tuy nhiên cách truyền này đòi hỏi ít nhất hai đường truyền cho một quá trình (gửi hoặc nhận dữ liệu). Khác với cách truyền đồng bộ, truyền thông không đồng bộ chỉ cần một đường truyền cho một quá trình. Khung dữ liệu đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến. Ví dụ hai thiết bị đang giao tiếp với nhau theo phương pháp này, chúng đã
  • 12. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 11 được thỏa thuận với nhau là cứ 1ms thì sẽ có một bit dữ liệu truyền đến, như thế thiết bị nhận chỉ cần kiểm tra và đọc đường truyền mỗi mili-giây để đọc các bit dữ liệu và sau đó kết hợp chúng lại thành dữ liệu có ý nghĩa. Truyền thông nối tiếp không đồng bộ vì thế hiệu quả hơn truyền thông đồng bộ (không cần nhiều đường truyền). Tuy nhiên, để quá trình truyền thành công thì việc tuân thủ các tiêu chuẩn truyền là hết sức quan trọng. Tốc độ Baud (Baud Rate) Như trong ví dụ trên về việc truyền một bit trong 1ms, ta thấy rằng để việc truyền và nhận không đồng bộ xảy ra thành công thì các thiết bị tham gia phải thống nhất nhau về khoảng thời gian dành cho 1 bit truyền hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này gọi là tốc độ Baud. Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây. Ví dụ nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1 / 19200 ~ 52.083us. Khung truyền (Frame) Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền, các bit báo như bit start, bit stop, các bit kiểm tra như Parity. Ngoài ra số lượng các bit trong một data cũng được quy định bởi khung truyền. Hình dưới là một ví dụ của một khung truyền theo USART, khung truyền này được bắt đầu bằng một start bit, tiếp theo là 8 bit data, sau đó là 1 bit Parity dùng kiểm tra dữ liệu và cuối dùng là 1 bit stop. Hình 11. Khung truyền theo USART Start Start là bit đầu tiên được truyền trong một frame truyền, bit này có chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền tới. Start là bit bắt buộc phải có trong khung truyền. Data Data hay dữ liệu cần truyền là thông tin chính cần gửi và nhận, thường data gồm 8 bit. Parity bit Parity là bit dùng kiểm tra dữ liệu truyền đúng không (một cách tương đối). Parity bit không phải là bit bắt buộc và vì thế có thể loại bit này khỏi khung truyền. Stop bit Stop bit là một hoặc các bit báo cho thiết bị nhận rằng một gói dữ liệu đã được gửi xong. Stop bit là các bit bắt buộc xuất hiện trong khung truyền. 5.2. Giao tiếp USART trên Atmega16 Vi điều khiển Atmega16 có một module truyền thông nối tiếp USART. Với chế độ truyền nối tiếp không đồng bộ (giao tiếp với máy tính), hai chân của Atmega16 để phục vụ cho truyền nhận dữ liệu là: chân truyền dữ liệu TxD (Transmitted Data) chân 15 (PD1) của vi điều khiển và chân nhận dữ liệu RxD (Reveived Data) chân số 14 (PD0).
  • 13. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 12 Hình 12. Chân RxD và TxD trên Atmega16 Module USART trên vi điều khiển Atmega16 hoạt động theo chế độ quá trình truyền và nhận dữ liệu có thể xảy ra đồng thời. Khi sử dụng USART để giao tiếp với máy tính, phải thiết lập các thông số hoạt động ở vi điều khiển và trên máy tính giống nhau bao gồm: Baud Rate: Baud rate càng cao thì tốc độ truyền càng nhanh, tuy nhiên xác suất xảy ra lỗi trong quá trình truyền/nhận cũng lớn hơn. Thường chọn Baud rate là 9600 với các ứng dụng không đòi hỏi tốc độ cao. Frame: khung truyền bao gồm start bit, data, parity bit và stop bit trong đó start bit là cố định và không thay đổi. USART của Atmega16 cũng có tính năng ngắt, ngắt của USART xảy ra khi hoàn tất gửi xong một dữ liệu, hoặc nhận xong một dữ liệu. Tính năng ngắt khi nhận xong một dữ liệu sẽ được dùng trong ứng dụng truyền dữ liệu từ vi xử lý về máy tính. II. Giao tiếp cổng COM với chuẩn RS232 Ngày nay các thiết bị đo lường, điều khiển ... đều phải giao tiếp với máy tính để quan sát thông số và chế độ hoạt động của thiết bị như thế nào. Chuẩn giao tiếp được coi là đơn giản và dễ dùng đó là RS232. Hầu như các thiết bị đều được giao tiếp với máy tính thông qua chuẩn này. Hình 13. Cổng COM và IC MAX232 trong giao tiếp RS232 1. Tổng quan chuẩn RS232 và cổng nối tiếp RS232 (cổng COM) Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là hai thiết bị, chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý
  • 14. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 13 nghĩa của chuẩn truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit được gửi đi dọc theo đường truyền. Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngắn gọn là chuẩn RS232. Các máy tính thường có một hoặc hai cổng nối tiếp theo chuẩn RS232C được gọi là cổng COM. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường. Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp. Tuy nhiên trong các máy tính hiện đại ngày nay, đặc biệt là các máy tính xách tay thì các cổng COM cũng không còn được tích hợp vào main của máy tính. Để sử dụng cổng COM với loại máy này thì cần phải có các thiết bị chuyển đổi tương tự như cáp chuyển đổi USB to COM. Ưu điểm của giao diện nối tiếp RS232: + Khả năng chống nhiễu của các cổng nối tiếp cao. + Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện. + Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp. Những đặc điểm cần lưu ý trong chuẩn RS232: + Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là ±12V. Hiện nay đang được cố định trở kháng tải trong phạm vi từ 3000Ω - 7000Ω. + Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ 3V đến 12V. + Tốc độ truyền nhận dữ liệu cực đại là 100kbps. + Các lối vào phải có điện dung nhỏ hơn 2500pF. + Trở kháng tải phải lớn hơn 3000Ω nhưng phải nhỏ hơn 7000Ω + Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m nếu không sử modem. + Các giá trị tốc độ truyền dữ liệu chuẩn: 50, 75, 110, 750, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 56600, 115200 bps. Các mức điện áp đường truyền RS232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên ra đời nó đã mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương thích TTL để mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được đấu vào bus của bộ phận và các trở kháng ra của bộ phát. Mức điện áp của tiêu chuẩn RS232C được mô tả như sau: + Mức logic 0 : +3V , +12V + Mức logic 1 : -12V, -3V Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ -3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền.
  • 15. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 14 Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBp. Cổng nối tiếp RS232 trên PC (cổng COM): Xét sơ đồ chân cổng COM 9 chân: Hình 14. Cổng COM và sơ đồ chân Chức năng của các chân như sau: + Chân 1: Data Carrier Detect (DCD): Phát tín hiệu mang dữ liệu + Chân 2: Receive Data (RxD): Nhận dữ liệu + Chân 3: Transmit Data (TxD): Truyền dữ liệu + Chân 4: Data Termial Ready (DTR): Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ phận khi muốn truyền dữ liệu + Chân 5: Singal Ground (SG): Mass của tín hiệu + Chân 6: Data Set Ready (DSR): Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu + Chân 7: Request to Send: yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu + Chân 8: Clear To Send (CTS): Xóa để gửi, bộ nhận đặt đường này lên mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu + Chân 9: Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung chuông. 2. Quá trình dữ liệu 2.1. Quá trình truyền dữ liệu Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy nên tại một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếp theo. Bit này luôn bắt đầu bằng mức 0. Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII (có thể là 5, 6, 7 hay 8 bit dữ liệu). Sau đó là một Parity bit (kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1, 1.5 hay 2 bit dừng. 2.2. Baud Rate (tốc độ baud) Đây là một tham số đặc trưng của RS232, tham số này đặc trưng cho quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit. Tốc độ bit
  • 16. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 15 được định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit truyền được trong thời gian 1 giây. Tốc độ bit này phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau. Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền còn tốc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền. Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ Baud là phải đồng nhất. Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 56000, 115200, … Khi sử dụng chuẩn nối tiếp cáp cổng Com RS232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. Điều này làm giới hạn tốc Baud và khoảng cách truyền. 2.3. Parity bit (bit chẵn lẻ) Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi khi truyền dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong quá trình truyền. Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ. Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để cho thấy số lượng các bit 1 được gửi trong một khung truyền là chẵn hay lẻ. Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi ví dụ như 1, 3, 5, 7, 9 ... Nếu như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi. 3. Sơ đồ ghép nối RS232 3.1. Mạch chuẩn giao RS232 dùng IC MAX232 MAX232 là IC do hãng Maxim sản xuất chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi. Đây là IC chạy ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232. MAX232 được tích hợp hai kênh truyền cho chuẩn RS232, dòng tín hiệu được thiết kế cho chuẩn RS232. Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện. Ngoài ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ. Mạch giao tiếp như sau: Hình 15. Sơ đồ phần cứng kết nối MAX232 với cổng COM
  • 17. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 16 3.2. Mạch chuẩn giao tiếp RS232 dùng DS275 Đây cũng là IC của hãng Maxim. DS275 được dùng trong các mạch giao tiếp của chuẩn RS232 nhưng do nó chỉ là bán song công và dùng trong các thiết kế công suất nhỏ. Hình 16. Sơ đồ kết nối phần cứng dùng DS275 3.3. Mạch chuẩn giao tiếp RS232 dùng transistor Mạch sử dụng hai transior để giao tiếp RS232. Hình 17. Sơ đồ kết nối phần cứng dùng transistor 4. Phần mềm giao tiếp cổng COM Giao tiếp chuẩn giữa RS232 và vi điều khiển phải thông qua phần mềm giao diện để nhận biết được dữ liệu truyền lên và nhận xuống như thế nào. Có thể dùng các ngôn ngữ lập trình giao diện như C#, Visual Basic, Matlab, LabView, C, C++, … để viết ra các giao diện giúp giao tiếp truyền nhận từ vi điều khiển với máy tính. Có thể dùng một số phần mềm có sẵn để kiểm tra giao diện như Terminal, Hyper Terminal, … Với máy tính xách tay, để tiện dùng thì có thể sử dụng phần mềm mô phỏng cổng COM ảo để tạo ra các cổng COM ảo để mô phỏng, đó là phần mềm VirtualSerialPort, khi đó có thể tạo ra được các cặp cổng COM ảo và có thể dùng để mô phỏng dễ dàng. III. Rơ-le (Relay) đóng mở thiết bị điện 1. Các khái niệm
  • 18. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 17 Rơ-le là một công tắc đóng ngắt, nhưng khác với các công tắc thường là nó được đóng ngắt bởi nguồn điện thay vì do con người thao tác. Vì vậy, rơ-le được dùng làm công tắc điện tử. Rơ-le cũng có hai trạng thái là đóng và ngắt, xác định được khi nào rơ-le đóng, khi nào ngắt thì đã điều khiển được rơ-le đóng mở như một công tắc. Tùy theo cách tích hợp linh kiện với rơ-le mà ở đây là transistor (loại NPN hoặc PNP) thì có hai loại module rơ-le là module rơ-le đóng ở mức thấp, module rơ-le đóng ở mức cao. Để phân biệt được hai loại module này thì có thể thử bằng cách cấp nguồn vào các chân điều khiển để xác định hoặc tra tên của transistor để biết transistor đó là transistor thuận hay ngược (transistor NPN kích ở mức cao, transistor PNP kích ở mức thấp. Hình 18. Module Rơ-le. Các thông số của một module rơ-le: Hiệu điện thế kích tối ưu: xem rơ-le hoạt động ở mức điện áp nào thì chọn loại module rơ- le. Một số mức điện áp hoạt động của rơ-le thường thấy như 5V, 12V, 24V, … Các mức hiệu điện thế tối đa và cường độ dòng điện tối đa của đồ dùng điện khi nối vào rơ- le. Các giá trị này đã được ghi ở mặt trên vỏ của rơ-le. Xét với rơ-le 5V các thông số thường thấy gồm có: + 10A – 250VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế nhỏ hơn hoặc bằng 250V (AC) là 10A. + 10A – 30VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế nhỏ hơn hoặc bằng 30V (DC) là 10A. + 10A – 125VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế nhỏ hơn hoặc bằng 125V (AC) là 10A. + 10A – 28VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế nhỏ hơn hoặc bằng 28V (DC) là 10A. + SRD-05VDC-SL-C: Hiệu điện thế kích tối ưu là 5V. 2. Nguyên lý hoạt động của Rơ-le Dạng phổ biến nhất của rơ-le cơ điện gồm một cuộn dây điện được cuốn trên một lõi sắt từ. Bộ phận này có cả một phần tĩnh và một phần động trong đó phần động được liên kết cơ học với một tiếp điểm động.
  • 19. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 18 Hình 19. Cấu tạo của Rơ-le và nối với thiết bị điện Khi cuộn dây được cấp điện, từ trường được tạo ra xung quanh cuộn và được lõi tập trung lại tạo thành một nam châm điện. 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. Khi rơ-le bị ngắt điện, từ trường 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í ban đầu. 3. Ghép nối các linh kiện thành module Rơ-le Hình 20. Các linh kiện cơ bản trong ghép nối module rơ-le
  • 20. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 19 Hình 21. Mạch điều khiển thiết bị dùng Rơ-le 5V và cách ly quang PC817 IV. Lập trình giao diện với ngôn ngữ C# C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có sự cân bằng giữa C++, Visual Basic, Delphi và Java. C# được thiết kế chủ yếu bởi Anders Hejilsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC. C# theo một hướng nào đó là ngôn ngữ lập trình phản ánh trực tiếp nhất đến .NET Framework mà tất cả các chương trình .NET chạy và nó phụ thuộc mạnh mẽ vào Framework này. Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector và nhiều kiểu trừu tượng khác như class, delegate, interface, exception, … phản ánh rõ ràng những đặc trưng của .NET runtime. So sánh với C và C++, ngôn ngữ C# bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau: + Các con trỏ chỉ có thể được sử dụng trong các chế độ không an toàn, hầu hết các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm. Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị, còn những đối tượng thuộc bộ thu rác thì chỉ được gọi bằng cách tham chiếu. + Các đối tượng không thể được giải phóng tường minh. + Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng. Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi. + C# thì an toàn kiểu (typesafe) hơn C++ + Cú pháp khai báo mảng khác nhau. + Kiểu thứ tự được thay thế bằng tên miền không gian (namespace) + C# không có tiêu bản + Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập dữ liệu. + Có reflection.
  • 21. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 20 Phần II. Nội dung thực hiện I. Thiết kế phần cứng 1. Mạch nguồn 5V Hình 22. Sơ đồ nguyên lý mạch nguồn 5V dùng IC LM2576 Hình 23. Sơ đồ mạch in mạch nguồn 5V Mạch nguồn 5V có tác dụng cung cấp nguồn cho mạch điều khiển và mạch công suất hoạt động. Ưu điểm của việc dùng IC LM2576 để tạo ra điện áp 5V so với một số IC khác (như LM7805) đó là dòng ra lớn (~3A), IC ít nóng hơn, tuy nhiên mạch nguồn phải mắc thêm nhiều linh kiện hơn. 2. Mạch điều khiển
  • 22. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 21 Hình 24. Sơ đồ nguyên lý mạch điều khiển dùng IC Atmega16 Hình 25. Sơ đồ mạch in mạch điều khiển
  • 23. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 22 3. Mạch công suất Hình 26. Sơ đồ nguyên lý mạch công suất Hình 27. Sơ đồ một nhánh trong mạch công suất
  • 24. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 23 Hình 28. Sơ đồ mạch in mạch công suất 4. Mạch mô phỏng trong Proteus
  • 25. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 24 II. Phần mềm nạp cho vi điều khiển 1. Lưu đồ thuật toán Hình 29. Lưu đồ thuật toán chương trình Để đọc một ký tự gửi xuống từ cổng COM, ta dùng lệnh getchar(); Để gửi một chuỗi từ vi điều khiển lên máy tính ta dùng lệnh puts(); 2. Chương trình #include <mega16.h> #include <stdio.h> char read; void main(void) { int dem1=0, dem2=0, dem3=0, dem4=0, dem5=0, dem6=0, dem7=0, dem8=0; PORTC = 0xff; DDRC = 0xff; DDRD = 0x00; UCSRA = 0x00; UCSRB = 0x18; UCSRC = 0x86; UBRRH = 0x00; UBRRL = 0x33;
  • 26. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 25 while (1) { read = getchar(); switch(read) { case '0': { puts("Tat tat ca, "); PORTC = 0xff; break; } case '1': { dem1++; PORTC.0 = ~PORTC.0; if(dem1 % 2 == 0) { puts("TB1: OFF, "); } else { puts("TB1: ON, "); } break; } case '2': { dem2++; PORTC.1 = ~PORTC.1; if(dem2 % 2 == 0) { puts("TB2: OFF, "); } else { puts("TB2: ON, "); } break; } case '3': { dem3++; PORTC.2 = ~PORTC.2; if(dem2 % 2 == 0) { puts("TB3: OFF, "); } else { puts("TB3: ON, "); } break; }
  • 27. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 26 case '4': { dem4++; PORTC.3 = ~PORTC.3; if(dem3 % 2 == 0) { puts("TB4: OFF, "); } else { puts("TB4: ON, "); } break; } case '5': { dem5++; PORTC.4 = ~PORTC.4; if(dem5 % 2 == 0) { puts("TB5: OFF, "); } else { puts("TB5: ON, "); } break; } case '6': { dem6++; PORTC.5 = ~PORTC.5; if(dem6 % 2 == 0) { puts("TB6: OFF, "); } else { puts("TB6: ON, "); } break; } case '7': { dem7++; PORTC.6 = ~PORTC.6; if(dem7 % 2 == 0) { puts("TB7: OFF, "); } else { puts("TB7: ON, ");
  • 28. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 27 } break; } case '8': { dem8++; PORTC.7 = ~PORTC.7; if(dem8 % 2 == 0) { puts("TB8: OFF, "); } else { puts("TB8: ON, "); } break; } case '9': { puts("Bat tat ca, "); PORTC = 0x00; break; } } } } III. Giao diện điều khiển 1. Khái quát giao diện Hình 30. Giao diện điều khiển trên máy tính
  • 29. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 28 2. Các đoạn mã liên quan Khai báo thêm các thư viện chức năng: using System.IO; // Thư viện cho xuất nhập using System.IO.Ports; // Thư viện dùng cho cổng COM using System.Xml; using System.Diagnostics; // Thư viện dùng cho Timer Lấy tất cả các cổng COM có trong máy tính Khai báo thêm lệnh SerialPort P = new SerialPort(); trong lớp public partial class Form1 : Form namespace DieuKhienThietBi { public partial class Form1 : Form { SerialPort P = new SerialPort(); delegate void SetTextCallback(string text); string InputData = String.Empty; public Form1() { InitializeComponent(); // Lấy tất cả các cổng COM có trong máy tính string[] Ports = SerialPort.GetPortNames(); cmbCOM.Items.AddRange(Ports); Kết nối và hủy kết nối cổng COM Sử dụng hai nút nhấn (button) trong C# để thực hiện việc kết nối và ngắt kết nối với cổng COM. // Nút kết nối private void btnKetnoi_Click(object sender, EventArgs e) { try // trường hợp bình thường { P.Open(); // P là một lớp SerialPort (cổng COM) đã khai báo grbCOM.Enabled = false; btnNgatketnoi.Enabled = true; btnKetnoi.Enabled = false; grbModeControl.Enabled = true; // Thông báo trạng thái kết nối lblStatus.Text = "Đã kết nối với cổng " + cmbCOM.SelectedItem.ToString(); } catch // trường hợp xảy ra lỗi { MessageBox.Show("Kết nối thất bại, hãy thử kết nối lại.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); btnNgatketnoi.Enabled = false; btnKetnoi.Enabled = true; grbModeControl.Enabled = false; grbCOM.Enabled = true; cmbCOM.Focus();
  • 30. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 29 } } // Nút ngắt kết nối private void btnNgatketnoi_Click(object sender, EventArgs e) { P.Close(); btnKetnoi.Enabled = true; btnNgatketnoi.Enabled = false; grbCOM.Enabled = true; lblStatus.Text = "Đã ngắt kết nối."; } Hàm nhận chuỗi và hiển thị lên máy tính Trước khi thực hiện thì khai báo thêm một số lệnh trên lớp public partial class Form1 : Form: delegate void SetTextCallback(string text); string InputData = String.Empty; Thêm một lệnh sau dưới các lệnh lấy cổng COM: P.DataReceived += new SerialDataReceivedEventHandler(DataReceive); Mô tả trong chương trình như sau: namespace DieuKhienThietBi { public partial class Form1 : Form { SerialPort P = new SerialPort(); delegate void SetTextCallback(string text); string InputData = String.Empty; public Form1() { InitializeComponent(); string[] Ports = SerialPort.GetPortNames(); cmbCOM.Items.AddRange(Ports); P.ReadTimeout = 1000; P.DataReceived += new SerialDataReceivedEventHandler(DataReceive); // Hàm nhận và hiển thị ký tự private void DataReceive(object obj, SerialDataReceivedEventArgs e) { InputData = P.ReadExisting(); if (InputData != String.Empty) { SetText(InputData); } } private void SetText(string text) {
  • 31. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 30 if (this.txtPhanhoi.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); } else { this.txtPhanhoi.Text += text; } } Hàm cho phép gửi một ký tự điều khiển xuống vi điều khiển Được thực hiện thông qua các nút checkbox trong C#, cấu trúc điều khiển với một checkbox (ví dụ điều khiển thiết bị 1) có dạng như sau: private void chbThietbi1_Click(object sender, EventArgs e) { dem1++; // Sử dụng một biến đếm để biết số lần nhấn nút if (chbThietbi1.Enabled) { P.Write("1"); // Lệnh gửi một ký tự xuống cổng COM if (dem1 % 2 != 0) { btnTB1.BackColor = Color.LightGreen; // Đổi màu các khối ptbTB1Off.Visible = false; // Ẩn ảnh 1 ptbTB1On.Visible = true; // Hiện ảnh 1 } else { btnTB1.BackColor = Color.Gainsboro; ptbTB1Off.Visible = true; ptbTB1On.Visible = false; } } } IV. Hình ảnh phần cứng
  • 32. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 31 Hình 31. Mạch điều khiển Hình 32. Mạch nguồn 5V
  • 33. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 32 Hình 33. Mạch công suất điều khiển 8 thiết bị
  • 34. Báo cáo Đồ án môn học Ứng dụng máy tính trong đo lường và điều khiển Trang 33 Phần III. Kết luận, đánh giá đề tài và hướng phát triển I. Kết luận Mạch điện được chia thành các module nhỏ nên dễ quản lý và sửa chữa các lỗi nếu có phát sinh. Mạch chạy đúng yêu cầu bật tắt các thiết bị, chức năng hẹn giờ hoạt động đúng, giao diện thiết kế bằng phần mềm Visual Studio với ngôn ngữ lập trinh C# là ngôn ngữ phổ biến cho lập trình giao diện và đơn giản với người mới bắt đầu. II. Đánh giá 1. Ưu điểm Các module có thiết kế nhỏ gọn, linh kiện được bố trí hợp lý, không rối mắt, dễ quan sát. Các module được thiết kế rời nhau nên thuận tiện cho việc sửa chữa nếu xảy ra lỗi. Giao diện được thiết kế bằng Visual Studio và ngôn ngữ C# nên dễ dàng cho người mới bắt đầu tiếp cận và lập trình. 2. Nhược điểm Việc chia nhiều module dẫn đến phải nối thêm nhiều dây bên ngoài nên nhìn mạch sẽ phức tạp, không thống nhất. III. Hướng phát triển Để sản phẩm được hoàn chỉnh hơn nữa thì có thể thiết kế mạch lại và bố trí tất cả các linh kiện trên cùng một board mạch để mạch tăng thêm tính thống nhất. Phát triển thêm phần cứng và phần mềm để có thể điều khiển được nhiều thiết bị hơn, thay vì 8 thiết bị. Có thể tích hợp thêm bộ điều khiển từ xa vào mạch để mạch được hoàn chỉnh hơn. IV. Hình ảnh sản phẩm hoàn chỉnh