27 C
Hanoi
Thứ Bảy, Tháng Năm 21, 2022
Home LẬP TRÌNH VI ĐIỀU KHIỂN ARDUINO Kết nối nhiều ngoại vi với IC mở rộng chân PCF8574

Kết nối nhiều ngoại vi với IC mở rộng chân PCF8574

Giới thiệu về PCF8574 và module mở rộng chân

 PCF8574 được sử dụng để mở rộng chân giao tiếp I/O của Vi điều khiển qua giao tiếp I2C.

Một số module trên thị trường để nở rộng chân sử dụng IC PCF8574:

Module mở rộng chân PCF574

Mạch mở rộng chân I/O Expander PCF8574 được sử dụng để mở rộng chân giao tiếp I/O của Vi điều khiển qua giao tiếp I2C, mạch có khả năng mở rộng 8 I/O giúp bạn giao tiếp được với nhiều thiết bị chỉ qua một vài bước thiết đặt đơn giản, mạch tích hợp DIP Switch giúp dễ dàng thay đổi địa chỉ I2C.
IC chính: PCF8574

Điện áp hoạt động : 2.5~6VDC

Giao tiếp : I2C, thiết lập địa chỉ bằng DIP Switch.

Số chân giao tiếp mở rộng: 8 I/O.

Tần số : 100kHz maximum

Kích thước :37.5 x 16.7 mm

Ví dụ khác về mở rộng chân cho vi điều khiển

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển. 

Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phảii mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

Module màn hình LCD sử dụng giao tiếp I2C

Kết nối với Arduino và Node MCU với PCF8574:

Thư viện lập trình PCF8574, các bạn có thể tìm trên mạng hoặc tại đây https://github.com/skywodd/pcf8574_arduino_library

CODE tham khảo:

P0 đến P7 là 8 chân I/O của PCF8574, chúng ta dùng 8 chân này để nối đên ngoại vi.

Thêm thư viện:

#include “Arduino.h”

#include “PCF8574.h”

Các lệnh thực thi tương tự như thông thường cho Arduino:

Cấu hình địa chỉ I2C cho module với các chân A0, A1, A2 (địa chỉ mặc định là 0X20):

Ví dụ về thay đổi mức logic của chân:

#include "Arduino.h"
#include "PCF8574.h"

// Set the i2c HEX address
PCF8574 pcf8574(0x20);//Cấu hình địa chỉ I2C

void setup(){
  Serial.begin(115200);

  // Set the pinModes
  pcf8574.pinMode(P0, OUTPUT);
  pcf8574.pinMode(P1, OUTPUT);
  pcf8574.begin();
}

void loop(){
  pcf8574.digitalWrite(P0, HIGH);
  pcf8574.digitalWrite(P1, LOW);
  delay(1000);
  pcf8574.digitalWrite(P0, LOW);
  pcf8574.digitalWrite(P1, HIGH);
  delay(1000);
}

Ví dụ về đọc trạng thái của chân và xử lý các công việc:

#include "Arduino.h"
#include "PCF8574.h"

// Set i2c HEX address
PCF8574 pcf8574(0x20);//Cấu hình địa chỉ I2C
unsigned long timeElapsed;

void setup(){
  Serial.begin(9600);

  pcf8574.pinMode(P0, INPUT);
  pcf8574.pinMode(P1, OUTPUT);

  pcf8574.begin();
}

void loop(){
  uint8_t val = pcf8574.digitalRead(P1);            // Read the value of pin P0        
  if (val == HIGH)  pcf8574.digitalWrite(P0, HIGH); // If Button is Pressed
  else              pcf8574.digitalWrite(P0, LOW);  // When Button is Released
  delay(50);
}
//Tham khảo:https://www.instructables.com/id/PCF8574-GPIO-Extender-With-Arduino-and-NodeMCU/

Như vậy module mở rộng chân PCF8574 có thể mở rộng 8 I/O trên một module. Với 3 chân A0, A1, A2 chúng ta có thể cấu hình địa chỉ I2C khác nhau cho 8 module.=> Có thể mở rộng tối đa 8*8 = 64 chân I/O. Thông qua giao tiếp I2C, PCF8574 có thể giao tiếp với Arduio, ESP8266 và các vi điều khiển khác.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Lựa chọn Stack-up cho PCB

Bước 1: Chọn số lượng lớp dự định ban đầu 1 hoặc 2 lớp – Đối với mạch thử nghiệm Sử dụng 1 hoặc 2 lớp...

Via và khả năng mang dòng điện trên PCB

Via bao gồm 3 thành phần: Conductive barrel: Lỗ khoan được mạ dẫn điện Pad: Phần đồng dẫn điện ở 2 đầu của một lỗ via. Antipad:...

Các vấn đề thiết kế PCB mật độ cao HDI

PCB kết nối mật độ cao (High-density interconnect HDI) thể hiện sự tiên tiến của ngành công nghiệp bảng mạch in ngày nay, do...

Ground và vấn đề thiết kế PCB

Các nhà thiết kế layout PCB luôn quan tâm đến những câu hỏi nổi bật này, như làm thế nào để lập kế hoạch...

Recent Comments