1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A

46 14 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 kế thi công mạch đo dòng điện DC dùng cảm biến INA219 hiển thị LCD sử dụng PIC16F877A
Tác giả Hồ Văn Nhân
Người hướng dẫn Cù Minh Phước
Trường học Trường Cao Đẳng Kỹ Thuật Cao Thắng
Chuyên ngành Tự Động Hóa
Thể loại Đồ Án Vi Điều Khiển
Định dạng
Số trang 46
Dung lượng 5,42 MB

Cấu trúc

  • Chương 1 Giới thiệu tổng quan về đề tài (9)
    • 1.1 Tổng quan về đề tài (9)
    • 1.2 Mục tiêu của đề tài (0)
    • 1.3 Cấu trúc quyển đồ án (10)
  • Chương 2 Lý Thuyết Cơ Bản (11)
    • 2.1 Vi điều khiển PIC16F877A (11)
      • 2.1.1 Cấu trúc tổng quát của PIC 16F877A (0)
    • 2.2 Module cảm biến INA219 (13)
      • 2.2.1 Nguyên lí hoạt động cảm biến INA219 (15)
    • 2.3 IC ổn áp LM7805 (16)
    • 2.4 Màn hình LCD1602 (17)
    • 2.5 Loa buzz (0)
    • 2.6 Giao tiếp I2C (19)
      • 2.6.1 Giới thiệu giao tiếp I2C (0)
      • 2.6.2 Đặc điểm giao tiếp I2C (0)
      • 2.6.3 Điều kiện Start và Stop (21)
      • 2.6.4 Định dạng dữ liệu truyền I2C (22)
      • 2.6.5 Định dạng địa chỉ thiết bị (25)
      • 2.6.6 Truyền dữ liệu trên bus I2C, chế độ Master – Slave (25)
      • 2.6.7 Giao tiếp I2C trong PIC 16F877X (0)
        • 2.6.7.1 Cách sử dụng I2C chế độ Master (28)
  • Chương 3 Thiết kế sơ đồ khối và sơ đồ nguyên lý (30)
    • 3.1 Sơ đồ khối của hệ thống (0)
    • 3.2 Sơ đồ nguyên lý (31)
      • 3.2.1 Khối nguồn (31)
      • 3.2.2 Khối xử lý trung tâm (0)
      • 3.2.3 Khối nút nhấn (33)
      • 3.2.4 Khối hiển thị (33)
      • 3.2.5 Khối cảnh báo (34)
      • 3.2.6 Khối cảm biến (35)
    • 3.3 Sơ đồ mạch in (35)
      • 3.3.1 Sơ đồ mạch mô phỏng (36)
  • Chương 4 Chương trình điều khiển (38)
    • 4.1 Lưu đồ giải thuật (38)
      • 4.1.1 Chương trình chính (38)
      • 4.1.2 Chương trình đo điện áp (0)
      • 4.1.3 Chương trình con nút nhấn SET (0)
      • 4.1.4 Chương trình con hiển thị (0)
      • 4.1.5 Chương trình con cảnh báo (41)
      • 4.1.6 Chương trình con nút nhấn ngưỡng (0)
      • 4.1.7 Chương trình con đo dòng điện (43)
      • 4.1.8 Chương trình con ngắt Timer 1 (43)
    • 4.2 Chương trình điều khiển (43)
  • Chương 5 Kết quả đạt được và hướng phát triển (45)
    • 5.1 Kết quả đạt được (45)
    • 5.2 Hạn chế (45)
    • 5.3 Hướng phát triển (45)
  • TÀI LIỆU THAM KHẢO (46)

Nội dung

Đồ án đo dòng điện DC là một đề tài có tính áp dụng trong thực tế. trong xu hướng công nghiệp hóa – hiện đại hóa hiện nay, việc phát triển các thiết bị đo để phù hợp với nhu cầu của mọi người là rất cần thiết. Với đồ án này em sẽ tìm hiểu và sử dụng cảm biến INA219 để đo dòng điện DC và hiển thị kết quả đo được lên LCD 16x2, thông qua lập lập trình và điều khiển bằng vi điều khiển PIC16F877A. - Có cảnh báo loa để cảnh báo dòng quá ngưỡng cho người sử dụng - Sử dụng phần mềm PIC C Compiler để lập trình cho vi điều khiển và phần mềm Altium designer để vẽ mạch in thiết kế mạch kết nối các linh kiện + Các phần mềm liên quan : - Protues để chạy mô phỏng - PICkit để nạp chương trình cho vi điều khiển

Giới thiệu tổng quan về đề tài

Tổng quan về đề tài

Ngày nay, khi đời sống ngày càng được nâng cao, trong xu hướng công nghiệp hóa – hiện đại hóa hiện nay, các thiết bị ngày càng hiện đại và có nhiều thông số khác nhau, việc phát triển các thiết bị đo để đo kiểm các thiết trước khi sữa chữa là rất cần thiết phù hợp với nhu cầu của người sử dụng Đo điện áp và dòng điện sẽ luôn hữu ích trong khi tạo hoặc gỡ lỗi bất kỳ hệ thống điện nào Trong dự án này, em sẽ chế tạo một đồng hồ Ampe kế kỹ thuật số bằng Vi điều khiển PIC16F877A và cảm biến dòng DC INA219 Nên em đã chọn đề tài thiết kế mạch đo dòng điện DC dùng cảm biến INA219 hiển thị lên màn hình LCD sử dụng vi điều khiển PIC16F877A, em cảm thấy đề tài này là phù hợp với chuyên ngành Điều Khiển và Tự Động Hóa.

Thiết bị đo dòng DC gồm mạch điện có chức năng đo cường độ dòng điện một chiều Thiết bị này được mắc nối tiếp với các thiết bị cần đo, cho phép đo dòng điện cao tới vài Ampe.

1.2 Mục tiêu của đề tài :

- Có thể đo được dòng điện DC, điện áp hiển thị thông số đo được lên màn hình LCD - Hiểu được nguyên lý của cảm biến INA219, Giao tiếp I2C, PIC16F877A, màn hình LCD

- Giao tiếp được với nút nhấn- Có hệ thống cảnh báo bằng loa

1.3 Cấu trúc quyển đồ án : + Nội dung quyển báo cáo gồm :

Chương 1: Giới thiệu tổng quan về đề tài - Giới thiệu về đề tài.

- Mục tiêu đề tài - Cấu trúc quyển Chương 2: Lý thuyết cơ bản.

- Giới thiệu các thiết bị sử dụng trong đề tài

Chương 3: Sơ đồ khối và sơ dồ nguyên lý

Chương 4: Chương trình điều khiển Chương 5: Kết quả đạt được và hướng phát triển

Cấu trúc quyển đồ án

Chương 1: Giới thiệu tổng quan về đề tài - Giới thiệu về đề tài.

- Mục tiêu đề tài - Cấu trúc quyển Chương 2: Lý thuyết cơ bản.

- Giới thiệu các thiết bị sử dụng trong đề tài

Chương 3: Sơ đồ khối và sơ dồ nguyên lý

Chương 4: Chương trình điều khiển Chương 5: Kết quả đạt được và hướng phát triển

Lý Thuyết Cơ Bản

Vi điều khiển PIC16F877A

bộ nhớ đủ cho hầu hết các ứng dụng thông thường).

Vi xử lý này cung cấp nguồn cung cấp dương trong phạm vi từ 2V đến 5V Nó có bộ lệnh gồm 35 lệnh, mỗi lệnh có độ dài 14 bit Tốc độ hoạt động cho phép của vi xử lý là 20 MHz, tương ứng với chu kỳ lệnh là 20ms Ngoài ra, nó còn được trang bị bộ nhớ RAM dung lượng 368x8 byte.

- Số port I/O là 5 với 33 chân I/O - Có kênh chuyển đổi ADC 10 bit

2.1.1 Cấu trúc tổng quát của PIC 16F877A - 8 K Flash ROM

- 368 Bytes RAM - 256 Bytes EEPROM - 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập - 2 bộ định thời 8 bits (Timer 0 và Timer 2)

- Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngoài

- 2 bô CCP( Capture / Compare/ PWM)- 1 bộ biến đổi AD 10 bits, 8 ngõ vào

- 2 bộ so sánh tương tự (Compartor) - 1 bộ định thời giám sát (WatchDog Timer) - Một cổng song song 8 bits với các tín hiệu điều khiển - Một cổng nối tiếp

- 15 nguồn ngắt - Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming) - Được chế tạo bằng công nghệ CMOS

- Tần số hoạt động tối đa 20MHz

Hình 2 : Sơ đồ chân PIC16F877A

+ PIC16F877A có các thông số chân bao gồm :

- 2 chân GND - 2 chân 5V - 1 chân reset - 33 chân xuất nhập trong đó có 2 chân có thể sử dụng như PWM - 2 chân ngõ vào ra dao động thạch anh hoặc xung clock bên ngoài Để PIC hoạt động ta cần cấp nguồn cho PIC Ngoài ra có thể thêm vào bộ dao động thạch anh.

Hình 3 : PIC16F877A gắn thạch anh

Module cảm biến INA219

Cảm biến dòng điện điện áp DC INA219 (DC Voltage Current Sensor) được sử dụng để đo dòng điện và điện áp DC của các thiết bị sử dụng công suất nhỏ với độ chính xác cao, sai số chỉ 1%,tích hợp bộ ADC 12bit, độ nhiễu thấp cảm biến sử dụng giao tiếp I2C kết nối và lập trình với vi điều khiển, khả năng đo tối đa của cảm biến là 26VDC / 3.2A, thích hợp với các ứng dụng đo điện áp, dòng điện, công suất tiêu thụ của các thiết bị sử dụng điện áp DC.

Hình 4 : Moudule Cảm biến INA219

- Điện áp hoạt động : 3,3~5VDC- Khoảng điện áp DC đo được : 0~26VDC- Khoảng dòng điện DC đo được : 0~3.2A- Khoảng công suất DC đo được : 0~83.2W

- Chuẩn giao tiếp : TWI/I2C - Độ phân giải: ± 0.8mA - Địa chỉ I2C: 0x40 (mặc định), 0x41, 0x44, 0x45 - Độ phân giải 12 bit

- Thời gian chuyển mạch: 532às - Nhiệt độ hoạt động: -25 ~ 85 0 C

Hình 5 : Sơ đồ chân cảm biến INA219

Tên chân Chân số Input/Output Chức năng

IN+ 1 Analog Input Đọc giá trị điện áp

IN- 2 Analog Input Đọc giá trị dòng điện

Vs 4 Analog Nguồn cung cấp, từ 3-5,5V

SCL 5 Digital Input Truyền tải xung clock để dịch chuyển dữ liệu SDA 6 Digital Input/Output Truyền dữ liệu tại xung clock để dịch chuyển dữ liệu

A0 7 Digital Input Kết nối theo chuẩn I2C

A1 8 Digital Input Kết nối theo chuẩn I2C

Bảng 1 : Các chân của cảm biến INA219

Bảng 2 : Địa chỉ của cảm biến INA219

2.2.1 Nguyên lí hoạt động cảm biến INA219 :

Hình 6 : Mô tả tính năng của cảm biến INA219

Hình 7 : Giản đồ thời gian ghi cảm biến

Hình 8 : Giản đồ thời gian đọc cảm biến

IC ổn áp LM7805

IC LM7805 là loại IC cung cấp điện áp ngõ ra với giá trị ổn định mặc dù trong lúc đó điện áp ngõ vào IC thay đổi liên tục và thiếu sự ổn định

IC LM7805 được phân loại là một loại IC điều chế điện áp DC dương vì ngõ ra của IC này luôn có mức điện áp dương so với mức điện áp nối mass(GND).

Hình 9 : IC ổn áp LM7805 +Thông số kỹ thuật :

- Điện áp vào lớn nhất : 20V - Điện áp vào nhỏ nhất : 7V - Kiểu đóng vỏ : TO-220 - Nhiệt độ hoạt động lớn nhất : 85°C - Nhiệt độ hoạt động nhỏ nhất : -20°C - Dòng cực đại có thể duy trì : 1A - Điện áp ổn định: 5V

- Công suất tiêu tán cực đại nếu không dùng tản nhiệt : 2W - Công suất tiêu tán nếu dùng tản nhiệt đủ lớn : 15W

Hình 10 : Sơ đồ chân IC7805

- Chân 1 là chân Iput dùng để cung cấp điện áp DC đầu vào, điện áp cung cấp từ 7V đến 20v

- Chân thứ 2 là chân Ground để đấu với mass (chân GND) - Chân thứ 3 chân Output là chân ngõ ra cung cấp điện áp ổn định là 5V

IC LM7805 là IC với một điện áp đầu ra cố định là 5V, yêu cầu điện áp đầu vào tối thiểu là 7V IC LM7805 có thế cung cấp điện áp đầu ra với dòng điện lên đến 1A

Màn hình LCD1602

- Màn hình LCD 16x2 là một linh kiện được sử dụng rộng rãi trong các dự án điện tử và lập trình Nó được sử dụng để hiển thị trạng thái hoặc các thông số

- Màn hình LCD1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án

- Điện áp hoạt động là 5 V - Kích thước: 80 x 36 x 12.5 mm - Chữ đen, nền xanh lá

- Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.

- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện

- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn

- Có thể được điều khiển với 6 dây tín hiệu - Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật

Hình 12 : Sơ đồ chân LCD

Chân Ký Hiệu Mô tả

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển.

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển.

3 VEE Điều chỉnh độ tương phản của LCD.

4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1”

(VCC) để chọn thanh ghi.

Ở trạng thái logic "0", tín hiệu từ DB0 đến DB7 sẽ được truyền tới thanh ghi lệnh (IR) của LCD để ghi dữ liệu Khi logic ở trạng thái "1", tín hiệu từ DB0 đến DB7 sẽ được truyền đến thanh ghi dữ liệu (DR) trong LCD.

5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát.

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU.

Có 2 chế độ sử dụng 8 đường bus này : + Chế độ 8 bit : Dữ liệu được truyền trên cả

8 đường, với bit MSB là bit DB7.

+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7.

15 - Nguồn dương cho đèn nền.

Bảng 3 : Chức năng các chân LCD

- Còi buzzer có kích thước nhỏ gọn giúp trong việc lắp đặt cũng như sử dụng - Mục đích: Tạo âm thanh cảnh báo

- Điện áp đầu vào: 5V - Dòng hoạt động: 12mA - Tần số cộng hưởng: 2300Hz ± 500Hz - Biên độ âm thanh: >80 dB

- Nhiệt độ hoạt động: -20 °C đến +70 °C - Kích thước: Đường kính 12mm, cao 9,7mm

2.6 Giao tiếp I2C : 2.6.1 Giới thiệu về giao tiếp I2C : Ngày nay trong các hệ thống thông tin điện tử hiện đại, rất nhiều ICs hay thiết bị ngoại vi cần phải giao tiếp với các ICs hay thiết bị ngoại vi khác - giao tiếp với thế giới bên ngoài Với mục tiêu đạt đƣợc hiệu quả cho phần cứng tốt nhất với mạch điện đơn giản, Philips đã phát triển một chuẩn giao tiếp nối hai dây đƣợc gọi là I2C I2C là tên viết tắt của cụm từ Inter Intergrated Circuit - bus giao tiếp giữa các IC với nhau I2C mặc dù được phát triển bởi hãng Philips nhưng nó được rất nhiều nhà sản xuất trên thế giới sử dụng I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển Có thể kể ra một vài tên tuổi ngoài hãng như Texas Intrusment (TI), Maxim dallas, Analog device, National Semiconductor… Bus I2C được dùng làm bus 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 8051, PIC, AVR, ARM, chip nhớ như Ram tĩnh (Static ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự (DAC), IC điều khiển LCD, LED, …

Hình 14 : BUS I2C và các thiết bị ngoại vi

2.6.2 Đặc điểm về giao tiếp I2C : Một giao tiếp I2C gồm có hai dây : serial data (SDA) và serial clock (SCL) SDA là đường truyền dữ liệu theo hai hướng, còn SCL là đường truyền xung đồng hồ và chỉ theo một hướng Khi một thiết bị ngoại vi kết nối vào đường I2C thì chân SDA của nó sẽ được nối với dây SDA của bus, chân SCL được nối với dây SCl.

Mỗi dây SDA hay SCL đều đƣợc nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (full-up resistor) Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (open-drain or open- collector) Giá trị các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng từ 1kΩ đến 4,7kΩ.

Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó còn được cấu hình là thiết bị chủ (mater) hay tớ (slave) Có sự phân biệt đó bởi trên một bus I2C thì quyền điều khiển thuộc về thiết bị chủ (mater) Thiết bị chủ đóng vai trò tạo xung đồng hồ (clock) cho toàn hệ thống Khi giữa hai thiết bị chủ/tớ giao tiếp thì thiết bị chủ có vai trò tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp Thiết bị chủ đóng vai trò chủ động, còn thiết bị tớ đóng vai trò bị động trong việc giao tiếp.

Hình 15 : Truyền nhận dữ liệu giữa chủ/tớ

Với dữ liệu truyền trên bus I2C, một bus I2C chuẩn truyền 8 - bít dữ liệu có hướng trên đường truyền với tốc độ 100 kbit/s - chế độ chuẩn (standardmode) Tốc độ truyền có thể lên tới 400 kbit/s - chế độ nhanh (Fast-mode) và cao nhất 3,4 Mbit/s - chế độ cao tốc (high speed mode).

+ Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau :

Giao thức I2C hoạt động theo chế độ chủ/tớ, với các cấu hình bao gồm một chủ - một tớ, một chủ - nhiều tớ và nhiều chủ - nhiều tớ Trong trường hợp thiết bị A cần gửi dữ liệu đến thiết bị B, quá trình sẽ bắt đầu khi thiết bị chủ (A) gửi lệnh khởi động, tiếp theo là địa chỉ của thiết bị tớ (B) Thiết bị tớ sẽ trả lời bằng lệnh xác nhận, sau đó thiết bị chủ có thể gửi dữ liệu cần thiết.

- Thiết bị A (chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ

- Thiết bị A gửi dữ liệu tới thiết bị B - Thiết bị A kết thúc quá trình truyền dữ liệu Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên chỉ khác là A sẽ nhận dữ liệu từ B Trong giao tiếp này A là chủ còn B vẫn là tớ

2.6.3 Điều kiện Start và Stop :

Start and Stop là những điều kiện bắt buộc phải có khi một thiết bị chủ muốn thiết lập giao tiếp với một thiết bị nào đó trong giao tiếp I2C Start là điều kiện khởi đầu báo hiệu bắt đầu giao tiếp, còn Stop báo hiệu kết thúc một giao tiếp Hình dưới đây mô tả điều kiện Start và Stop.

Ban đầu khi chưa thực hiện quá trình giao tiếp,c ả hai đường SDA và SCL đều ở mức cao (SDA=SCL=HIGH) Lúc này bus I2C được coi là dỗi (bus free), sẵn sàng cho một giao tiếp Hai điều kiện Start, Stop không thể thiếu trong việc giao tiếp giữa các thiết bị I2C với nhau.

Hình 16 : Điều kiện Start và Stop Điều kiện Start : Một sự chuyển đổi trạng thái từ cao xuống thấp trên đường SDA trong khi đường SCl đang ở mức cao (cao = 1,thấp = 0) báo Điều kiện Stop : Một sự chuyển đổi trạng thái từ mức thấp nên cao trên đường SDA trong khi đường SCL ở mức cao

Giao tiếp I2C

ngoại vi cần phải giao tiếp với các ICs hay thiết bị ngoại vi khác - giao tiếp với thế giới bên ngoài Với mục tiêu đạt đƣợc hiệu quả cho phần cứng tốt nhất với mạch điện đơn giản, Philips đã phát triển một chuẩn giao tiếp nối hai dây đƣợc gọi là I2C I2C là tên viết tắt của cụm từ Inter Intergrated Circuit - bus giao tiếp giữa các IC với nhau I2C mặc dù được phát triển bởi hãng Philips nhưng nó được rất nhiều nhà sản xuất trên thế giới sử dụng I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển Có thể kể ra một vài tên tuổi ngoài hãng như Texas Intrusment (TI), Maxim dallas, Analog device, National Semiconductor… Bus I2C được dùng làm bus 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 8051, PIC, AVR, ARM, chip nhớ như Ram tĩnh (Static ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự (DAC), IC điều khiển LCD, LED, …

Hình 14 : BUS I2C và các thiết bị ngoại vi

2.6.2 Đặc điểm về giao tiếp I2C : Một giao tiếp I2C gồm có hai dây : serial data (SDA) và serial clock (SCL) SDA là đường truyền dữ liệu theo hai hướng, còn SCL là đường truyền xung đồng hồ và chỉ theo một hướng Khi một thiết bị ngoại vi kết nối vào đường I2C thì chân SDA của nó sẽ được nối với dây SDA của bus, chân SCL được nối với dây SCl.

Mỗi dây SDA hay SCL đều đƣợc nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (full-up resistor) Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (open-drain or open- collector) Giá trị các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng từ 1kΩ đến 4,7kΩ.

Trong hệ thống bus I2C, mỗi thiết bị được xác định bởi một địa chỉ duy nhất và được cấu hình làm thiết bị chủ (master) hoặc tớ (slave) Thiết bị chủ đóng vai trò tạo xung nhịp (clock) cho hệ thống, quản lý địa chỉ của thiết bị tớ và chủ động trong quá trình giao tiếp; trong khi đó, thiết bị tớ chỉ nhận tín hiệu đồng hồ và địa chỉ từ thiết bị chủ để đóng vai trò thụ động trong giao tiếp.

Hình 15 : Truyền nhận dữ liệu giữa chủ/tớ

Với dữ liệu truyền trên bus I2C, một bus I2C chuẩn truyền 8 - bít dữ liệu có hướng trên đường truyền với tốc độ 100 kbit/s - chế độ chuẩn (standardmode) Tốc độ truyền có thể lên tới 400 kbit/s - chế độ nhanh (Fast-mode) và cao nhất 3,4 Mbit/s - chế độ cao tốc (high speed mode).

+ Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau :

- Một chủ - một tớ (one master – one slave) - Một chủ - nhiều tớ (one master – mutil slave) - Nhiều chủ - nhiều tớ (mutil master – mutil slave) Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ Giả thiết 1 thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau :

- Thiết bị A (chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ

- Thiết bị A gửi dữ liệu tới thiết bị B - Thiết bị A kết thúc quá trình truyền dữ liệu Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên chỉ khác là A sẽ nhận dữ liệu từ B Trong giao tiếp này A là chủ còn B vẫn là tớ

2.6.3 Điều kiện Start và Stop :

Start and Stop là những điều kiện bắt buộc phải có khi một thiết bị chủ muốn thiết lập giao tiếp với một thiết bị nào đó trong giao tiếp I2C Start là điều kiện khởi đầu báo hiệu bắt đầu giao tiếp, còn Stop báo hiệu kết thúc một giao tiếp Hình dưới đây mô tả điều kiện Start và Stop.

Ban đầu khi chưa thực hiện quá trình giao tiếp,c ả hai đường SDA và SCL đều ở mức cao (SDA=SCL=HIGH) Lúc này bus I2C được coi là dỗi (bus free), sẵn sàng cho một giao tiếp Hai điều kiện Start, Stop không thể thiếu trong việc giao tiếp giữa các thiết bị I2C với nhau.

Điều kiện bắt đầu: Sự chuyển đổi trạng thái từ cao xuống thấp trên tín hiệu dữ liệu tuần tự (SDA) và tín hiệu xung nhịp đồng hồ (SCL) ở mức cao (cao = 1, thấp = 0) Điều kiện dừng: Sự chuyển đổi trạng thái từ mức thấp nên cao trên SDA và SCL ở mức cao.

Cả hai điều kiện Start và Stop đều được tạo ra bởi thiết bị chủ Sau tín hiệu Start, bus I2C coi như đang trong trạng thái làm việc (busy) Bus I2C sẽ rỗi, sẵn sàng cho một giao tiếp mới sau tín hiệu Stop từ thiết bị chủ

Khi bus I2C đang bận thực hiện một giao tiếp, nếu xuất hiện tín hiệu Start lặp lại thay vì tín hiệu Stop, bus I2C sẽ tiếp tục duy trì trạng thái bận Tín hiệu Start và tín hiệu Start lặp lại đều có vai trò khởi tạo giao tiếp, dùng để bắt đầu một quá trình truyền dữ liệu mới.

2.6.4 Định dạng dữ liệu truyền I2C : Dữ liệu được truyền trên bus I2C theo từng bit, bit dữ liệu được truyền đi tại mỗi sườn dương của xung đồng hồ trên dây SCL, quá trình thay đổi bit dữ liệu xảy ra khi SCl đang ở mức thấp.

Hình 17 : Quá trình truyền 1 bit dữ liệu

Mỗi byte dữ liệu được truyền có độ dài là 8 bits Số lượng byte được truyền trong một lần là không hạn chế Mỗi byte được truyền đi theo sau là một bit ACK để báo hiệu đã nhận dữ liệu Bit có trọng số cao nhất (MSB) sẽ được truyền đi đầu tiên, các bit sẽ được truyền đi lần lượt Sau 8 xung clock trên dây SCl, 8 bit dữ liệu đã được truyền đi

Thiết kế sơ đồ khối và sơ đồ nguyên lý

Sơ đồ nguyên lý

- 1 IC LM7805 - 1 Tụ phân cực 100uF - 1 Tụ 104

+ Chức năng : Khối nguồn cấp nguồn 5VDC cho khối xử lí trung tâm, khối cảm biến và khối hiển thị

Tụ C1 và C2 để lọc điện áp đầu vào cấp cho chân Vi của IC 7805, tụ C1 có tác dụng cung cấp điện áp tạm thời cho chân Vi khi nguồn đột ngột bị sụt áp, tụ C2 là tụ gốm nên trở kháng lớn, C2 có tác dụng ngăn nguồn đầu vào tăng áp đột ngột làm dạng sóng điện áp đầu vào có hình răng cưa.

3.2.2 Khối xử lí trung tâm :

Hình 33 : Khối xử lí trung tâm

- 1 Pic16F877a - 1 thạch anh 20MHZ - 1 nút nhấn

- 1 trở 10k - 2 tụ 22p - 1 trở 330, 1 trở 1k4 + Chức năng : Chức năng khối xử lý trung tâm là tính toán giá trị nhận được từ cảm biến và điều khiển các thiết bị

- Nguyên lý hoạt động : Khối xử lí trung tâm nhận và hiển thị giá trị dòng điện lên

LCD Ngoài ra khối xử lí trung tâm còn nhận tín hiệu digital từ nút nhấn để cài giá trị dòng điện khối xử lí sẽ hiển thị dòg điện được cài và cấp nguồn ngược lại cho nút nhấn.

+ Chức năng : Khối nút nhấn sử dụng nút nhấn để cài giới hạn

- Nguyên lý hoạt động : Cài một giá trị giới hạn dòng điện, điện áp đo được, khi dòng điện vượt quá giới hạn sẽ kích khối cảnh báo goạt động

+ Chức năng : Khối hiển thị hiển thị giá trị dòng điện, điện áp các thông số cài đặt dòng điện

- Nguyên lý hoạt động : Màn hình LCD sử sụng chế độ 4 bit nhận giá trị tín hiệu Digital từ khối xử lý trung tâm để hiển thị giá trị lên màn hình

- Nguyên lý hoạt động : Cài sẵn cho thiết bị một giới hạn cho phép đo được Khi giá trị dòng điện đo được vượt quá giới hạn cho phép, bộ xử lý trung tâm sẽ suất tín hiệu làm loa bắt đầu kêu.

+ Chức năng : Khối cảm biến: đọc giá trị từ thiết bị DC, thông qua giao tiếp I2C gửi tín hiệu số xuống cho khối xử lí

Sơ đồ mạch in

Hình 38 : Sơ đồ mạch in

Hình 39 : Sơ đồ mạch in 3D

3.3.1 Sơ đồ mạch mô phỏng :

Hình 40 : Sơ đồ mạch mô phỏng

Chương trình điều khiển

Lưu đồ giải thuật

4.1.2 Chương trình con đo điện áp :

4.1.3 Chương trình con nút nhấn chuyển giao diện :

4.1.4 Chương trình con giao diện hiển thị :

4.1.5 Chương trình con cảnh báo :

4.1.6 Chương trình con nút nhấn cài đặt giá trị ngưỡng :

4.1.7 Chương trình con đo dòng điện :

4.1.8 Chương trình con ngắt Timer 1 :

Chương trình điều khiển

#use i2c(Master, sda=PIN_C4, scl=PIN_C3)

#define LCD_RS_PIN PIN_D0

#define LCD_RW_PIN PIN_D1

#define LCD_ENABLE_PIN PIN_D2

#byte SSPBUF =0x90 unsigned int8 V,K; int8 address = 0x90; void write_data(){ i2c_start(); i2c_write(SSPBUF); i2c_write(0x80); i2c_write(0x83); i2c_stop(); i2c_start(); //write address Point register i2c_write(address); //First byte address of device last bit R/W i2c_write(0x00); //Second byte point to convertion register i2c_stop(); delay_ms(500);

} void read_data(){ i2c_start(); i2c_write(address);//address of device R/W i2c_write(0x00);// 0x00 i2c_start(); i2c_write(0x91); //0x91 K=i2c_read();

} void main() { lcd_init(); // Khoi tao LCD while(TRUE) {int A;

A=(K+V)/100; read_data(); delay_ms(200); write_data(); lcd_gotoxy(1,1); printf(lcd_putc,"V= %u mV"V); lcd_gotoxy(2,2); printf(lcd_putc,"A= %u mA"A);

Kết quả đạt được và hướng phát triển

Kết quả đạt được

- Đọc được dòng điện và điện áp, hiển thị lên LCD- Cài được dòng điện định mức khi quá mức đo có thông báo hiển thị

Hạn chế

- Vẽ mạch chưa tính toán kĩ dẫn đến in mạch không được đẹp- Chưa sử dụng được hết các chức năng của cảm biến

Hướng phát triển

- Dùng làm thiết bị cảnh báo khi quá dòng hay điều khiển thiết bị- Sử dụng truyền thông giao tiếp để luôn báo kết quả về máy cho người quản lý giám sát

Ngày đăng: 15/07/2024, 03:49

HÌNH ẢNH LIÊN QUAN

Hình 1 : PIC16F877A + Thông số kỹ thuật : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 1 PIC16F877A + Thông số kỹ thuật : (Trang 11)
Hình 2 : Sơ đồ chân PIC16F877A + PIC16F877A có các thông số chân bao gồm : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 2 Sơ đồ chân PIC16F877A + PIC16F877A có các thông số chân bao gồm : (Trang 12)
Hình 3 : PIC16F877A gắn thạch anh 2.2 Module cảm biến INA219 : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 3 PIC16F877A gắn thạch anh 2.2 Module cảm biến INA219 : (Trang 13)
Hình 4 : Moudule Cảm biến INA219 + Thông số kỹ thuật : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 4 Moudule Cảm biến INA219 + Thông số kỹ thuật : (Trang 13)
Hình 5 : Sơ đồ chân cảm biến INA219 + Chức năng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 5 Sơ đồ chân cảm biến INA219 + Chức năng : (Trang 14)
Bảng 2 : Địa chỉ của cảm biến INA219 2.2.1 Nguyên lí hoạt động cảm biến INA219 : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Bảng 2 Địa chỉ của cảm biến INA219 2.2.1 Nguyên lí hoạt động cảm biến INA219 : (Trang 15)
Hình 6 : Mô tả tính năng của cảm biến INA219 - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 6 Mô tả tính năng của cảm biến INA219 (Trang 15)
Hình 8 : Giản đồ thời gian đọc cảm biến 2.3 IC ổn áp LM7805 : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 8 Giản đồ thời gian đọc cảm biến 2.3 IC ổn áp LM7805 : (Trang 16)
Hình 10 : Sơ đồ chân IC7805 - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 10 Sơ đồ chân IC7805 (Trang 17)
Hình 12 : Sơ đồ chân LCD + Chức năng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 12 Sơ đồ chân LCD + Chức năng : (Trang 18)
Bảng 3 : Chức năng các chân LCD 2.5 Còi buzzer : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Bảng 3 Chức năng các chân LCD 2.5 Còi buzzer : (Trang 19)
Hình 14 : BUS I2C và các thiết bị ngoại vi - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 14 BUS I2C và các thiết bị ngoại vi (Trang 20)
Hình 16 : Điều kiện Start và Stop - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 16 Điều kiện Start và Stop (Trang 22)
Hình 17 : Quá trình truyền 1 bit dữ liệu - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 17 Quá trình truyền 1 bit dữ liệu (Trang 23)
Hình 18 : Dữ liệu truyền trên bus I2C - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 18 Dữ liệu truyền trên bus I2C (Trang 23)
Hình 19 : Bit ACK trên bus I2C - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 19 Bit ACK trên bus I2C (Trang 24)
Hình 21 : Cấu trúc byte dữ liệu đầu tiên - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 21 Cấu trúc byte dữ liệu đầu tiên (Trang 25)
Hình 22 : Ghi dữ liệu từ chủ đến tớ - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 22 Ghi dữ liệu từ chủ đến tớ (Trang 26)
Hình 24 : Quá trình ghi nhiều byte dữ liệu - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 24 Quá trình ghi nhiều byte dữ liệu (Trang 27)
Hình 26 : Quá trình đọc 1 byte dữ liệu - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 26 Quá trình đọc 1 byte dữ liệu (Trang 28)
Hình 31 : Sơ đồ khối + Phân tích sơ đồ khối : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 31 Sơ đồ khối + Phân tích sơ đồ khối : (Trang 30)
Hình 32  : Khối Nguồn + Linh kiện sử dụng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 32 : Khối Nguồn + Linh kiện sử dụng : (Trang 31)
Hình 33 : Khối xử lí trung tâm + Linh kiện sử dụng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 33 Khối xử lí trung tâm + Linh kiện sử dụng : (Trang 32)
Hình 34 : Khối nút nhấn + Linh kiện sử dụng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 34 Khối nút nhấn + Linh kiện sử dụng : (Trang 33)
Hình 35 : Khối hiển thị - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 35 Khối hiển thị (Trang 33)
Hình 36 :  Khối cảnh báo + Linh kiện sử dụng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 36 Khối cảnh báo + Linh kiện sử dụng : (Trang 34)
Hình 37 : Khối cảm biến + Linh kiện sử dụng : - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 37 Khối cảm biến + Linh kiện sử dụng : (Trang 35)
Hình 39 :  Sơ đồ mạch in 3D - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 39 Sơ đồ mạch in 3D (Trang 36)
Hình 38 :  Sơ đồ mạch in - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 38 Sơ đồ mạch in (Trang 36)
Hình 40 :  Sơ đồ mạch mô phỏng - Đọ dòng điện DC sử dụng cảm biến INA219 bằng PIC16F887A
Hình 40 Sơ đồ mạch mô phỏng (Trang 37)
w