Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 64

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA TỰ ĐỘNG HÓA & ĐIỀU KHIỂN


----------

ĐỒ ÁN VI XỬ LÝ
ĐỀ TÀI: Thiết kế Multimeter giao tiếp với máy
tính đo đếm thông số điện một pha.

Giảng viên hướng dẫn : TS. BÙI THỊ DUYÊN


Sinh viên thực hiện : Hà Bách Thịnh - 1781410031
Lê Viết Trung - 1781410037
Khoa : ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
Lớp : D12 – CNTD
Khoá : 2017 – 2022

Hà Nội 06/2021
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

PHIẾU CHẤM ĐIỂM


Sinh viên thực hiện:

Họ và tên Chữ ký Ghi chú

Hà Bách Thịnh 1781410031

Lê Viết Tung 1781410037

Giảng viên chấm:

Họ và tên Chữ ký Ghi chú

Giảng viên chấm 1 :

Giảng viên chấm 2 :

2
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

NHIỆM VỤ ĐỒ ÁN MÔN HỌC

Họ tên sinh viên: Hà Bách Thịnh


Mã số sinh viên: 1781410031 Lớp: D12CNTD
Chuyên ngành: Công nghệ kỹ thuật điều khiển và tự động hoá
1. Tên đề tài đồ án:Thiết kế Multimeter giao tiếp với máy tính đo đếm
thông số điện một pha.

3. Ngày giao nhiệm vụ đồ án: 20/01/2021


4. Ngày hoàn thành đồ án: 08/06/2021

Hà Nội, ngày 08 tháng 06 năm 2021

Giảng viên hướng dẫn Sinh viên thực hiện

Ts.Bùi Thị Duyên Hà Bách Thịnh

3
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Mục lục

LỜI NÓI ĐẦU....................................................................................................6


CHƯƠNG 1. ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ THƯ.......................................7
1.1 Đặt vấn đề...................................................................................................7
1.2 Nhiệm vụ thư..............................................................................................7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHUNG..................................................8
2.1 Đo dòng điện và điện áp.............................................................................8
2.1.1 Tính toán điện trở.................................................................................8
2.1.2 Yêu cầu về đặc tính tần......................................................................10
2.2 Đo dòng điện bằng các loại ampemet.......................................................10
2.3 Đo điện áp bằng các loại volmet...............................................................11
2.4 Đo dòng điện và điện áp bằng phương pháp so sánh................................12
2.5 Đo công suất tác dụng...............................................................................12
2.6 Đo công suất tác dụng...............................................................................15
2.7 Phương pháp đo cosφ................................................................................16
CHƯƠNG 3. THIẾT KẾ PHẦN CỨNG........................................................17
3.1 Sơ đồ khối của đồng hồ đo........................................................................17
3.2 Khối vi xử lý.............................................................................................18
3.2.1 Tổng quan về Atmega 16...................................................................18
3.3 Khối tương tự............................................................................................23
3.3.1 Chíp đo năng lượng điện chuyên dụng IC_ADE7753.....................23
3.4 Mạch cung cấp đầu vào dòng và áp cho ADE7753..................................27
3.5 Khối hiển thị màn hình LCD....................................................................28
3.6 Khối nguồn................................................................................................32
3.7 Module chuyển đổi USB – USART..........................................................33
3.8 Hình ảnh thực tế của sản phẩm.................................................................34
CHƯƠNG 4. THIẾT KẾ PHẦN MỀM..........................................................35
4.1 Giới thiệu phần mềm Codevision AVR....................................................35
4.2 Khởi tạo và viết chương trình trên Codevision AVR...............................35
4.3 Lưu đồ thuật toán......................................................................................38
4.4 Phần lập trình............................................................................................40

4
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.........................................................62


Tài liệu tham khảo:.............................................................................................63

Danh mục hình ảnh


Hình 2. 1 Sơ đồ đo dòng điện...............................................................................8
Hình 2. 2 Sơ đồ đo điện áp...................................................................................9
Hình 2. 3 Ampemet điện động...........................................................................11
Hình 2. 4 Cách nối cuộn dây trong volmet điện động........................................12
Hình 2.5 Sơ đồ nguyên lý đo điện áp bằng phương pháp so sánh.....................12
Hình 2. 6 Watmet tác dụng 1 phần tử................................................................14
Hình 2.7 Wattmet phối hợp với BU ,BI............................................................15
Hình 2. 8 Tam giác công suất.............................................................................16
Hình 3.1: Sơ đồ khối của đồng hồ đo.................................................................18
Hình 3.2: Sơ đồ chân của Atmega16..................................................................20
Hình 3.3: Sơ đồ chân của ADE7753..................................................................23
Hình 3.4: Sơ đồ khối cấu trúc ADE7753...........................................................24
Hình 3.5: Mạch cung cấp đầu vào dòng và áp cho ADE7753..........................27
Hình 3.6: Hình ảnh thực tế của LCD2x16........................................................31
Hình 3.7: Sơ đồ ghép nối LCD..........................................................................31
Hình 3.10: Mạch cấp nguồn...............................................................................32
Hình 3.11. Module chuyển đổi USB – UART CP2102.....................................34
Hình 3.12: Hình ảnh thực tế của sản phẩm........................................................34
Hình 4.1 : Giao diện khởi động Codevision AVR.............................................35
Hình 4.2 : Tạo thư mục mới trong Codevision AVR.........................................35
Hình 4.3 : Xác nhận tạo file mới........................................................................36
Hình 4.4 : Chọn loại vi xử lý..............................................................................36
Hình 4.5: Giao diện CodeWizard AVR.............................................................36
Hình 4.6 : Khởi tạo các Port cho vi xử lý trong Codevision AVR....................37
Hình 4.7 : Thiết lập LCD trong Codevision AVR............................................37
Hình 4.8 : Hoàn thành tạo thư mục mới.............................................................38
Hình 4.9 : Lưu đồ thuật toán ADE7753.............................................................38
Hình 4.10 : Lưu đồ thuật toán mạch chính.........................................................39

5
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

LỜI NÓI ĐẦU

Ngày nay, cùng với sự phát triển của khoa học kĩ thuật, con người chúng ta
luôn hướng đến những tiêu chuẩn cao hơn về sự chính xác, sự tiện ích, cũng như tính
trung thực đi cùng với tính thẩm mỹ.
Thiết bị đo đếm điện năng kỹ thuật số ra đời giúp con người là việc một cách
hiệu quả hơn, với một thiết bị nhỏ gọn chúng ta có thể đo đếm tất cả các thông số điện
năng về dòng điện, điện áp, công suất, hệ số cosφ… Các đồng hồ đo điện năng kỹ
thuật số được trang bị các giao tiếp như RS485, Internet, RS232, SIM… để chúng ta
có thể cập nhật giá trị từng giờ, từng phút. Chúng ta không phải vất vả đi đến từng nơi
hay vất vả đi đọc từng thông số trên từng đồng hồ, mà ta có thể ngồi tại chỗ là có thể
giám sát được tất cả các thông số điện năng của các khu vực thông qua internet hoặc
SMS.
Đúc kết từ nhu cầu thực tế đó cùng với vốn kiến thức về Vi Điều Khiển đã được
học và sự hướng dẫn tận tình của Tiến sĩ Bùi Thị Duyên, chúng em đã phát triển đề tài
“Thiết kế multimeter giao tiếp với máy tính” để làm đồ án môn học của mình.
Trong thời gian thực hiện đồ án và sản phẩm của mình, chúng em đã cố gắng
hết sức để khắc phục những khó khăn gặp phải. Cùng với sự nhiệt tình giúp đỡ và chỉ
bảo của giảng viên Ts. Bùi Thị Duyên, chúng em đã cố gắng để hoàn thiện nhất đồ án
của mình. Do thời gian còn hạn hep và kinh nghiệm còn chưa nhiều, chúng em không
thể tránh khỏi những sai sót trong đồ án của mình, rất mong quý thầy cô chỉ bảo thêm.

6
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

CHƯƠNG 1. ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ THƯ


1.1 Đặt vấn đề

Ngày nay trong quá trình công nghệ hóa, hiện đại hóa, nền kinh tế nước ta đã
tăng trưởng liên tục, các ngành công nghiệp phát triển ngày càng tăng. Do vậy yêu
cầu về khoa học nói chung, cũng như khoa học về công nghệ đo lường và thử
nghiệm nói riêng đòi hỏi phải đáp ứng kịp thời và phù hợp với sự phát triển của công
nghiệp đất nước.
Đây là một vấn đề cần được phát triển tuy nhiên thực trạng hiện nay hầu hết
các thiết bị đo lường ở nước ta thường được nhập khẩu từ các bên hãng lớn từ nước
ngoài dẫn đến việc các kỹ sư Việt Nam để được làm chủ công nghệ gặp rất là nhiều
khó khăn do đó trong quá trình sử dụng còn gặp nhiều hạn chế .
Trong lĩnh vực đo lường các đại lượng điện nhằm mục đích là tăng số điểm đo,
tăng tốc độ đo, nâng cao độ chính xác, độ nhạy, nâng cao tính tin cậy.
Vì vậy chúng em đã lựa chọn đề tài: “Thiết kế multimeter giao tiếp với máy
tính” với mục đích đo lường các đại lượng U, I, P, cosφ một cách chính xác nhất để
có phục vụ trong các lĩnh vực công nghiệp và khoa học kỹ thuật nói chung. Trong
quá trình thực hiện đồ án, chúng em trân thành cảm ơn TS Bùi Thị Duyên đã tận tình
chỉ bảo và giúp đỡ chúng em hoàn thành đồ án này.

1.2 Nhiệm vụ thư


Nghiên cứu thiết kế chế tạo multimeter 1 pha để đo các đại lượng điện xoay
chiều 1 pha: U, I, P,Q, cosφ.
Nhiệm vụ thiết kế:

- Đo điện áp hiệu dụng, dải đo điện áp 0÷250VAC.


- Đo dòng điện hiệu dụng, dải đo dòng điện 0÷20A.
- Đo các đại lượng P, Q, cosφ
- Hiển thị giá trị đo được lên màn hình LCD với 2 dòng và 16 ký tự .
Có bàn phím để lựa chọn cài đặt chế độ cần hiển thị lên màn hình LCD.

7
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
CHUNG
2.1 Đo dòng điện và điện áp
2.1.1 Tính toán điện trở
2.1.1.1. Khi đo dòng điện
Ampemet là một phần tử đặc trưng cho nhóm các

phần tử phản ứng với dòng điện như: cuộn dòng

của công tơ, wattmet; các rơle dòng điện... nên

khi xét tới yêu cầu đối với ampemet là xét chung

cho cả nhóm. Khi đo dòng, ampemet được mắc


Hình 2. 1 Sơ đồ đo dòng điện
nối tiếp với tải (như Hình 2.1) nên điện trở

ampemet sẽ ảnh hưởng đến kết quả đo như sau:

Giả sử phụ tải có điện trở là Rt, trước khi mắc A vào mạch thì dòng diện được tính:

(2.1)

Khi mắc A nối tiếp vào mạch, do ảnh hưởng của điện trở A, dòng điện được tính:

(2.2)

Với IA là dòng điện chỉ bởi ampemet, RA là điện trở của ampemet, Rt là điện trở tải.
Sai số phụ trong quá trình đo lường sẽ được tính:

(2.3)
Vì RA ≪ Rt

Ta thấy sai số do A gây ra đối với mạch tải càng nhỏ nếu điện trở của ampemet càng
nhỏ so với điện trở tải. Vì thế yêu cầu đối với ampemet đo dòng điện là điện trở của
ampemet càng nhỏ càng tốt.

Với một phụ tải có điện trở là Rt cấp chính xác của ampemet sử dụng là y (hoặc độ
chính xác yêu cầu của mạch lấy tín hiệu dòng là lỡ thì điện trở của ampemet phải đảm
bảo điều kiện sao cho:

8
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Υp ≤ Υ hay ta có RA ≤ Rt. Υ
Nếu không đảm bảo điều kiện trên, sai số phụ gây ra sẽ lớn hơn sai số yêu cầu
lúc đó ta phải sử dụng công thức hiệu chỉnh:
(2.4)

2.1.1.2. Khi đo điện áp.

Volmet là một phần tử đặc trưng cho


nhóm các phần tử phản ứng với điện áp
như: cuộn áp của công tơ, wattmet; các
rơle điện áp, các mạch khuếch đại điện
áp... nên khi xét tới yêu cầu đối với
volmet là xét chung cho cả nhóm. Khi đo
điện áp, volmet được mắc song song với
tải như Hình 2.2. Như vậy ta thấy điện
trở của tải được mắc song song thêm với
điện trở của volmet và làm thay đổi điện Hình 2. 2 Sơ đồ đo điện áp
áp trên tải và gây ra sai số phụ trong quá
trình đo lường. Xét khi chưa mắc volmet
vào mạch, điện áp trên tải được tính theo
công thức :

(2.5)

trong đó: E là sức điện động của nguồn

Rt là điện trở tải, Rn là nội trở của nguồn

Xét khi mắc volmet vào mạch điện áp Uv do volmet đo được sẽ là:

(2.6)
với

Sai số phụ do volmet gây ra được tính:

(2.7)

(nếu R0 Rv)

Ta thấy sai số phụ do volmet gây ra càng nhỏ nếu điện trở của nó càng lớn so với điện
trở tải. Vì thế yêu cầu đối với volmet là điện trở càng lớn càng tốt. Thực tế trên các
thiết bị đo hiện đại hoặc trên đồng hồ vạn năng người ta ghi tổng trở vào của nó.

9
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Với một phụ tải có điện trở Rt đặt trong mạch có điện trở nguồn Rn nếu dùng volmet
cấp chính xác γ (hoặc độ chính xác yêu cầu của mạch lấy tín hiệu áp là γ) thì điện trở
của volmet phải đảm bảo điều kiện sao cho γP < γ hay ta có:

(2.8)

Nếu không đảm bảo điều kiện trên, sai số phụ do voìmet gây ra lớn hơn sai số của bản
thân cơ cấu chỉ thị và ta phải dùng công thức hiệu chỉnh:

(2.9)

2.1.2 Yêu cầu về đặc tính tần


Ngoài yêu cầu về điện trở các ampemet và volmet xoay chiều phải có đặc tính
tần thích hợp với dải tần số cần đo. Làm việc ở ngoài dải tần số đó sẽ gây sai số phụ do
tần số. Sai số này phải tính đến ảnh hưởng của các mạch đo lường đi theo chỉ thị như
Shunt, biến dòng, biến áp, chỉnh lưu, khuếch đại v.v. Cũng vì vậy trong nhiều
ampemet và volmet, lúc cần đảm bảo sai số do tần số nhỏ hơn giá trị quy định (thường
là bé hơn cấp chính xác quy định cho dụng cụ) ta phải sử dụng trong mạch đo có
những những khâu bù tần số. Có trường hợp người ta phải sử dụng những linh kiện
đặc biệt để đảm bảo tần số làm việc của dụng cụ. Trên các dụng cụ đo dòng và áp xoay
chiều có ghi tần số hay giải tần số làm việc.
2.2 Đo dòng điện bằng các loại ampemet
Người ta sử dụng một số cơ cấu chỉ thị cơ điện để chế tạo ampemet đo trong
mạch một chiều và xoay chiều.
Ampemet từ điện: Chế tạo dựa trên cơ cấu chỉ thị từ điện, có đặc điểm là rất
nhạy, tiêu thụ ít năng lượng nên thường dùng để chế tạo ampemet có cấp chính xác từ
(0,5 ÷ 2). Đối với ampemet từ điện, khi nhiệt độ thay sẽ làm cho điện trở của cuộn dây
thay đổi dẫn tới sai số. Để giảm sai số người ta thường dùng phương pháp bù nhiệt,
tức là dùng một nhiệt điện trở có hệ số nhiệt điện trở âm mắc nối tiếp trong mạch của
52 ampemet, vì vậy sẽ làm cho điện trở của ampemet gần như không thay đổi theo
nhiệt độ. Ampemet từ điện chỉ có thể đo dòng điện một chiều.
Ampemet điện từ. Được chế tạo dựa trên cơ cấu chỉ thị điện từ. Loại này có độ
chính xác thấp hơn nhưng nó bền chắc, dễ sử dụng và rẻ tiền nên được sử dụng rộng
rãi hơn trong công nghiệp. Ampemet điện từ có thể đo được cả dòng một chiều và
dòng xoay chiều nhưng chủ yếu là đo dòng xoay chiều. Có nhiều loại ampemet điện
từ, chúng giống nhau về nguyên lý làm việc song chỉ khác nhau về hình thức, số vòng
dây và kích thước cuộn dây đặt ở phần tĩnh.
Ampemet điện động: Có cấu tạo phức tạp và đắt tiền nên chỉ dùng trong những
trường hợp cần độ chính xác cao, hoặc tín hiệu đo có tần số cao hơn. Sai số tần số
trong dải từ một chiều tới 3000Hz được xem như không đáng kể. Với các ampemet
điện động khi dòng định mức I ≤ 0,5A thì cuộn dây động và cuộn dây tĩnh nối tiếp

10
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

nhau, còn khi dòng định mức lớn hơn thì cuộn dây động và cuộn dây tĩnh mắc song
song với nhau như hình vẽ:

Hình 2. 3 Ampemet điện động

Các phương pháp mở rộng thang đo


- Đối với ampemet 1 chiều : Mắc thêm điện trở Shunt song song với cơ cấu chỉ
thị
- Đối với ampemet xoay chiều:
 Phương pháp chia nhỏ cuộn dây
 Phương pháp dùng biến dòng điện
2.3 Đo điện áp bằng các loại volmet
Người ta sử dụng các chỉ thị cơ điện để chế tạo các loại volmet đo điện áp như
volmet từ điện, volmet điện từ, volmet điện động.
Volmet từ điện: Volmet từ điện được cấu tạo từ cơ cấu chỉ thị từ điện, loại này
thường dùng để đo các điện áp một chiều, có độ nhạy cao, cho phép dòng nhỏ đi qua,
cũng có thể sử dụng kèm với bộ chỉnh lưu để đo điện áp trong mạch xoay chiều (trong
trường hợp cần nâng cao độ chính xác hoặc nâng cao dải tần số của tín hiệu đo). Tuy
nhiên giống như ampemet ta phải chú ý tới hệ số hình dáng của dòng hình sin.
Volmet điện từ: Volmet điện từ có cuộn dây bố trí ở phần tĩnh nên có thể quấn
nhiều vòng dây để tạo nên điện trở lớn khá dễ dàng, tuy nhiên nếu quấn nhiều vòng
dây quá mà khi đo ở mạch xoay chiều thì xuất hiện dòng điện cảm ứng sinh ra bởi tần
số của dòng điện, do đó sẽ ảnh hưởng đến trị số trên thang đo của volmet. Khắc phục
điều này bằng cách mắc song song với cuộn dây một tụ điện bù.
Volmet điện động: Khi đo điện áp ở tần số cao hơn tần số công nghiệp hoặc khi
cần nâng cao độ chính xác của phép đo ta dùng volmet điện động, trong volmet điện
động bao giờ cuộn dây tĩnh và cuộn dây 58 động cũng được mắc nối tiếp nhau.

Hình 2. 4 Cách nối cuộn dây trong volmet điện động

Để mở rộng thang đo thì có các phương pháp:


Phương pháp mắc thêm điện trở phụ

11
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Phương pháp dùng biến áp


2.4 Đo dòng điện và điện áp bằng phương pháp so sánh.
Khái niệm Các biện pháp đo dòng và áp kể trên sử dụng chỉ thị cuối cùng là
những cơ cấu cơ điện làm quay kim chỉ trên thang chia độ, như vậy sai số không thể
nhỏ hơn sai số của các chỉ thị dùng vào dụng cụ và chưa kể đến sai số gây ra do các
mạch đo sử dụng. Cấp chính xác cao nhất của các dụng cụ đo cơ điện hiện nay chưa
vượt quá 0,01 nên phép đo trực tiếp trên cũng không vượt qua cấp chính xác ấy.
Để nâng cao độ chính xác về phép đo điện áp, để tăng tổng trở vào, người ta
dùng phương pháp so sánh hay còn gọi là phương pháp bù tức là so sánh điện áp cần
đo với điện áp mẫu. Đây là nguyên lý của tất cả các điện thế kế, các volmet số có độ
chính xác cao nhất hiện nay.

Hình 2.5 Sơ đồ nguyên lý đo điện áp bằng phương pháp so sánh

Nguyên tắc cơ bản của phương pháp so sánh được tóm tắt như sau: 61 Điện áp
cần đo UX được so sánh với điện áp bù Uk là điện áp rơi trên điện trở Rk. Rk là điện
trở mẫu có độ chính xác rất cao và rất ít thay đổi theo nhiệt độ. Trong quá trình so sánh
nếu ∆U = 0 ta có so sánh cân bằng, nếu ∆U ≠ 0 ta có so sánh không cân bằng hay là so
sánh kiểu vi sai. U được xác định bằng dụng cụ có độ nhạy cao hay dụng cụ tự động
phát hiện sự chênh lệch hay còn gọi là cơ quan zero.
Các loại phương pháp so sánh khác nhau chỉ khác nhau ở cách tạo đại lượng bù
Uk. Độ chính xác của điện áp bù và các yêu cầu khác cùng với độ nhạy, ngưỡng độ
nhạy của dụng cụ cân bằng hay cơ quan zero đều do sai số yêu cầu của phép đo quyết
định. Sau đây ta xe tìm hiểu một số dụng cụ đo dùng phương pháp so sánh.
2.5 Đo công suất tác dụng
Để đo công suất tác dụng một pha, ta mắcWattmet tác dụng một phần tử.
Cấu tạo: Wattmet tác dụng một phần tử được làm từ cơ cấu đo điện động. Cuộn
tĩnh của cơ cấu được mắc nối tiếp với phụ tải nên được gọi là cuộn dòng của wattmet.
Cuộn động của cơ cấu được mắc nối tiếp với một điện trở phụ và được đấu song song
với phụ tải nên còn được gọi là cuộn điện áp.
Nguyên lý làm việc:

12
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Khi có dòng điện I1 chạy trong cuộn tĩnh và dòng I 2 chạy trong cuộn động, thì góc
quay của cơ cấu đo được xác định theo biểu thức:

1 dM 12 U (2.10)
α= I 1 I 2=KI =K P P
D dα RB + R f

Trong đó:

1 dM 12
K (2.11)
K= K P=
D dα 1 và RB+ Rf

RB là điện trở của cuộn động.


-Khi đo trong mạch xoay chiều:

Giả sử tải mang tính điện cảm, dòng điện chậm pha sau điện áp một góc . Dòng
điện trong cuộn áp chậm pha sau điện áp một góc . Ta có đồ thị véc tơ như hình 2.4

Góc lệch pha giữa hai dòng cuộn tĩnh và động là:  =  - 

Góc quay của cơ cấu

1 dM 12 (2.12)
α= I I cos δ
D dα 1 2
Nếu chọn Rf lớn hơn rất nhiều so với cảm kháng của cuộn động thì  = 0, khi đó
 = . Ta có :
1 dM 12
α= II 2 cos ϕ=K P UI cos ϕ=K P P (2.13)
D dα

Hình 2. 6 Watmet tác dụng 1 phần tử

Chú ý:
Trên wattmet bao giờ cũng có các ký hiệu * đánh dấu các đầu cuộn dây tĩnh và
động gọi là đầu phát. Khi mắc mạch phải nối cácđầu có ký hiệu * với nhau, nếu đấu
sai wattmet sẽ quay ngược.

13
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

- Để xác định được công suất mà wattmet chỉ, phải tính được hằng số
wattmet
U dm I dm (2.14)
C P=
αm

Trong đó: Uđm, Iđm là điện áp và dòng điện lớn nhất ứng với thang đo này m là số
vạch lớn nhất trên thang đo.
Công suất trên wattmet là:
(2.15)

- Trong trường hợp tải có điện áp cao và dòng điện lớn, phải phối hợp biến áp
và biến dòng với wattmet để đo công suất cho tải (hình 2.5).Cuộn điện áp của wattmet
mắc cở hai đầu thứ cấp của biến áp, một đầu của cuộn thứ cấp và vỏ của biến áp được
nối với đất.

Hình 2.7 Wattmet phối hợp với BU ,BI

2.6 Đo công suất tác dụng.


Công suất được định nghĩa như là phần năng lượng được chuyển qua một bề mặt
trong một đơn vị thời gian. Đối với mạch điện một chiều, công suất, năng lượng mà

14
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

mạch điện thực hiện chuyển đổi qua đường dây điện trong một đơn vị thời gian, được
tính bằng:

Trong đó:
P là công suất
U là hiệu điện thế
I là cường độ dòng điện
Trong biểu đồ, P là công suất thực, Q là công suất phản kháng, độ dài của S là
công suất biểu kiến.

Hình 2. 8 Tam giác công suất

Công suất phản kháng Q là một khái niệm trong ngành kĩ thuật điện, dùng để chỉ
phần công suất điện được chuyển ngược về nguồn cung cấp năng lượng trong mỗi chu
kỳ do sự tích lũy năng lượng trong các thành phần cảm kháng và dung kháng, được tạo
ra bởi sự lệch pha giữa hiệu điện thế u(t) và dòng điện i(t). Khi u(t), i(t) biến đổi theo
đồ thị hàm sin thì Q = U.I sin , với U, I là giá trị hiệu dụng u(t), i(t); φ là pha lệch
giữa u(t), i(t).
Công suất phản kháng Q là phần ảo của công suất biểu kiến S, S = P +iQ.
Đơn vị đo Q là var (volt amperes reactive), 1 Kvar = 1000var.

2.7 Phương pháp đo cosφ


Hệ số công suất cosφ quan hệ với dòng điện và điện áp trong mạch qua công
thức:

15
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

P = U.Icosφ (2.17)

Do đó:
(2.18)

Do vậy ta có thể đo hệ số công suất thông qua đo P,U ,I.

16
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

CHƯƠNG 3. THIẾT KẾ PHẦN CỨNG


3.1 Sơ đồ khối của đồng hồ đo

Hình 3.1: Sơ đồ khối của đồng hồ đo

Đồng hồ số gồm các khối như hình 3.1


- Vi điều khiển sử dụng trong hệ thống: Atmega 16A.
- ADE 7753: Tích hợp ADC, mạch lọc, các bộ tích phân số…, thuật toán đưa ra:
U, I, P, S trong các thanh ghi tương ứng.
- Đầu vào tương tự: Tải bóng đèn 40w, biến áp, biến dòng, mạch hệ thống.
- Module CP2102: Module chuyển đổi mạch USB - UART
- Bàn phím: Chức năng cài đặt của các thông số.
- Màn hình LCD: Hiển thị các thông số.

3.2 Khối vi xử lý.


3.2.1 Tổng quan về Atmega 16
a.Cấu trúc chung của Atmega 16
Atmega16 là vi điều khiển CMOS 8 bit tiêu thụ điện năng thấp dựa
trên kiến trúc RISC (Reduced Instruction Set Computer). Với kiểu kiến trúc này
cho phép các lệnh thực thi trong một chu kỳ xung nhịp, vì thế tốc độ xử lý dữ liệu có

17
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

thể đạt 16 triệu lệnh trên giây ở tần số 16MHz. AVR Atmega16 cho phép người thiết
kế có thể tối ưu hoá mức độ tiêu thụ năng lượng mà vẫn bảo đảm tốc độ xử lý.
Atmega16 có 32 thanh ghi làm việc đa năng. Toàn bộ 32 thanh ghi này đều được
nối trực tiếp với bộ xử lý số học logic ALU (Arithmetic Logic Unit), cho phép truy
nhập vào 2 thanh ghi độc lập trong một chu kỳ xung nhịp. Kiến trúc đạt được có tốc độ
xử lý nhanh gấp 10 lần vi điều khiển dạng CISC thông thường.
b. Các tính năng của Atmega16
Các tính năng:
- Được chế tạo theo kiến trúc RISC tiên tiến nên hiệu suất làm việc cao, điện
năng tiêu thụ thấp.
- Bộ lệnh gồm 131 lệnh, hầu hết đều thực thi chỉ trong một chu kỳ xung nhịp.
- 32¿ 8 thanh ghi làm việc đa năng.
- Tốc độ xử lý dữ liệu có thể đạt đến 16 triệu lệnh/s ở tần số 16Mhz.
- 16Kb Flash ROM lập trình ngay được trên hệ thống:
+ Giao tiếp nối tiếp cho phép lập trình ngay trên hệ thống.
+ Cho phép 10000 lần ghi/xoá.
- Bộ EEP ROM 512 bytes cho phép 100000 lần ghi/xoá.
- Bộ nhớ SRAM 1Kb.
- Bộ biến đổi ADC 8 kênh, 10 bits.
- 32 cổng I/O lập trình được.
- Bộ chuyển đổi nối tiếp đồng hồ vạn năng.
- Dải điện áp hoạt động: VCC = 4,5¿ 5,5 (V).
- 2 bộ Timer/Counter 8 bits và 1 bộ Timer/Counter 16 bits với các chế độ làm
việc: so sánh, chia tần tách biệt và bắt mẫu.
- 2 kênh điều chế bề rộng xung PWM.
- Bộ đếm thời gian thực với bộ tạo dao động riêng.
- Hỗ trợ bộ truyền nhận UART lập trình được.
- Hỗ trợ giao diện truyền thông SPI chủ/tớ.
- Hỗ trợ bộ định thời Watchdog với bộ tạo dao động riêng, cho phép lập trình
được và tự động reset khi treo máy.
- Hỗ trợ bộ so sánh tương tự.

18
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

- 6 chế độ ngủ: chế độ rỗi ( Idle ), chế độ tiết kiệm điện ( Power-Save ), chế độ
giảm nhiễu ADC (ADC Noise Reduction), chế độ chờ ( Standby), chế độ chờ mở rộng
( Extended Standby ) và chế độ giảm bớt điện năng ( Power-Down ).
Ưu điểm của việc sử dụng Atmega 16:
- Gần như chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng
AVR, thậm chí không cần nguồn tạo xung clock cho chip (thường là các khối thạch anh).
- Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ cần
vài điện trở là có thể làm được. một số AVR còn hỗ trợ lập trình on – chip bằng
bootloader không cần mạch nạp…
- Bên cạnh lập trình bằng ASM, cấu trúc AVR được thiết kế tương thích C.
- Nguồn tài nguyên về source code, tài liệu, application note…rất lớn trên
internet.

c. Sơ đồ chân của Atmega16

Hình 3.2: Sơ đồ chân của Atmega16

19
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

PORT A (từ chân 33 đến chân 40): Là 1 cổng 8 bít, chức năng của cổng này ngoài
vào ra thông thường, còn được tích hợp sẵn bộ chuyển đổi ADC bên trong phục vụ
mục đích chuyển đổi tương tự sang số.

20
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Bảng 3.1: Các chân cổng A- ATMEGA16


Chân Chức năng của các chân
PA7 ADC7
PA6 ADC6
PA5 ADC5
PA4 ADC4
PA3 ADC3
PA2 ADC2
PA1 ADC1
PA0 ADC0

PORT B (từ chân 1 đến chân 8): Là 1 cổng 8 bít, cổng này ngoài chức năng vào ra
thông thường, còn được tích hợp sẵn các chức năng tạo xung, và giao tiếp SPI như sau:

Bảng 3.2: Các chân cổng B- ATMEGA16


Chân Chức năng của các chân
PB7 SCK (SPI Bus tạo xung dao động)
PB6 MISO (SPI Bus Master vào/Slave ra)
PB5 MOSI (SPI Bus Master ra/Slave vào)
PB4 SS (SPI Slave lựa chọn đầu vào)
AIN1(đầu vào lấy mẫu tương tự âm)
PB3
OC0 (Timer/Counter0 xung đầu ra )
PB2 INT2 (đầu vào của ngắt ngoài2 )
PB1 T1 (Timer/Counter1 xung đầu vào)
T0 (Timer/Counter0 xung đầu vào)
PB0
XCK1(USART1 External xung vào/ra)
PORT C (từ chân 22 đến chân 29): Là 1 cổng 8 bít, cổng này ngoài chức năng vào
ra thông thường thì các chân có chức năng riêng sau:

21
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Bảng 3.3: Các chân cổng C- ATMEGA16


Chân Chức năng của các chân
PC7 TOSC2(chân 2 tạo dao động cho timer)
PC6 TOSC1(chân 1 tạo dao động cho timer)
PC5 TDI (JTAG test dữ liệu vào)
PC4 TDO (JTAG test dữ liệu ra)
PC3 TMS (JTAG test nhận mode)
PC2 TCK (JTAG test xung)
SDA (JTAG Tow- wire seiral bus data input/output
PC1
line)
PC0 SDC (JTAG Tow- wire seiral bus clock line)

PORT D (từ chân 14 đến chân 21): Là 1 cổng 8 bít, cổng này ngoài chức năng vào
ra thông thường thì các chân có chức năng riêng sau:

Bảng 3.4: Các chân cổng D- ATMEGA16

Chân Chức năng của các chân


PD7 OC2(chân tạo xung PWM cho timer/courter2)
PD6 ICP (Timer/Counter1 chân đầu vào bắt buộc)
PD5 OC1A(chân tạo xung PWM A cho timer/courter1)
PD4 OC1B(chân tạo xung PWM B cho timer/courter1)
PD3 INT1(đầu vào chân ngắt ngoài 1 )
PD2 INT0(đầu vào chân ngắt ngoài 0 )
PD1 TXD (UART truyền tín hiệu)
PD0 RXD (UART nhận tín hiệu)

- Chân nguồn Vcc (chân số 10 và chân số 30): Điện áp nguồn nuôi của
Atmega16 từ 4.5v đến 5.5v.
- Chân Reset (chân số 9): Nối vào đặt lại.
- Chân GND (chân số 11 và chân 31): Chân nối mass.

22
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

- Chân XTAL1, XTAL2 là hai chân nối thạch anh ngoài (chân số 12 và chân số
13). Atmega16 sử dụng thạch anh ngoài là 8MHz.
- Chân ICP (chân số 20): Là chân vào cho chức năng bắt tín hiệu cho bộ định
thời/đếm 1.
- Chân OC1B (chân số 18): Là chân ra cho chức năng so sánh lối ra bộ định
thời/đếm 1.
- Chân INT1 (chân số 17): Chân ngõ vào ngắt.
3.3 Khối tương tự
3.3.1 Chíp đo năng lượng điện chuyên dụng IC_ADE7753
a. Cấu trúc chân của ADE7753

Hình 3.3: Sơ đồ chân của ADE7753

Chức năng của ADE7753:


- IC ADE7753 có độ chính xác cao, tuân theo tiêu chuẩn IEC61036 và
IEC1268.
- Tích hợp bộ tích phân số nối trực tiếp được với các sensor dòng đầu ra tỉ lệ
với di / dt
- Tính các giá trị công suất tiêu thụ, công suất phản kháng, công suất biểu
kiến, giá trị hiệu dụng của dòng điện, điện áp, lấy mẫu dạng sóng, với độ chính xác
nhỏ hơn 0.1%.
- Chế độ chỉ tích lũy năng lượng dương.
- Cho phép người dùng đặt mềm ngưỡng sụt áp, quá điện áp, có khối quản lý
nguồn nuôi.

23
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

- Cho phép chỉnh định pha và độ lệch đầu vào.


o
- Có sensor đo nhiệt độ trên chip ( ±3 C ).
- Chế độ truyền thông nối tiếp SPI.
- Chân yêu cầu ngắt và thanh ghi trạng thái ngắt.
- Có 2 ADC cấu trúc sigma-delta và DSP cho dữ liệu với độ chính xác cao
trong điều kiện môi trường và thời gian biến động mạnh.
- Điện áp chuẩn 2.4V, cho đưa ra ngoài.
- Nguồn nuôi 5V, công suất thấp (25mW).

Hình 3.4: Sơ đồ khối cấu trúc ADE7753

24
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Bảng 3.5: Bảng mô tả chức năng các chân ADE 7753


Chân Tên Nhiệm vụ

1 RESET Thiết lập lại toàn bộ trạng thái làm việc của ADE7753

Cung cấp nguồn điện dạng số cho các mạch số trong


ADE7753 điện áp cần được duy trì 5V± 5%, chân này cần
2 DVDD
được tách riêng với chân DGND bằng tụ gốm 10 μF mắc
song song.
Cung cấp nguồn điện tương tự cho các mạch số trong
ADE7753 điện áp cần được duy trì 5V± 5% chân này cần
3 AVDD
được tách riêng với chân DGND bằng tụ gốm 10 μF mắc
song song.
Đầu vào tương tự cung cấp cho kênh 1. Kênh này được
thiết kế để sử dụng với bộ vi phân biến đổi dòng như là
cuộn Rogowski, hay các cảm biến dòng điện khác như điện
trở Shunt hoặc các máy biến dòng (CT).Các đầu vào này
V1P,V1
4,5 hoàn toàn là điện áp vi sai,các đầu vào với tín hiệu vào vi
N
sai cực đại ở các mức ± 0.5V, ± 0.25V và ± 0.125V phụ
thuộc vào quy mô lựa chọn. Kênh 1 cũng có một hệ số
khuếch đại PGA với các mức: 1, 2, 4, 8 hoặc 16. Mức tín
hiệu tối đa tại các chốt đối với AGND là ± 0.5V.
Đầu vào tương tự cho kênh 2. Kênh này được thiết kế
để sử dụng với máy biến áp. Những đầu vào này hoàn toàn
là điện áp vi sai. Những đầu vào với tín hiệu vào vi sai cực
đại ở mức ± 0.5V. Kênh 2 cũng có một PGA với các lựa
V2P,V2
6,7 chọn như 1, 2, 4, 8 hoặc 16. Mức tín hiệu tối đa tại các chốt
N
đối với AGND là ± 0.5V.Cả hai yếu tố đầu vào đều có
mạch nội bộ bảo vệ ESD, và một quá áp bằng ± 6V có thể
được duy trì trên các yếu tố đầu vào mà không có nguy cơ
bị hại tới mạch
Chân này cung cấp chân đất chuẩn cho các mạch tương
tự trong ADE7753 tương tự trong các ADC và các thiết bị
8 AGND
chuẩn.Chân này cần được nối với mặt phẳng tiếp đất hoặc
mặt đất tham chiếu trong hệ thống….
Chân này cung cấp sự truy nhập tới chuẩn điện áp trên
chíp. Các tham chiếu trên chip có giá trị định mức là 2.4V ±
8% và 1 hệ số nhiệt độ thông thường 20ppm / ° C. Một
9 REF i/o
nguồn tham chiếu bên ngoài cũng có thể được kết nối tại
chân này. Trong cả hai trường hợp chân này nên được cách
li với AGND bằng một tụ điện gốm 1μF.

25
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Chân này cung cấp chân đất chuẩn cho các mạch kỹ
thuật số trong ADE7753 cũng như trong các bộ nhân, các
bộ lọc và bộ chuyển đổi từ số sang tần số. Bởi vì dòng dò
10 DGND dạng số trong ADE7753 nhỏ, nên nó được chấp nhận để kết
nối chân này cho mặt đất của hệ thống.Tuy nhiên, điện dung
cao trên DOUT có thể gây nhiễu dòng điện số có thể ảnh
hưởng đến hiệu suất.
Hiệu chuẩn tần số logic đầu ra. Giá trị logic đầu ra của
CF cung cấp hoạt thông tin về công suất hữu công.Đầu ra
này được định để sử dụng (cho) những mục đích hoạt động
11 CF
và xác định kích cỡ. Tần số đầu ra thật có thể được điều
chỉnh bằng việc lập trình cho 2 thanh ghi CFDEN và
CFNUM.
Đầu ra của điểm về không của điện áp dạng sóng. Đầu
12 ZX ra này lật trạng thái bit cao và thấp tại qua của điểm về
không của tín hiệu vi phân trên Kênh 2.
Lôgic rãnh mở đầu ra này được tích cực thấp khi không
13 SAG có điểm về không được phát hiện hoặc điện áp ngưỡng thấp
(Channel 2) vượt qua cho một thời hạn quy định.
Yêu cầu ngắt đầu ra. Đây là một đầu ra lôgic rãnh mở
tích cực thấp. Các ngắt có thể che bao gồm: thanh ghi năng
14 IRQ
lượng hữu công cuộn ngang, thanh ghi năng lượng hữu
công tại nửa mức, và sự tới của những mẫu sóng mới.
CLKIN,
15,16 CLKOU Là 2 đầu vào của thạch anh 3.58 Mh
T
Chip Select.Một trong 4 phần của dây SPI Serial
17 CS Interface (giao tiếp nối tiếp). Đầu vào tích cực thấp này cho
phép ADE chia sẻ nối tiếp bus với các thiết bị khác.
Xung đầu vào nối tiếp cho giao diện nối tiếp đồng bộ.
Tất cả các dữ liệu truyền nối tiếp đều đồng bộ với đồng hồ
18 SCLK này.SCLK có một đầu vào là bộ khởi động Schmitt để sử
dụng với một nguồn xung clock mà có sườn xung xuống ví
dụ như là đầu ra của bộ ghép sợi quang.
Dữ liệu đầu ra cho giao diện nối tiếp. Dữ liệu được
chuyển ra cổng ra của chân này trên sườn lên của SCLK.
19 DOUT
Đầu ra logic này thường ở trong trạng thái trở kháng cao,
trừ khi nó phải truyền dữ liệu trên các bus dữ liệu nối tiếp.
20 DIN Dữ liệu đầu vào cho giao diện nối tiếp. Dữ liệu được

26
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

dịch chuyển trên pin này trên sườn xuống của SCLK.

3.4 Mạch cung cấp đầu vào dòng và áp cho ADE7753

Hình 3.5: Mạch cung cấp đầu vào dòng và áp cho ADE7753

Tính toán đầu vào dòng:


a. Nguyên tắc hiển thị ký tự trên LCD
- LCD (Liquist Crystal Display) là một loại màn hình hiển thị thông tin tiêu tốn
ít năng lượng. Bình thường một LCD có loại 2, 4,… dòng Mạch này có nhiệm vụ
chuyển tín hiệu dòng điện xoay chiều từ 0 - 5A thành điện áp 1 chiều từ 0 – 0.25 V.
- BI có tỉ lệ 1:2000.
- Dòng điện lưới được qua BI và thông qua mạch lọc mới được đưa vào ADE.
- Mạch lọc ghép đôi RC với các thông số: R2=R5=1k, R3=R4=100/2W.
- Hai tụ dùng trong mạch khá lớn cho dòng bằng phẳng là C9=C10=33nF.

27
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha


Chọn R3=R4=100 Ω
Tính toán đầu vào áp:
- Mạch lọc gồm tụ C14 này có tác dụng chặn lại những tín hiệu có tần số cao làm
méo tín hiệu hình sin.
- Đầu vào máy biến áp cũng là nguồn điện lưới 220V qua máy biến áp điện áp
xuống ±6V xoay chiều, sử dụng tiếp bộ lọc.
- Theo công thức phân áp ta có:

Chọn R8=1000Ω
Suy ra:

Chọn R7 =

3.5 Khối hiển thị màn hình LCD


16 cột, 80 ký tự trên mỗi dòng và kích thước mỗi ký tự là 5x7 dots hoặc
5x10dots.
LCD có cách điều khiển và giao thức điều khiển được tương thích với chuẩn
TTL.
Trong hệ thống LCD hoạt động theo chuyển đổi Port dùng dữ liệu là 7 bit. LCD
gồm 16 chân:
Một chương trình hiển thị ký tự trên LCD sẽ đi theo bốn bước sau:
- Xóa toàn bộ màn hình
- Đặt chế độ hiển thị
- Đặt vị trí con trỏ (nơi bắt đầu của ký tự hiển thị)
- Hiển thị ký tự

28
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Chú ý:
+ Các bước 3, 4 có thể lặp lại nhiều lần nếu cần hiển thị nhiều ký tự.
+ Mỗi khi thực hiện ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD cần phải kiểm tra
cờ bận trước. Vì vậy, cần phải chủ động phân phối thời gian khi ra lệnh cho LCD (ví
dụ: Sau khi xóa màn hình sau khoảng 2ms mới ra lệnh khác vì thời gian để LCD xóa
màn hình là 1,64ms).
+ Chế độ hiển thị mặc định sẽ là hiển thị dịch, vị trí con trỏ mặc định sẽ là đầu
dòng thứ nhất.
Bảng 3.7: Bảng mã lệnh của LCD HD4480
Mã lệnh Thời
Lệnh Mô tả gian thi
RS R/WDB0DB1 DB2 DB3DB4DB5DB6DB7
hành
Xóa màn Xóa màn hình đưa
0 0 0 0 0 0 0 0 0 1 1.64ms
hình con trỏ về vị trí đầu
Đưa con trỏ Đưa con trỏ về vị trí
0 0 0 0 0 0 0 0 1 x 1.64ms
về vị trí đầu đầu
Thiết lập hướng dịch
Thiết lập chế
0 0 0 0 0 0 0 1 I/D S chuyển con trỏ(I/D), 40us
độ
dịch hiển thị(S)
Bật tắt hiển thị, con
Bật tắt hiển
0 0 0 0 0 0 1 D C B trỏ; bật tắt chế độ 40us
thị
nhấp nháy con trỏ
Thiết lập chiều dịch
Dịch con trỏ
0 0 0 0 0 1 S/C R/L * * chuyển của con trỏ 40us
hiển thị
và hiển thị
Thiết lập độ dài của
Thiết lập
0 0 0 0 1 DL N F * * dữ liệu, số dòng và 40us
chức năng
font chữ
Thiết lập địa Thiết lập địa chỉ
0 0 0 1 CGRAM address 40us
chỉ CGRAM CGRAM
Thiết lập địa Thiết lập địa chỉ
0 0 1 DDRAM address 40us
chỉ DDRAM DDRAM
Đọc cờ báo Đọc cờ báo bận và
bận và địa chỉ địa chỉ của CGRAM
0 1 BF CGRAM/ DDRAM address 40us
CGRAM/ hoặc DDRAM( tùy
DDRAM vào lệnh trước đó)

29
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Ghi Ghi dữ liệu vào


CGRAM/ 1 0 CGRAM hoặc 40us
Write data
DDRAM DDRAM.
Đọc Đọc dữ liệu từ
CGRAM/ 1 1 Read data CGRAM hoặc 40us
DDRAM DDRAM

Bảng 3.8: Các bit viết tắt trong mã lệnh LCD

Tên bit Mô tả

I/D 0=không dịch chuyển vị trí con trỏ 1=dịch chuyển vị trí con trỏ

S 0 = không dịch chuyển hiển thị 1 = dịch chuyển hiển thị


D 0=tắt hiển thị 1 = bật hiển thị
C 0=tắt con trỏ 1 = bật con trỏ
B 0=con trỏ không nháy 1 = con trỏ nhấp nháy
S/C 0=di chuyển con trỏ 1 = dịch chuyển hiển thị
R/L 0= dịch trái 1 = dịch phải
DL 0=chế độ 4bit dữ liệu 1 = chế độ 8bit dữ liệu
N 0=1 dòng 1= 2 dòng
F 0= font 5x7 1= font 5x10
BF 0= không bận 1= đang bận

30
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

b. Sơ đồ nguyên lý hiển thị LCD

Hình 3.6: Hình ảnh thực tế của LCD2x16

Hình 3.7: Sơ đồ ghép nối LCD

Bảng 3.9: Chức năng chân của LCD


Chân số Ký hiệu Mức logic I/O Chức năng
1 Vss - - Nguồn cung cấp(GND)
2 Vdd - - Nguồn cung cấp(+5V)
3 Vee - I Điện áp để điều chỉnh độ tương phản

31
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Lựa chọn thanh ghi


4 RS 0/1 I 0= thanh ghi lệnh
1=thanh ghi dữ liệu
5 R/W 0/1 I 0=ghi vào LCD module
1=đọc từ LCD module
6 E 1,1=>0 I Tín hiệu cho phép
7 DB1 0/1 I/O Data bus line 0(LSB)
8 DB2 0/1 I/O Data bus line1
9 DB3 0/1 I/O Data bus line2
10 DB4 0/1 I/O Data bus line3
11 DB5 0/1 I/O Data bus line4
12 DB6 0/1 I/O Data bus line5
13 DB7 0/1 I/O Data bus line6
14 DB8 0/1 I/O Data bus line7(MSB)
15 Vcc - - Nguồn cung cấp
16 GND - - Mass

3.6 Khối nguồn

Hình 3.10: Mạch cấp nguồn

- Khối nguồn là những khối quan trọng của trong một hệ thống đo lường, nó có
nhiệm vụ cung cấp nguồn điện cho toàn mạch điện.
- Trong mạch dùng điện áp 5v, vì vậy từ điện áp lưới 220v xoay chiều chúng

32
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

em đã sử dụng một máy biến áp xuống 12v xoay chiều, sau đó qua chỉnh lưu cầu
để được nguồn điện một chiều, để có được điện áp 5v một chiều ta dùng tiếp con IC ổn
áp7805 để có điện áp +5v .

3.7 Module chuyển đổi USB – USART

Mạch chuyển USB UART CP2102 sử dụng chip CP2102 của hãng SILICON LABS
được dùng để chuyển giao tiếp từ USB sang UART TTL và ngược lại.
Mạch chuyển USB UART CP2102 có thể nhận trên tất cả các hệ điều hành Windows,
Mac, Linux, Android,... rất dễ sử dụng và giao tiếp.
Hỗ trợ các tốc độ truyền như: 300, 600, 1200, 1800, 2400, 4000, 4800, 7200, 9600 ,
14400, 16000, 19200, 28800, 38400, 51200, 56000, 57600, 64000, 76800, 115200 ,
128.000, 153.600, 230.400 , 250.000, 256.000, 460.800, 500.000, 576.000, 921.600
và các loại tốc độ khác.
CP2102 không sử dụng thạch anh ngoài như các chip PL2303. Module có sẵn ngõ ra
điện áp 3.3V.
Trên mạch có 6 cổng đầu ra: 3.3V DTR 5V Tx Rx Gnd. Trong đó chân DTR được sử
dụng để reset vi điều khiển trong quá trình nạp (tương thích với Arduino Promini).
LED nguồn sáng khi gắn vô máy tính và LED báo hiệu Tx / Rx, LED này sẽ sáng khi
module nhận, gửi dữ liệu
Mô tả chân như sau:
 TXD: chân truyền dữ liệu UART, dùng kết nối đến chân Rx của các module khác,
không kết nối trực tiếp đến mức của RS232
 RXD: chân nhận dữ liệu UART, dùng kết nối đến chân Tx của các module khác,
không kết nối trực tiếp đến mức của RS232
 GND: chân mass hoặc nối đất.
 5V: nguồn điện áp dương (tối đa 500mA).
 DTR: Chân reset để nạp cho vi điều khiển
 3.3V: nguồn điện áp dương 3.3V

33
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Hình 3.11. Module chuyển đổi USB – UART CP2102

3.8 Hình ảnh thực tế của sản phẩm

Hình 3.12: Hình ảnh thực tế của sản phẩm

34
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

CHƯƠNG 4. THIẾT KẾ PHẦN MỀM


4.1 Giới thiệu phần mềm Codevision AVR
Codevision AVR là môi trường phát triển tích hợp và biên dịch ngôn ngữ C cho
họ AVR. Giao diện dễ dử dụng, Codevision AVR sẽ tạo cho người dùng một sườn
code bằng giao diện CodeWizard AVR do người dùng thiết lập trước đó. Theo đó
người sử dụng sẽ thêm các dòng code tùy mục đích sử dụng.
4.2 Khởi tạo và viết chương trình trên Codevision AVR

Hình 4.1 : Giao diện khởi động Codevision AVR

Khởi động chương trình xong ta sẽ thiết lập project mới để viết code. Thao tác
thực hiện:
Vào File chọn New- tích chọn ô Project - Ok

Hình 4.2 : Tạo thư mục mới trong Codevision AVR

khi đó máy sẽ hỏi chúng ta có muốn thiết lập bằng CodeWizard AVR không
chúng ta chọn Yes để khơi tạo bằng CodeWizard AVR.

35
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Hình 4.3 : Xác nhận tạo file mới.

Và dòng chip chúng ta sử dụng là Atmega16 nên sẽ tích ô trên:

Hình 4.4 : Chọn loại vi xử lý.

Sau đó ta sẽ nhận được giao diện CodeWizard AVR như sau:

36
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Hình 4.5: Giao diện CodeWizard AVR.

Tại đây ta sẽ thiết đặt để CodeWizard AVR tạo sườn code cho chúng ta.
Trong phần chip ta chọn loại chip là Atmega 16.
Phần clock chính là tần số thạch anh, ta sử dụng thạch anh 16Mhz.
Tiếp theo đến phần Ports ta thiết đặt như sau :
Port A là cổng out để hiển thị lên LCD

Hình 4.6 : Khởi tạo các Port cho vi xử lý trong Codevision AVR.

Tiếp đến ta thiết đặt cho phần hiển thị LCD

Hình 4.7 : Thiết lập LCD trong Codevision AVR

37
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Sau khi thiết lập như trên xong ta sẽ vào program chọn dòng Genarate, Save and
Exit, sau đó ta sẽ lưu 3 file thu được vào cùng 1 thư mục

Hình 4.8 : Hoàn thành tạo thư mục mới.

4.3 Lưu đồ thuật toán


- Lưu đồ thuật toán đọc ADE:

Hình 4.9 : Lưu đồ thuật toán ADE7753.

38
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

- Lưu đồ thuật toán mạch chính:

39
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Hình 4.10 : Lưu đồ thuật toán mạch chính.

40
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

4.4 Phần lập trình.


#include <mega16.h>

// Alphanumeric LCD functions


#include <alcd.h>
#include <spi.h>
// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>
#include <math.h>
#include <string.h>

// Declare your global variables here


unsigned char trangthai=0;
unsigned char n=0;
////////////////////////////
eeprom unsigned char program_n;
///////////////////////////
unsigned char nhanlenh;
unsigned char CMD;
//////////////////////////////////////////////////////////////////
unsigned char lenh1[]="<VOLT>"; // do ap
unsigned char lenh2[]="<CURR>"; // do dong
unsigned char lenh3[]="<COSP>"; // do cosphi
unsigned char lenh4[]="<CSTD>"; // do cong suat tac dung
unsigned char lenh5[]="<CSPK>"; // do cs phan khang
//////////////////////////////////////////////////////////////////
#define rst PORTB.1

#define DOUT PINA.2


#define CLK PORTA.1
#define IN PORTA.3
#define CS PORTA.0

//Dia chi cac thanh ghi SPI_ADE7753


#define WAVEFORM 0x01,3
#define AENERGY 0x02,3

41
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

#define RAENERGY 0x03,3


#define LAENERGY 0x04,3
#define VAENERGY 0x05,3
#define RVAENERGY 0x06,3
#define LVAENERGY 0x07,3
#define LVARENERGY 0x08,3
#define MODE 0x09,2
#define IRQEN 0x0A,2
#define STATUS 0x0B,2
#define RSTSTATUS 0x0C,2
#define CH1OS 0x0D,1
#define CH2OS 0x0E,1
#define GAIN 0x0F,1
#define PHCAL 0x10,1
#define APOS 0x11,2
#define WGAIN 0x12,2
#define WDIV 0x13,1
#define CFNUM 0x14,2
#define CFDEN 0x15,2
#define IRMS 0x16,3
#define VRMS 0x17,3
#define IRMSOS 0x18,2
#define VRMSOS 0x19,2
#define VAGAIN 0x1A,2
#define VADIV 0x1B,1
#define LINECYC 0x1C,2
#define ZXTOUT 0x1D,2
#define SAGCYC 0x1E,1
#define SAGLVL 0x1F,1
#define IPKLVL 0x20,1
#define VPKLVL 0x21,1
#define IPEAK 0x22,3
#define RSTIPEAK 0x23,3
#define VPEAK 0x24,3
#define RSTVPEAK 0x25,3
#define TEMP 0x26,1
#define PERIOD 0x27,2

42
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

#define TMODE 0x3D,1


#define CHKSUM 0x3E,1
#define DIEREV 0x3F,1

////////////////////////////////////////////////////////////////////////
#ifndef RXB8
#define RXB8 1
#endif

#ifndef TXB8
#define TXB8 0
#endif

#ifndef UPE
#define UPE 2
#endif

#ifndef DOR
#define DOR 3
#endif

#ifndef FE
#define FE 4
#endif

#ifndef UDRE
#define UDRE 5
#endif

#ifndef RXC
#define RXC 7
#endif

#define FRAMING_ERROR (1<<FE)


#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<DOR)
#define DATA_REGISTER_EMPTY (1<<UDRE)

43
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer


#define RX_BUFFER_SIZE 6
unsigned char rx_buffer[RX_BUFFER_SIZE];
unsigned char malenh[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE <= 256


unsigned char rx_wr_index=0,rx_rd_index=0;
#else
unsigned int rx_wr_index=0,rx_rd_index=0;
#endif

#if RX_BUFFER_SIZE < 256


unsigned char rx_counter=0;
#else
unsigned int rx_counter=0;
#endif

// This flag is set on USART Receiver buffer overflow


bit rx_buffer_overflow;

// Write a character to the USART0 Transmitter


#pragma used+
void FT_uart_tx(signed char data)
{
while ((UCSRA & DATA_REGISTER_EMPTY)==0);
UDR=data;
}
#pragma used-

// USART Receiver interrupt service routine


interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data,i;
status=UCSRA;

44
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR |
DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index++]=data;
#if RX_BUFFER_SIZE == 256
// special case for receiver buffer size=256
if (++rx_counter == 0)
{
#else
if (rx_wr_index == RX_BUFFER_SIZE)
{
for( i=0;i<RX_BUFFER_SIZE;i++)
{
//FT_uart_tx(rx_buffer0[i]); // ban lai ma lenh
malenh[i]=rx_buffer[i]; // chuyen dl vao mang ma lenh
}
if((program_n==0)&(trangthai==0))
{nhanlenh=1;}
rx_wr_index=0;
}
if(++rx_counter == RX_BUFFER_SIZE)
{
rx_counter = 0;
#endif
rx_buffer_overflow=1;
}
}
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;

45
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

while (rx_counter==0);
data=rx_buffer[rx_rd_index++];
#if RX_BUFFER_SIZE != 256
if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#endif
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

/////////////////////////////////////////////////////////////////////////////
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
/*
f=250000khz --> T = (1/f) . 10^6 = 4(us)
dat TCNT0=6-255 ==> có 256-6=250 chu ky
==> Ttran = 250.4 = 1(ms)
moi lan timer tran, xay ra ngat và bien dem++.
bien dem tang dc 1000 lan thi dc 1s (thuc te tang 3700 xap xi 1 min).
*/

}
/////////////////////////////////////////////////////////////////////////////
void lcd_putnumfl(float giatri)
{
char tram, chuc, donvi, phan10, phan100, phan1000, phan10000;

tram =(int)giatri%1000/100;
chuc =(int)giatri%100/10;
donvi=(int)giatri%10;
phan10=(int)((int)(10*giatri)%10);
phan100=(int)((int)(100*giatri)%10);
phan1000=(int)((int)(1000*giatri)%10);

46
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

phan10000=(int)((int)(10000*giatri)%10);

lcd_putchar(48+tram);
lcd_putchar(48+chuc);
lcd_putchar(48+donvi);
lcd_putchar('.');
lcd_putchar(48+phan10);
lcd_putchar(48+phan100);
}

void tx5(float giatri){


char tram, chuc, donvi, phan10, phan100, phan1000;
char i;

tram = (int)giatri%1000/100;
chuc = (int)giatri%100/10;
donvi = (int)giatri%10;
phan10 = (int)((int)(10*giatri)%10);
phan100 = (int)((int)(100*giatri)%10);
putchar(tram+48);
putchar(chuc+48);
putchar(donvi+48);
putchar('.');
putchar(phan10+48);
putchar(phan100+48);
}
/////////////////////////////////////////////////////////////////////////////
void spi_t(unsigned char data7753);
unsigned char spi_r(void);
void ade7753_write(char addr,char sobyte,char data1,char data2,char data3);
unsigned long int ade7753_read(char addr, char sobyte);
void ade7753_init(void);
//////////////////////////ADE7753///////////////////////////////////////////
unsigned char read[10];
void spi_t(unsigned char data7753) //truyen 8bit vao ade
{
int i=0;

47
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

for(i=0;i<8;i++)
{
//CLK = 1;delay_us(10);
if((data7753&0x80)==0x80)
IN = 1;
else IN=0;
delay_us(3);
CLK = 1;delay_us(7);
CLK = 0;delay_us(7);
data7753=data7753<<1;
}
}
////////////////////////////////////////////////////////////////////////////////
unsigned char spi_r(void) //doc 8bit tu ade
{
unsigned char rd_bit,dat;
int i=0,j=7;
dat = 0x00;
for(i=0;i<8;i++)
{
CLK = 1;delay_us(7);
// rd_bit = DOUT;
// dat = dat | (rd_bit<<j);
// j--;
dat = dat << 1;
dat = dat | DOUT;
//CLK = 1;delay_us(10);
CLK = 0;delay_us(7);
}
return dat;
}
//ghi 8bit,16bit,24bit: addr:dia chi can ghi,sobyte:sobyte cua thanh ghi can ghi,
//24bit thi data1:byte cao nhat,data3:byte thap nhat
//16bit thi data1 la byte cao,data2 la byte thap
//8bit thi data1 la du lieu,
void ade7753_write(char addr,char sobyte,char data1,char data2,char data3)
{

48
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

int i=0;
char dat[5];

dat[1]=data1;dat[2]=data2;dat[3]=data3;
CS=0;delay_us(50);
addr = addr|0x80;
spi_t(addr);
delay_us(20);
for(i=1;i<=sobyte;i++)
{
spi_t(dat[i]);
delay_us(20);
}
delay_us(50);
CS=1;
}
//doc du lieu tu ade,addr la dia chi thanh ghi,sobyte la so byte trong thanh ghi
do
unsigned long int ade7753_read(char addr, char sobyte)//8bit,16bit,24bit
{
int i=0;
unsigned long int ketqua=0;
addr=addr&0x3f;

CS=0;delay_us(50);
spi_t(addr);
delay_ms(30);
for(i=0;i<=sobyte;i++)
{read[i]=spi_r();delay_us(20);}
delay_us(50);
CS=1;
if(sobyte==1) ketqua = (unsigned long int)read[0];
if(sobyte==2) ketqua = (unsigned long int)read[0]*256 + (unsigned long
int)read[1];
if(sobyte==3) ketqua = (unsigned long int)read[0]*65536 + (unsigned long
int)read[1]*256 + (unsigned long int)read[2];
return ketqua;

49
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

}
/////////////////////////////////khoi tao ade///////////////////////////////////////////
void ade7753_init(void)
{
ade7753_write(MODE,0x00,0x00,0X00);delay_us(100); // cho phep dau ra
CF
ade7753_write(SAGLVL,0X2a,0X00,0X00);delay_us(20);
ade7753_write(SAGCYC,0X04,0X00,0X00);delay_us(20);
}
/////////////////////////////////////Do cac thong so///////////////////////////////////////////////////
void cm1()
{
char i;
unsigned long int U=0;
float Uf;
trangthai=1;

U=ade7753_read(VRMS);
if(U<3000) U=3000;
Uf = ((U-3000)*1.0f/(1100000-3000))*220.0f;
delay_ms(1);

tx5(Uf);

lcd_gotoxy(0,1);
lcd_puts("U=");
lcd_putnumfl(Uf);

CMD=0;
trangthai=0;
// reset cac bien dem bo nhan '
rx_wr_index=rx_rd_index=rx_counter=0;
for(i=0;i<RX_BUFFER_SIZE;i++)
{
rx_buffer[i]=0;
}
}

50
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

void cm2()
{
char i;
unsigned long int I=0;
float If;
trangthai=1;

I=ade7753_read(IRMS);
if(I<2000) I=2000;
If = ((I-2000)*1.0f/(77000-2000))*0.145f;
delay_ms(1);

tx5(If);

lcd_gotoxy(0,1);
lcd_puts("I=");
lcd_putnumfl(If);

CMD=0;
trangthai=0;
// reset cac bien dem bo nhan '
rx_wr_index=rx_rd_index=rx_counter=0;
for(i=0;i<RX_BUFFER_SIZE;i++)
{
rx_buffer[i]=0;
}
}

void cm3()
{
char i;
unsigned long int P=0,S=0;
float Pf,Sf,Qf,cosPhi;
trangthai=1;

P=ade7753_read(RAENERGY);

51
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

S=ade7753_read(RVAENERGY);

Pf = (P*1.0f/1300)*20;
Sf = (S*0.77f/1300)*20;

if (Sf < 0) Sf = 0;
if(Sf > Pf)
{
cosPhi = Pf / Sf;
}
else
{
cosPhi = 1;
}
if(Pf < 2.5)
{
Qf = 0;
Pf = 0;
cosPhi = 1;
}
if(cosPhi > 1) cosPhi = 1;

tx5(cosPhi);
lcd_gotoxy(0,1);
lcd_puts("COSphi=");
lcd_putnumfl(cosPhi);

CMD=0;
trangthai=0;
// reset cac bien dem bo nhan '
rx_wr_index=rx_rd_index=rx_counter=0;
for(i=0;i<RX_BUFFER_SIZE;i++)
{
rx_buffer[i]=0;
}

52
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

void cm4()
{
char i,c;
unsigned long int P=0;
float Pf,d1,d2,sum;
trangthai=1;
d1=d2=sum=0;

for(c=0;c<10;c++){
P=ade7753_read(RAENERGY);

d1 = (P*1.0f/1300)*20;
sum = sum+d1;
delay_ms(1000);
}
Pf = 1*(sum/10);
if(Pf < 2.5)
{
Pf = 0;
}

tx5(Pf);

lcd_gotoxy(0,1);
lcd_puts("P=");
lcd_putnumfl(Pf );

CMD=0;
trangthai=0;
// reset cac bien dem bo nhan '
rx_wr_index=rx_rd_index=rx_counter=0;
for(i=0;i<RX_BUFFER_SIZE;i++)
{
rx_buffer[i]=0;
}
}

53
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

void cm5()
{
char i;
unsigned long int P=0,S=0;
float Pf,Sf,Qf;
trangthai=1;

P=ade7753_read(RAENERGY);
S=ade7753_read(RVAENERGY);

Pf = (P*1.0f/1300)*20;
Sf = (S*0.77f/1300)*20;
if (Sf < 0) Sf = 0;
if(Sf > Pf)
{
Qf=sqrt(Sf*Sf-Pf*Pf);
}
else
{
Qf = 0;
}
if(Pf < 2.5)
{
Qf = 0;
Pf = 0;
}

tx5(Qf);

lcd_gotoxy(0,1);
lcd_puts("Q=");
lcd_putnumfl(Qf);

CMD=0;
trangthai=0;
// reset cac bien dem bo nhan '

54
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

rx_wr_index=rx_rd_index=rx_counter=0;
for(i=0;i<RX_BUFFER_SIZE;i++)
{
rx_buffer[i]=0;
}
}
////////////////////////////////////giai ma lenh//////////////////////////////////////////////////////
unsigned char sosanh(void) // ham tra lai ket qua la 5 neu ma lenh loi ; 0,1 neu
co ma lenh trung
{
unsigned char i,j;
unsigned char K[5];

j=34;
for(i=0;i<5;i++)
{
K[i]=0;
}
for (i=0;i<RX_BUFFER_SIZE;i++)
{
if(malenh[i]==lenh1[i]) K[0]++;
if(malenh[i]==lenh2[i]) K[1]++;
if(malenh[i]==lenh3[i]) K[2]++;
if(malenh[i]==lenh4[i]) K[3]++;
if(malenh[i]==lenh5[i]) K[4]++;
// if(malenh[i]==lenh6[i]) K[5]++;
// if(malenh[i]==lenh7[i]) K[6]++;
// if(malenh[i]==lenh8[i]) K[7]++;
// if(malenh[i]==lenh9[i]) K[8]++;
}

for (i=0;i<5;i++)
{
if(K[i]==RX_BUFFER_SIZE) {CMD=i+1;i=5;j=6;return 1;}
}
delay_ms(10);
if (j!=6) {return 5;}

55
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

delay_ms(1);
}
void giaimalenh(void) // giai ma lenh tu PC
{
unsigned char i,n;
i=n=0;

lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("PC<>JIG:");
lcd_gotoxy(0,0);
lcd_putsf("GIA TRI:");
// in ma lenh ra LCD
for(i=0;i<RX_BUFFER_SIZE;i++)
{
lcd_putchar(malenh[i]);
}
// giai ma lenh
n=sosanh();
if(n==5) // lenh Fail
{
// phan hoi lai PC ma lenh fail

FT_uart_tx('<');FT_uart_tx('L');FT_uart_tx('O');FT_uart_tx('I');FT_uart_tx('
_');
FT_uart_tx('K');FT_uart_tx('I');FT_uart_tx('_');FT_uart_tx('T');FT_uart_tx('U');FT_uar
t_tx('>');
// in ma lenh ra LCD
lcd_gotoxy(0,1);
lcd_putsf("KO CO TIN HIEU");
}
// reset cac bien dem bo nhan '
rx_wr_index=rx_rd_index=rx_counter=0;
for(i=0;i<RX_BUFFER_SIZE;i++)
{
rx_buffer[i]=0;
}

56
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

// reset nhan lenh


nhanlenh=0;
}
void stanby(void) // cho nhan lenh tu PC
{
if (nhanlenh==1) {giaimalenh();}
switch(CMD)
{
case 1: cm1(); break;
case 2: cm2(); break;
case 3: cm3(); break;
case 4: cm4(); break;
case 5: cm5(); break;
// case 6: cm6(); break; // Nhanh Ion
// case 7: cm7(); break; // Nhanh Ion
// case 8: cm8(); break; // Nhanh Ion
// case 9: cm9(); break; // Nhanh Ion
default:
break;
}

}
void main(void)
{
// Declare your local variables here

// Reset Source checking


if (MCUCSR & 1)
{
// Power-on Reset
MCUCSR&=0xE0;
// Place your code here

}
else if (MCUCSR & 2)
{
// External Reset

57
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

MCUCSR&=0xE0;
// Place your code here

}
else if (MCUCSR & 4)
{
// Brown-Out Reset
MCUCSR&=0xE0;
// Place your code here

}
else if (MCUCSR & 8)
{
// Watchdog Reset
MCUCSR&=0xE0;
// Place your code here

}
else if (MCUCSR & 0x10)
{
// JTAG Reset
MCUCSR&=0xE0;
// Place your code here

// Input/Output Ports initialization


// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x75;
DDRA=0x7B;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In

58
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T


PORTB=0x00;
DDRB=0x01;

// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x02;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off

59
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

// Compare A Match Interrupt: Off


// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization


// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization


TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On

60
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

// USART Mode: Asynchronous


// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x67;

// Analog Comparator initialization


// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// Alphanumeric LCD initialization


// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16

61
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

lcd_init(16);

// Global enable interrupts


#asm("sei")

CLK=0;CS=1;
ade7753_init();
n=0;
program_n=0;
nhanlenh=0;
CMD=0;
while (1)
{
switch(program_n)
{
case 0:
lcd_clear();
while(1)
{
stanby();
if(program_n !=0) break;
}
break;
}

}
}

62
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.

Kết luận:
Qua 2 tháng tìm hiểu và làm đồ án cùng với sự hướng dẫn tận tình của cô Bùi
Thị Duyên, nhóm chúng em đã cơ bản hoàn thành được nội dung của đồ án trong đúng
thời hạn đã quy định, với yêu cầu đặt ra là “Thiết kế đồng hồ đo đếm thông số điện một
pha có giao tiếp với máy tính”. Sau quá trình làm đồ án, chúng em đã đạt được những
kết quả như sau:
Sử dụng đồng hồ để đo được các giá trị U, I, P, Q, cosφ. Sử dụng bàn phím để
hiển thị chúng lên LCD và màn hình máy tính.
Sản phẩm cho phép đo liên tục các giá trị với thời gian đặt trước, người dùng có
thể biết được thông tin mà không phải tiếp xúc trực tiếp với dòng điện, với sản phẩm.
Tuy nhiên, sai số trong quá trình thực hiện sản phẩm là điều không thể tránh
khỏi:
Bộ phận nguồn có thể gây sai số làm quá trình không ổn định.
Modul ADE 7753 có thể có dải hoạt động sai số nhất định
Sai số trong quá trình lựa chọn điện trở, tụ điện.
Từ những nguyên nhân xảy ra sai số này, ta có thể thiết kế mạch để giảm thiểu
sai số một cách tối đa.
Phương hướng phát triển:
Do thời gian thực hiện đề tài có hạn và lượng kiến thức của chúng em còn ít nên
chúng em chỉ thực hiện 1 phần nhỏ của hệ thông hoàn chỉnh. Với đề tài nghiên cứu
thiết kế Multimeter giao tiếp với máy tính chúng ta có thể phát triển mô hình ra như
sau:
- Chức năng có thể đo thêm phần năng lượng.
- Kết nối internet để đọc thông tin từ xa cập nhật vào máy tính,hướng đến
truyền thông không dây.
- Thực hiện đo các thông số điện sử dung, hiển thị tại chỗ, up lên máy
tính. web, điện thoại
- Tính toán tối ưu và điều khiển các thiết bị trong nhà để tiết kiệm giá
thành điện, xét đến giờ cao điểm
- Sử dụng bộ điều khiển bù công suất nhằm giảm tổn thất năng lượng tiêu
thụ

63
Đề tài: Thiết kế Multimeter giao tiếp với máy tính đo đếm thông số điện một pha

Tài liệu tham khảo:


1. Datasheet atmega16
2. Datasheet ADE7753.
3. Lập trình C căn bản HanoiAptech Computer Education Center.
4. Ngô Diên Tập, “Vi xử lý trong đo lường và điều khiển”.

64

You might also like