1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

17 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết bị đo dòng điện, điện áp có vai trò quan trọng trong lĩnh vực điện máy công nghiệp và trong nghiên cứu học tập
Thể loại Đồ án
Định dạng
Số trang 17
Dung lượng 764,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Cách lập trình để lcd và cảm biến giao tiếp với vi điều khiển.. 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

Trang 1

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

Trang 2

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

 Để hoà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 hoà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

Trang 3

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

Trang 4

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:

Trang 5

- 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

Trang 6

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

Trang 7

 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 ngoà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 64 kbytes bộ nhớ Flash(bộ nhớ lập trình)

o 20kbytes SRAM

 Clock, reset và quản lý nguồn

o Điện áp hoạt động 2.0V -> 3.6V

o 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ờ

o 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 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

Trang 8

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

 7 timer

o 3 timer 16 bit hỗ trợ các mode IC/OC/PWM

o 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

o 2 watdog timer dùng để bảo vệ và kiểm tra lỗi

o 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 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

Trang 9

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 hoàn toà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 toà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

 Để điều khiển độ tương phản của màn hình, bạn xoay biến trở màu xanh

Trang 10

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

Trang 11

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

Trang 12

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);

Trang 13

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;

Trang 14

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);

Trang 15

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

Trang 17

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ể hoàn toà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 quá 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 Hoàng Đức Chính đã hướng dẫn chúng em tận tình trong quá trình thực hiện đồ án này

Ngày đăng: 07/12/2022, 10:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w