Các chuẩn truyền dữ liệu

Một phần của tài liệu Đồ án khoa cơ điện, điện tử, đại học lạc hồng (6) (Trang 27)

2.5.1. Chuẩn truyền thông UART

UART là viết tắt của Universal Asynchronous Receiver – Transmitter là kiểu truyền thông tin nối tiếp không đồng bộ thường là một mạch tích hợp. Mục đích của UART là giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song.

Hình 2.16 Gói dữ liệu truyền UART

- Packet: Một gói dữ liệu được truyền đi, bao gồm Start bit, khung truyền dữ liệu, Parity bit, Stop bit

27

- Start bit: thường được giữ ở mức điện áp cao khi nó không truyền dữ liệu. Để bắt đầu truyền dữ liệu, UART truyền sẽ kéo bit này từ cao xuống thấp trong một chu kỳ xung nhịp. Khi UART nhận phát hiện sự chuyển đổi điện áp cao sang thấp, nó bắt đầu đọc các bit trong khung dữ liệu ở tần số của tốc độ truyền.

- Khung dữ liệu: chứa dữ liệu được truyền, nó có thể dài từ 5 đến 8 bit nếu sử dụng một bit parity. Nếu không có bit parity nào được sử dụng, khung dữ liệu có thể dài 9 bit. Bit parity có tác dụng kiểm tra xem dữ liệu có bị thay đổi trong quá trình truyền không bằng cách là kiểm tra tổng số bit 1 là chẵn hay lẻ rồi so sánh với dữ liệu. Nếu tổng số bit 1 là chắn mà bit parity bằng 0 thì quá trình truyền không có lỗi và nếu bằng 1 thì đường truyền bị lỗi khiến dữ liệu bị thay đổi.

- Stop bit: để báo hiệu sự kết thúc của gói dữ liệu, UART gửi sẽ điều khiển đường truyền dữ liệu từ điện áp thấp đến điện áp cao trong ít nhất hai bit.

 Nguyên lý hoạt động:

- UART truyền sẽ nhận dữ liệu từ một bus dữ liệu. Dữ liệu được truyền từ bus dữ liệu sang UART truyền ở dạng song song rồi thêm start bit, parity bit và stop bit để tạo gói dữ liệu. Sau đó, gói dữ liệu được xuất ra dạng nối tiếp tuần tự ở chân Tx rồi truyền qua chân Rx của UART nhận. UART nhận đọc các gói dữ liệu nhận được rồi loại bỏ start bit, parity bit và stop bit. Sau đó chuyển đổi dữ liệu trở lại dạng song song. Cuối cùng, UART nhận chuyển gói dữ liệu song song qua bus dữ liệu.3

UART truyền thêm bit bắt đầu, bit chẵn lẻ và các bit dừng vào khung dữ liệu:

2.5.2. Chuẩn giao tiếp I2C

I2C ( Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng bộ được phát triển bởi Philips Semiconductors, sử dụng để truyền nhận dữ liệu giữa các IC với nhau chỉ sử dụng hai đường truyền tín hiệu.

3 https://kysungheo.com/chuan-giao-tiep-uart/

28 Các bit dữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi 1 tín hiệu đồng hồ.

Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại vi điều khiển, cảm biến, EEPROM, … .

 Đặc điểm giao tiếp I2C

I2C sử dụng 2 đường truyền tín hiệu:

SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi SDA - Serial Data Line : Đường truyền nhận dữ liệu.

Hình 2.18 Quá trình truyền dữ liệu I2C

Giao tiếp I2C bao gồm quá trình truyền nhận dữ liệu giữa các thiết bị chủ tớ.

Thiết bị Master là 1 vi điều khiển, nó có nhiệm vụ điều khiển đường tín hiệu SCL và gửi nhận dữ liệu hay lệnh thông qua đường SDA đến các thiết bị khác.

Các thiết bị nhận các dữ liệu lệnh và tín hiệu từ thiết bị Master được gọi là các thiết bị Slave. Các thiết bị Slave thường là các IC, hoặc thậm chí là vi điều khiển.

29 Master và Slave được kết nối với nhau như hình trên. Hai đường bus SCL và SDA đều hoạt động ở chế độ Open Drain, nghĩa là bất cứ thiết bị nào kết nối với mạng I2C này cũng chỉ có thể kéo 2 đường bus này xuống mức thấp (LOW), nhưng lại không thể kéo được lên mức cao. Vì để tránh trường hợp bus vừa bị 1 thiết bị kéo lên mức cao vừa bị 1 thiết bị khác kéo xuống mức thấp gây hiện tượng ngắn mạch. Do đó cần có 1 điện trờ ( từ 1 – 4,7 kΩ) để giữ mặc định ở mức cao.4

 Trình tự truyền bit trên đường truyền

- Thiết bị chủ tạo xung START

- Thiết bị chủ gửi địa chỉ của thiết bị tớ mà nó cần giao tiếp cùng với bit R/W= 0 ra bus và đợi xung ACK phản hồi từ con tớ

- Khi nhận được xung ACK báo đã nhận diện đúng thiết bị tớ, con chủ bắt đầu gửi dữ liệu đến con tớ theo từng byte một. Theo sau mỗi byte này đều là một xung ACK. Số lượng byte truyền là không hạn chế.

- Kết thúc quá trình truyền, con chủ sau khi truyền byte cuối sẽ tạo xung STOP báo hiệu kết thúc.

Truyền dữ liệu từ tớ đến chủ (đọc dữ liệu): Thiết bị chủ muốn đọc dữ liệu từ thiết bị tớ, quá trình thực hiện như sau:

- Khi bus rỗi, thiết bị chủ tạo xung START, báo hiệu bắt đầu giao tiếp

4 https://deviot.vn/blog/giao-tiep-i2c.05019305

30

- Thiết bị chủ gửi địa chỉ của thiết bị tớ càn giao tiếp cùng với bit R/W = 1 và đợi xung ACK từ phía thiết bị tớ. Sau xung ACK từ con tớ, thiết bị tớ sẽ gửi từng byte ra bus, thiết bị chủ sẽ nhận dữ liệu và trả về xung ACK. số lượng byte không hạn chế.

- Khi muốn kết thúc quá trình giao tiếp, thiết bị chủ gửi xung Not ACK và tạo xung STOP để kết thúc.5

31 CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ

3.1 Giới thiệu

Trong phần này sẽ trình bày về cách tính toán, sơ đồ khối, sơ đồ nguyên lý của tủ tự động bù hệ số công suất được chia ra hai phần chính là thiết kế bộ điều khiển và thiết kế tủ bù hệ số công suất.

3.2 Thiết kế bộ điều khiển

Thiết kế sơ đồ khối bộ điều khiển tụ bù

Chức năng của từng khối:

Khối xử lý và điều khiển trung tâm:Là khối điều khiển trung tâm cho toàn hệ thống đọc và xử lý dữ liệu, so sánh đồng thời hiển thị thông số trên màn hình LCD, cảnh báo bằng còi đến người dùng.

Khối nguồn: Khối này có nhiệm vụ chuyển đổi điện áp từ 220VAC về 5VDC/1A để cấp nguồn cho board mạch hoạt động.

Khối đo điện năng: Sử dụng module đo công suất PZEM 004T để đo các thông số về dòng điện, điện áp, công suất, điện năng tiêu thụ, hệ số công suất sau đó gửi dữ liệu về vi điều khiển.

Khối nguồn Khối đo điện năng Hiển thị LCD Khối chấp hành Khối xử lý và

điều khiển trung tâm Arduino

UNO R3 Khối nút

nhấn

32 Hiển thị LCD: Hiển thị các thông số về điện năng đo được lên màn hình để dễ dàng giám sát.

Khối chấp hành: Có chức năng nhân lệnh từ vi điều khiển sau đó đóng ngắt relay.

3.2.1 Tính toán mạch điện

a) Phân cực cho Bipolar Junction Transistor (BJT) điều khiển relay Dùng transistor A1015 (PNP) điều khiển relay

Hình 3.2 Mạch điều khiển relay bằng OPTO

Mạch điện hình 3.2 là ứng dụng của OPTO để cách ly mạch điều khiển đóng ngắt relay. Điện trở R3 dùng để hạn chế dòng điện kích thích IB.

Điện trở R1 để giới hạn dòng qua LED hồng ngoại khoảng 10mA. Nguồn điều khiển VBB

có hai mức 0V hoặc 5V thì R1 thường chọn giá trị 220Ω hoặc 330Ω.

Điện trở R2 dùng để chống hở cực B của transistor, khi phototransistor của OPTO không được kích thích và hở mạch. R2 thường chọn từ vài trăm KΩ trở lên.6

Tính toán thiết kế mạch điều khiển relay:

Mạch điều khiển đóng mở relay 5V có nội trở RRY = 400Ω, dùng OPTO cách ly. VBB có hai mức 0V hoặc 5V.

Ta có:

33 VCC = 5V, VEB = 0.3V

Transistor PNP có hfe = 300 Giá trị các điện trở được chọn: + R1 = 220Ω

+ R2 = 120KΩ

Áp dụng định luật Kirchhoff 2 cho các điện áp ngõ ra: VCC = VCE + IC.RRL

Khi BJT PNP bão hoà thì VEC = 0:

5 12,5 400 CC C RL V I mA R    

Áp dụng định luật Kirchhoff 2 cho các điện áp ngõ vào khi phototransistor nối tắt: VCC = VEB + IB.RB 3 CC EB B V V I R    Để PNP bão hoà thì: 3 C CC EB C B fe fe I V V I I h R h     3 5 0, 3 1 1 2, 8 1 2, 5 3 0 0 C C E B fe V V R K h        Chọn R3 = 100KΩ. - Nguyên lý hoạt động:

+ Khi nguồn VBB ở mức cao sẽ phân cực thuận cho Led hồng ngoại của Opto phát sáng. Kích thích phototransistor dẫn bão hòa, làm cho đầu điện trở RB nối xuống mass. Khi đó, transistor PNP sẽ được nguồn VCC phân cực để dẫn bão hòa và đóng cuộn dây relay vào nguồn VCC.

34 + Khi nguồn VBB ở mức thấp và không phân cực cho Led hồng ngoại của Opto, thì phototransistor ngưng dẫn và hở mạch. Lúc đó, điện trở Rh sẽ treo cực B của transistor PNP lên nguồn VCC, làm transistor này ngưng dẫn và ngắt relay khỏi nguồn.

b) Phân cực cho Bipolar Junction Transistor (BJT) điều khiển còi Dùng transistor C1815 (NPN) điều khiển còi

Hình 3.3 BJT điều khiển còi báo

Tính toán thiết kế mạch điều khiển còi Ta có:

VCC = 5V, VEB = 0.3V Transistor NPN có hfe = 40 Giá trị các điện trở được chọn: + R1 = 1KΩ Áp dụng định luật Kirchhoff 2: VBB = IB.RB + VEB VCC = VCE + IC.RCE 3 1 5 0,3 0, 47 1.10 CC EB B V V I mA R       Chọn hệ số khuếch đại (hFE) C1815:  =100

35 IC = IB. 0, 47.40 19 C I mA    - Nguyên lý hoạt động:

+ Khi tín hiệu ở mức 0 (tức = 0V) thì Q1 không dẫn do không có dòng IBE, còi không làm việc.

Khi tín hiệu ở mức 1 (tức =5V) thì sẽ qua R1 hạn dòng kích cho Q1 dẫn thông lúc này ta có dòng Ice là dòng điện chạy qua cuộn dây qua Q1 về mass, còi báo

Diode D1 trong mạch có tác dụng chống lại dòng điện cảm ứng do cuộn đây sinh ra làm hỏng transistor.

3.2.2 Thiết kế mạch in Altium từng khối a) Khối nút nhấn a) Khối nút nhấn

Thiết kế các phím chức năng cho bộ điều khiển

Hình 3.4 Thiết kế nút nhấn PULL UP

Với một điện trở kéo lên (Pull-up), thì khi nhấn nút vi điều khiển sẽ đọc giá trị chân là LOW, và khi không nhấn vi điều khiển nhận giá trị là HIGH.

b) Khối kết nối

Hình 3.5 Header kết nối

36 HD1 Cấp nguồn 220 VAC cho khối nguồn chuyển đổi điện áp AC-DC để nuôi board. HD2-> HD5 dùng để kết nối với cuộn coil contactor để điều khiển đóng ngắt các cấp bù.

c) Khối ngoại vi

Kết nối LCD 20x4 I2C, module đo điện năng PZEM-004T qua jack.

Hình 3.6 Kết nối ngoại vi với Arduino

JP2 kết nối với 2 chân vi điều khiển, JP4 là jack cấp nguồn 5 VDC và JP-AC jack cấp nguồn 220VAC cho PZEM 004T, JP-CT là jack kết nối CT (cảm biến dòng) với PZEM 004T.

d) Khối chấp hành

Hình 3.7 Khối điều công suất ngõ ra e) Khối vi xử lý

37

Hình 3.8 Sơ đồ chân của Arduino Uno R3 f ) Khối nguồn

Bảng 3.1 Tính toán dòng điện các linh kiện sử dụng trong mạch

STT Tên linh kiện Số

lượng Điện áp (VDC) Dòng tiêu thụ (mA) Tổng dòng tiêu thụ (mA) 1 Arduino UNO R3 1 5 260 260 2 Module PZEM 004T 1 5 10 10 3 LCD 20x4 module I2C 1 5 50 50 4 Còi báo 1 5 25 25 5 LED đơn 8 5 18 144 6 Relay 5V 8 5 70 560

Tổng dòng điện mạch tiêu thụ (mA) 1049

Với tổng dòng điện tiêu thụ như đã tính ở bảng 3.1, để mạch hoạt động tốt nhất với điện áp 5VDC và dòng cung cấp khoảng 1A.

38 Nguồn xoay chiều 220VAC qua module nguồn AC - DC Hi-Link HLK-5M05 5V 5Wchuyển đổi điện áp sang 5VDC cấp nguồn nuôi cho bộ điều khiển hoạt động. Lắp thêm tụ để lọc phẳng dòng điện hơn giúp mạch điều khiển hoạt động ổn định.

3.2.3 Sơ đồ nguyên lý toàn mạch

39

3.3 Thiết kế tủ bù hệ số công suất 3.3.1 Sơ đồ mạch tủ bù hệ số công suất 3.3.1 Sơ đồ mạch tủ bù hệ số công suất

Hình 3.11 Sơ đồ mạch tủ bù hệ số công suất 3.3.2 Tính toán công suất của tủ

Bài toán đặt ra là có 4 động cơ 1 pha chạy không tải với công suất từng động cơ là khoảng 200W, Cos(φ) ≈ 0.5 muốn nâng Cos(φ) > 0.9. Lưới có có U ≈ 220V và tần số 50Hz .

Áp dụng công thức ở chương 2 ta dễ dàng tính Được dung lượng tụ cần bù cho từng động cơ.

C = π .(tg(φ1) - tg(φ2))

Bảng 3.2 Tính dung lượng cần bù

P (W) U (V) Cos(φ1) Cos(φ2) C (uf)

788 227 0.5 0.91 62.13

664 228 0.5 0.91 51.90

426 227 0.5 0.91 33.59

40 - Từ đó bảng và thêm sai số của tụ bù là ±5% dung lượng, nên tủ cần có tổng dung

lượng cao hơn Ccần = 62.13 * 5% = 66 (uf).

- Và giá trị nhỏ nhất là 15uf cần có tụ nhỏ hơn 15 uf để bù cho lúc bật 1 động cơ. Mà trên thị trường chỉ có loại tụ với dung lượng: 10uf, 20uf, 25uf, … .

=> Vì vậy quyết định sử dụng các loại tụ như sau:

Mã SP Dung lượng (uf) Điện áp Số lượng

Tụ SU CBB65 10 400 V 4

Tụ SU CBB65 20 400 V 2

41 CHƯƠNG 4 THI CÔNG VÀ THỬ NGHIỆM

4.1 Thi công bộ điều khiển 4.1.1 Làm mạch 4.1.1 Làm mạch

Vì nhóm không đủ khả năng để làm mạch in lên sẽ thuê bên ngoài hộ trợ làm mạch in và nhóm sẽ đi mua linh kiện về và hàn trên mạch.

Bảng 4.1 Số lượng linh kiện trên bo mạch

STT Tên linh kiện Số lượng STT Tên linh kiện Số lượng

1 Arduino UNO R3 1 11 Điện trở 10KΩ 6

2 Module PZEM 004T 1 12 Điện trở 100KΩ 8

3 Module HLK 5M12 1 13 Điện trở 120KΩ 8

4 LCD 20x4 và module I2C 1 14 Transistor A1015 8

5 Còi báo 1 15 Transistor C1815 1

6 LED đơn 8 16 Diode 9

7 Relay 5V 8 17 Header 2 chân 5

8 Nút nhấn 4 chân 6 18 Tụ C104 2

9 Điện trở 220Ω 8 19 Tụ 1000μF/16V 1

10 Điện trở 1KΩ 7

42

Hình 4.2 Bo mạch thực tế 4.1.2 In 3D hộp

Nhóm không có máy in 3D lên sẽ thuê bên ngoài gia công hộp theo thiết kế của nhóm.

Hình 4.3 Hộp theo thiết kế 4.1.3 Bộ điều khiển bù tự động

43

4.1.4 Lập trình bộ điều khiển tự động bù

Bắt đầu

Thiết các giá trị ban đầu cho các ngõ ra vi điềukhiển Hiển thị LCD Nếu P 0 Nếu P thay đổi Đóng tụ và cập nhật dữ liệu đúng Cập nhật dữ liệu sai Cắt tụ và cập nhật dữ liệu Đóng tụ và cập nhật dữ liệu P Tăng P Giảm Vòng lặp

Hình 4.5Sơ giải thuật chương trình tự động bù hệ số công suất

44

4.2 Thi công tủ bù hệ số công suất

Hình 4.6 Mặt trước của tủ

45

4.3 Thi công mô hình tạo ra dòng có công suất phản kháng cao

Theo như lý thuyết thì công suất phản kháng sinh chủ yếu từ tải cảm mà động cơ chính là tải cảm vì vậy nhóm đề xuất làm một kiểm tra cho bộ điều khiển bằng các tạo dòng điện có một hệ số công suất thấp bằng cách động cơ 1 pha chạy ko tải.

Hình 4.8 Động cơ chạy không tải. 4.4 Kết quả thử nghiệm

4.4.1 Độ chính xác của bộ điều khiển

Để đảm bảo độ chính xác của bộ điều khiển ta dùng Ampe kìm để so sánh với bộ điều khiển,

46

Một phần của tài liệu Đồ án khoa cơ điện, điện tử, đại học lạc hồng (6) (Trang 27)

Tải bản đầy đủ (PDF)

(50 trang)