Mục lục:

PCF8591 (i2c Analog I / O Expander) Dễ dàng sử dụng nhanh chóng: 9 bước
PCF8591 (i2c Analog I / O Expander) Dễ dàng sử dụng nhanh chóng: 9 bước

Video: PCF8591 (i2c Analog I / O Expander) Dễ dàng sử dụng nhanh chóng: 9 bước

Video: PCF8591 (i2c Analog I / O Expander) Dễ dàng sử dụng nhanh chóng: 9 bước
Video: Raspberry Pi Analog to Digital Converter (ADC) Microchip MCP3002 2024, Tháng bảy
Anonim
PCF8591 (i2c Analog I / O Expander) Sử dụng dễ dàng nhanh chóng
PCF8591 (i2c Analog I / O Expander) Sử dụng dễ dàng nhanh chóng

Thư viện sử dụng IC i2c pcf8591 với arduino và esp8266.

IC này có thể điều khiển (cho đến 4) đầu vào tương tự và / hoặc 1 đầu ra tương tự như đo điện áp, đọc giá trị nhiệt điện trở hoặc làm mờ một đèn LED.

Có thể đọc giá trị tương tự và ghi giá trị tương tự chỉ với 2 dây (hoàn hảo cho ESP-01).

Tôi cố gắng đơn giản hóa việc sử dụng vi mạch này, với một bộ hoạt động tối thiểu.

Bạn có thể tìm thấy phiên bản cập nhật trên trang web của tôi

Bước 1: Cách hoạt động của I2c

Cách hoạt động của I2c
Cách hoạt động của I2c

I2C hoạt động với hai dây, SDA (đường dữ liệu) và SCL (dây đồng hồ).

Cả hai dòng này đều là cống hở, nhưng được kéo lên bằng điện trở.

Thông thường có một chủ và một hoặc nhiều nô lệ trên đường dây, mặc dù có thể có nhiều chủ, nhưng chúng ta sẽ nói về điều đó sau.

Cả master và slave đều có thể truyền hoặc nhận dữ liệu, do đó, một thiết bị có thể ở một trong bốn trạng thái sau: master truyền, master nhận, slave truyền, slave nhận.

Bước 2:

Bạn có thể tìm thấy thư viện của tôi ở đây.

Tải về.

Nhấp vào nút DOWNLOADS ở góc trên cùng bên phải, đổi tên thư mục không nén là PCF8591.

Kiểm tra xem thư mục PCF8591 có chứa PCF8591.cpp và PCF8591.h hay không.

Đặt thư mục thư viện PCF8591 thư mục / thư viện / thư mục của bạn.

Bạn có thể cần tạo thư mục con thư viện nếu thư mục đầu tiên của bạn.

Khởi động lại IDE.

Bước 3: Cách sử dụng

Khối mã lệnh: bạn phải dán địa chỉ của i2c (để kiểm tra địa chỉ, hãy sử dụng hướng dẫn này I2cScanner)

PCF8591 (địa chỉ uint8_t);

cho esp8266 nếu bạn muốn chỉ định chân SDA e SCL, hãy sử dụng cái này:

PCF8591 (địa chỉ uint8_t, uint8_t sda, uint8_t scl);

Bước 4: Đọc giá trị

Đọc giá trị
Đọc giá trị

IC như bạn thấy trong hình có 4 đầu vào tương tự và 1 đầu ra tương tự.

Vì vậy, để đọc tất cả đầu vào tương tự trong một lần truyền bạn có thể làm (giá trị từ 0 đến 255):

PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();

Serial.print (ai.ain0); Serial.print ("-"); Serial.print (ai.ain1); Serial.print ("-"); Serial.print (ai.ain2); Serial.print ("-"); Serial.println (ai.ain3);

nếu bạn muốn đọc một đầu vào analog hoặc một kênh:

int ana = pcf8591.analogRead (AIN0); // đọc tương tự 0

Bước 5: Đọc Vale từ kênh

Đọc Vale từ kênh
Đọc Vale từ kênh

IC này có nhiều kiểu đọc và bạn có thể sử dụng đầu vào Analog hoặc kênh tương tự (khi bạn sử dụng đầu vào analog đọc đơn và kênh như trong hình).

Ví dụ để đọc giá trị của kênh 0 trong Hai đầu vào vi phân, bạn phải làm:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // đọc tương tự 0

Bước 6: Ghi giá trị

Nếu bạn muốn viết một giá trị tương tự, bạn phải làm (giá trị từ 0 đến 255):

pcf8591.analogWrite (128);

Bước 7: Các tính năng bổ sung

Tính năng bổ sung là đọc điện áp ghi: Để tính toán điện áp, bạn phải chuyển một số tham số:

  • microcontrollerReferenceVoltage: lấy điện áp từ điện áp vi điều khiển (chỉ AVR không esp8266 cho esp 3.3v cố định)
  • referenceVoltage: nếu microcontrollerReferenceVoltage false lấy giá trị này

voidtageWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

floattageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Một ví dụ là:

pcf8591.voltageWrite (2.7); // Đầu ra 2.7Volts

chậm trễ (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Đọc điện áp từ analog 0

Serial.println (ana0V);

Bước 8: Sơ đồ kết nối ví dụ

Sơ đồ kết nối ví dụ
Sơ đồ kết nối ví dụ

Bước 9: Cảm ơn

loạt dự án i2c (Bộ sưu tập):

  • Cảm biến nhiệt độ độ ẩm
  • Bộ mở rộng tương tự
  • Bộ mở rộng kỹ thuật số
  • Màn hình LCD

Đề xuất: