Tải bản đầy đủ (.docx) (17 trang)

thiết bị đo dòng điện, điện áp sử dụng smt32

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.43 MB, 17 trang )

MỤC LỤC
CHƯƠNG 1: PHÂN TÍCH NHIỆM VỤ...................................................2
1.

ĐẶT VẤN ĐỀ......................................................................................................................2

2.

MỤC ĐÍCH NGHIÊN CỨU..............................................................................................2

3.

ĐỐI TƯỢNG NGHIÊN CỨU............................................................................................2

4.

PHẠM VI NGHIÊN CỨU.................................................................................................2

5.

NỘI DUNG NGHIÊN CỨU...............................................................................................2

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

LINH KIỆN CẦN THIẾT:................................................................................................3

2.

CẢM BIẾN DỊNG ĐIỆN ACS712-20A:.........................................................................3


3.

CẢM BIẾN ĐIỆN ÁP ZMPT101B:..................................................................................4

4.

STM32F103C8T6................................................................................................................6

5.

XUẤT MÀN HÌNH LCD QUA GIAO TIẾP I2C............................................................8
a.

Mạch điều khiển dùng cho màn hình 16x02.....................................................................8

b.

Ưu điểm của việc sử dụng giao tiếp I2C...........................................................................9

c.

Kết nối module màn hình với STM32F103C8T6...........................................................10

CHƯƠNG 3: THIẾT KẾ MẠCH IN.........................................................11
CHƯƠNG 4: THIẾT KẾ PHẦN MỀM.....................................................12
CHƯƠNG 5: KẾT QUẢ THỰC NGHIỆM...............................................15
CHƯƠNG 6: ĐÁNH GIÁ VÀ KẾT LUẬN...............................................17

1



CHƯƠNG 1: PHÂN TÍCH NHIỆM VỤ
1. ĐẶT VẤN ĐỀ
Xuất phát từ nhu cầu thực tiễn, thiết bị đo dòng điện, điện áp có cấu tạo nhỏ gọn,
mang lại kết quả nhanh chóng và chính xác nhất, tăng khả năng cơ động cho người sử
dụng.
Thiết bị đo dòng điện, điện áp có vai trị quan trọng trong linh vực điện máy công
nghiệp và trong nghiên cứu học tập, là thiết bị mang đến tính trực quan và thực tiễn cho
người dùng.
2. MỤC ĐÍCH NGHIÊN CỨU
 Để hồn thành học phần đồ án I, tạo cơ sở cho các đồ án sau này.
 Với nhóm nghiên cứu là cơ hội để kiểm tra lại kiến thức đồng thời biết vận dụng
kiến thức vào thực tiễn, tìm tịi khám phá, tiếp cận nghiên cứu, biết cách làm việc
nhóm vì mục đích chung.
 Tạo ra sản phẩm có ứng dụng trong thực tiễn.
3.






ĐỐI TƯỢNG NGHIÊN CỨU
Cảm biến dòng điện ACS712-20A
Cảm biến điện áp AC Voltage Sensor ZMPT101B
Vi điều khiển STM32
Lcd 1602 phù hợp để xuất dữ liệu cần đo.
Cách lập trình để lcd và cảm biến giao tiếp với vi điều khiển.

4. PHẠM VI NGHIÊN CỨU

Do đồ án học song song với học phần vi xử lí nên đồ án của nhóm tập trung vào tìm
tịi kiến thức trên mạng, tham khảo tài liệu, mơ phỏng và thiết kế thiết bị đo hồn chỉnh.
5. NỘI DUNG NGHIÊN CỨU
Báo cáo gồm 5 chương:







Chương 1: Phân tích nhiệm vụ
Chương 2: Thiết kế phần cứng
Chương 3: Thiết kế mạch in
Chương 4: Thiết kế phần mềm
Chương 5: Kết quả thực nghiệm
Chương 6: Đánh giá và kết luận
2


CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG
1. LINH KIỆN CẦN THIẾT:
 Cảm biến dòng điện ACS712-20A
 Cảm biến điện áp ZMPT101B
 STM32F103C8T6
 Modun điều khiển màn hình LCD
 Màn hình LCD 16x2
 Dây kết nối
2. CẢM BIẾN DÒNG ĐIỆN ACS712-20A:
Module cảm biến dòng điện ACS712 20A sử dụng IC ACS712ELC dựa trên hiệu ứng

Hall chuyển dòng điện cần đo thành giá trị điện thế. ACS712 là IC cảm biến dịng tuyến
tính dựa trên hiệu ứng Hall. Chân ACS712 sẽ xuất ra tín hiệu analog ở chân Vout biến
đổi tuyến tính theo Ip (Dòng điện cần đo) để lấy mấu thứ cấp DC (hoặc AC) trong phạm
vi cho phép. Tụ Cf dùng để chống nhiễu.

3


a. Thông số kỹ thuật :
 Nguồn: 5VDC
 Điện áp cảm biến tối đa: 250VAC
 Tín hiệu đầu ra: Analog 0~5VDC
 Độ nhạy đầu ra từ 94-104mV/A
 Ip: 20A
 Điện trở dây dẫn trong là 1.2mΩ

b. Sơ đồ kết nối vi xử lý:

c. Cách sử dụng cảm biến ACS712 :
- Đo dòng điện DC: phải mắc tải nối tiếp Ip+ và Ip- đúng chiều, khi dòng điện đi từ
Ip+ đến Ip- Vout sẽ ra mức điện áp tương ứng 2.5-5VDC tương ứng dòng 0~max, nếu
mắc ngược Vout sẽ ra điện thế 2.5~0VDC tương ứng với 0~(-Max). Khi cấp nguồn
5VDC cho module khi chưa có dịng Ip (chưa có tải mắc nối tiếp) thì Vout=2.5VDC,
khi dịng Ip (dịng của tải) bằng Max thì Vout=5DC, Vout sẽ tuyến tính với dịng Ip
trong khoảng 2.5~5VDC tương ứng vơi dòng 0~Max
- Đo dòng điện AC: cấp nguồn 5v cho module khi chưa có dịng dịng Ip (chưa có
tải mắc nối tiếp với domino), thì Vout=2.5v. Khi có dịng xoay chiều Ip (dịng AC) do
dịng xoay chiều độ lớn thay đổi liên tục theo hàm sin, nên điện thế Vout sẽ là điện thế
xoay chiều hình sin có độ lớn tuyến tính với dịng điện AC, 0 đến 5V (thế xoay
chiều xoay chiều) tương ứng với -20A đến 20A (dòng xoay chiều).

3. Cảm biến điện áp ZMPT101B:
4


-

Cảm biến điện áp ZMPT101B được sử dụng để đo điện áp AC một cách chính xác
bằng cuộn biến áp ZMPT101B, cảm biến có khả năng đo tối đa 250VAC với biến
trở tinh chỉnh giá trị analog đầu ra thích hợp.

-

Thông số kĩ thuật:








Nguồn sử dụng: 5VDC
Điện áp cảm biến tối đa: 250VAC
Tín hiệu đầu ra: Analog 0~5VDC
Dịng đầu vào định mức: 2mA
Dịng đầu ra định mức: 2mA
Nhiệt độ: -40~60

-


Mơ-đun cảm kháng lẫn nhau điện áp hoạt động đầu ra AC một pha, được trang bị
biến áp điện áp có độ chính xác cao và cường độ dịng điện hoạt động chính xác
cao, dễ dàng thu thập điện áp 250v trong tín hiệu nguồn AC.

5


4. STM32F103C8T6
STM32 là một trong những dòng chip phổ biến của ST với nhiều họ thông dụng như
F0,F1,F2,F3,F4….. Stm32f103 thuộc họ F1 với lõi là ARM COTEX M3. STM32F103 là
vi điều khiển 32 bit, tốc độ tối đa là 72Mhz. Giá thành cũng khá rẻ so với các loại vi điều
khiển có chức năng tương tự. Mạch nạp cũng như cơng cụ lập trình khá đa dạng và dễ sử
dụng.
Một số ứng dụng chính: dùng cho driver để điều khiển ứng dụng, điều khiển ứng dụng
thông thường, thiết bị cầm tay và thuốc, máy tính và thiết bị ngoại vi chơi game, GPS cơ
bản, các ứng dụng trong công nghiệp, thiết bị lập trình PLC, biến tần, máy in, máy quét,
hệ thống cảnh báo, thiết bị liên lạc nội bộ…
Phần mềm lập trình: có khá nhiều trình biên dịch cho STM32 như IAR Embedded
Workbench, Keil C… ở đây em sử dụng phần mềm MX Cube và Keil C để lập trình.
Thư viện lập trình: có nhiều loại thư viện lập trình cho STM32 như: STM32snippets,
STM32Cube LL, STM32Cube HAL, Standard Peripheral Libraries, Mbed core.
Mạch nạp: có khá nhiều loại mạch nạp như : ULINK, J-LINK , CMSIS-DAP, STLINK…
Ở đây em sử dụng mạch nạp STLINK
Sơ lược về Board :



1 cổng Mini USB dùng để cấp nguồn, nạp cũng như debug.




2 MCU bao gồm 1 MCU nạp và 1 MCU dùng để lập trình.
6




Có chân Output riêng cho các chân mạch nạp trên MCU1.



Có chân Output đầy đủ cho các chân MCU2.



Chân cấp nguồn ngồi riêng cho MCU2 nếu khơng sử dụng nguồn từ USB.



Thạch anh 32,768khz dùng cho RTC và Backup.



Chân nạp dùng cho chế độ nạp boot loader.



Nút Reset ngoài và 1 led hiển thị trên chân PB9, 1 led báo nguồn cho MCU2.

Cấu hình chi tiết của STM32F103C8T6:



ARM 32-bit Cortex M3 với clock max là 72Mhz.



Bộ nhớ:
o



o 20kbytes SRAM.
Clock, reset và quản lý nguồn.
o
o



64 kbytes bộ nhớ Flash(bộ nhớ lập trình).

Điện áp hoạt động 2.0V -> 3.6V.
Power on reset(POR), Power down reset(PDR) và programmable voltage
detector (PVD).

o

Sử dụng thạch anh ngoài từ 4Mhz -> 20Mhz.

o


Thạch anh nội dùng dao động RC ở mode 8Mhz hoặc 40khz.

o Sử dụng thạch anh ngoài 32.768khz được sử dụng cho RTC.
Trong trường hợp điện áp thấp:
o

Có các mode :ngủ, ngừng hoạt động hoặc hoạt động ở chế độ chờ.

Cấp nguồn ở chân Vbat bằng pin để hoạt động bộ RTC và sử dụng lưu trữ
data khi mất nguồn cấp chính.
2 bộ ADC 12 bit với 9 kênh cho mỗi bộ.
o



o

Khoảng giá trị chuyển đổi từ 0 – 3.6V.

o

Lấy mẫu nhiều kênh hoặc 1 kênh.

o Có cảm biến nhiệt độ nội.

DMA: bộ chuyển đổi này giúp tăng tốc độ xử lý do khơng có sự can thiệp quá sâu
của CPU.
o

7 kênh DMA.

7




o Hỗ trợ DMA cho ADC, I2C, SPI, UART.
7 timer.
o
o
o

3 timer 16 bit hỗ trợ các mode IC/OC/PWM.
1 timer 16 bit hỗ trợ để điều khiển động cơ với các mode bảo vệ như ngắt
input, dead-time..
2 watdog timer dùng để bảo vệ và kiểm tra lỗi.

1 sysTick timer 24 bit đếm xuống dùng cho các ứng dụng như hàm
Delay….
Hỗ trợ 9 kênh giao tiếp bao gồm:
o





o

2 bộ I2C(SMBus/PMBus).

o


3 bộ USART(ISO 7816 interface, LIN, IrDA capability, modem control).

o

2 SPIs (18 Mbit/s).

o

1 bộ CAN interface (2.0B Active)

o USB 2.0 full-speed interface
Kiểm tra lỗi CRC và 96-bit ID.

5. XUẤT MÀN HÌNH LCD QUA GIAO TIẾP I2C
Mạch điều khiển màn hình 16x02 giao tiếp I2C sử dụng IC điều khiển màn hình kí tự
gồm 16 cột và 2 dòng giúp tiết kiệm dây nối với vi điều khiển cho khả năng hiển thị
nhanh với nhiều chức năng.
a. Mạch điều khiển dùng cho màn hình 16x02

8


Thơng thường, để điều khiển và hiển thị được kí tự từ vi điều khiển xuất ra màn hình
16x02 bạn cần tới 7-8 dây nối đến chân vi điều khiển. Điều này gây ra rất nhiều phiền
toái: đi sai dây, mạch rườm ra, khó viết code...
Những điều này được mạch điều khiển màn hình khắc phục hồn tồn vì số lượng dây
tín hiệu giảm cịn duy nhất: 2 dây. Bằng việc sử dụng giao tiếp I2C, việc điều khiển trực
tiếp màn hình được chuyển sang cho IC xử lý nằm trên mạch. Bạn chỉ việc gửi các mã
lệnh cùng nội dung hiển thị, do vậy giúp vi điều khiển có nhiều thời gian để xử lý các tiến

trình phức tạp khác.
b. Ưu điểm của việc sử dụng giao tiếp I2C
 Giao tiếp I2C chỉ sử dụng duy nhất 2 dây tín hiệu: SDA và SCL giúp tiết kiệm
chân trên vi điều khiển.
 Tốc độ truyền dữ liệu lên đến 400Kbps.
 Dữ liệu truyền nhận đảm bảo tính tồn vẹn vì sử dụng cơ chế phản hồi (ACK) trên
mỗi byte dữ liệu.
 Có khả năng kết nối nhiều thiết bị với nhau: trên mạch có sẵn các mối hàn A0, A1,
A2 để thay đổi địa chỉ của module.
 Địa chỉ mặc định: 0x4E, có thể mắc vào I2C bus tối đa 8 module (3bit address set)
 Điện áp hoạt động: 3V-6V
9


 Để điều khiển độ tương phản của màn hình, bạn xoay biến trở màu xanh.
c. Kết nối module màn hình với STM32F103C8T6
Module màn hình LCD (16x2)
GND
Vcc
SDA
SCL

10

Arduino
GND
5V
B7
B6



CHƯƠNG 3: THIẾT KẾ MẠCH IN

11


CHƯƠNG 4: THIẾT KẾ PHẦN MỀM
Code:
#include "main.h"
#include "i2c-lcd.h"
#include "stdio.h"
#include "string.h"
float ACS17_sensitivity = 0.1; // 0.1 for 20A Model
float ACS17_voltage;
float ACS17_current;
char ACS17_display[15];

float ZMPT101B_voltage;
char ZMPT101B_display[20];
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_ADC1_Init(void);
static void MX_USART2_UART_Init(void);

12


static void MX_I2C1_Init(void);
int main(void)

{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC1_Init();
MX_USART2_UART_Init();
MX_I2C1_Init();
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)readADCValue,2);
lcd_init();
lcd_send_string("Hello World");
HAL_Delay(1000);
lcd_clear();
while (1)
{
ACS17_voltage = (float) readADCValue[0] * 3.3 * 2 / 4095;
ACS17_current =(ACS17_voltage - 2.5)/ACS17_sensitivity;
uint16_t max_v = 0;
uint16_t temp = readADCValue[1];
if (max_v < temp)
{
max_v = temp;
13


}
ZMPT101B_voltage = (float) ((max_v*44/273)-250);
sprintf(ACS17_display,"ACS17: %.2f A",ACS17_current);
sprintf(ZMPT101B_display,"ZMPT101B: %.1f V",ZMPT101B_voltage);
lcd_put_cur(0,0);

lcd_send_string(ACS17_display);
lcd_put_cur(1,0);
lcd_send_string(ZMPT101B_display);
HAL_Delay(10);

14


CHƯƠNG 5: KẾT QUẢ THỰC NGHIỆM

15


16


CHƯƠNG 6: ĐÁNH GIÁ VÀ KẾT LUẬN
Các kết quả đạt được:
Trên cơ sở thiết kế phần cứng và phần mềm nhóm em đã đạt được một số kết quả sau
 Về phần cứng: Tìm hiểu về vi điều khiển STM32F103C8T6, các chân vào ra, cách
sử dụng và đấu nối với các linh kiện khác như ACS712, ZMPT101B và LCD
16x02
 Về phần mềm: Các thuật toán điều khiển của STM32F103C8T6 với cảm biến
ACS712, ZMPT101B và LCD 16x02
Một số hạn chế:
 Trong quá trình làm đồ án chúng em đa cố gắng tìm hiểu, nghiên cứu cũng như
tham khảo thêm một số tài liệu khác nhau để đạt được kết quả tốt nhất. Tuy nhiên
do kiến thức của chúng em có hạn nên khơng thể hồn tồn hiểu rõ hết về mạch
cũng như một số yếu tố khách quan về thiết bị hay sai sót trong q trình lắp mạch
mà đồ án có thể có nhiều điểm hạn chế và thiếu sót.

Lời cảm ơn:
Một lần nữa, chúng em xin chân thành cảm ơn thầy đã hướng dẫn chúng em tận
tình trong quá trình thực hiện đồ án này.

17



×