Mục lục:

NODEMCU LUA ESP8266 Với IC mở rộng cổng 16 bit MCP23017: 6 bước (có hình ảnh)
NODEMCU LUA ESP8266 Với IC mở rộng cổng 16 bit MCP23017: 6 bước (có hình ảnh)

Video: NODEMCU LUA ESP8266 Với IC mở rộng cổng 16 bit MCP23017: 6 bước (có hình ảnh)

Video: NODEMCU LUA ESP8266 Với IC mở rộng cổng 16 bit MCP23017: 6 bước (có hình ảnh)
Video: Arduino | Lập Trình IC Mở Rộng Chân I/O PCF8574 2024, Tháng mười một
Anonim
NODEMCU LUA ESP8266 Với IC mở rộng cổng 16 bit MCP23017
NODEMCU LUA ESP8266 Với IC mở rộng cổng 16 bit MCP23017

MCP23017 là một vi mạch tương đối dễ dàng để tạo ra một bảng mạch vì nó có Cổng A và B ở hai bên của chip và các chân được xếp theo thứ tự tuần tự.

Tương tự, bus địa chỉ I2C cũng là tất cả cùng nhau.

Có 2 chân trên IC này không được sử dụng vì nó có thể so sánh với MCP23S17 sử dụng giao diện SPI nơi các chân này được sử dụng.

Một biểu dữ liệu cho vi mạch này có sẵn từ Microchip.

Bước 1: Sơ đồ mạch

Sơ đồ mạch
Sơ đồ mạch

Sơ đồ mạch cho thấy cách kết nối IC với ESP8266

LƯU Ý: IC chạy giữa 2,7 và 5,5 Volts.

Ghim kết nối trên bảng của tôi

  • Pin 9 (VDD) thành 3v3
  • Pin 18 (ĐẶT LẠI) thành 3 đấu 3
  • Pin 17 (A2) vào GND
  • Ghim 16 (A1) vào GND
  • Pin 15 (A0) vào GND
  • Pin 14 (NC) sang GND (Không cần thiết)
  • Chân 13 (SDA) vào ESP GPIO0
  • Pin 12 (SCL) vào ESP GPIO2
  • Pin 11 (NC) sang GND (Không cần thiết)
  • Ghim 10 (VSS) vào GND

Bước 2: Tạo bảng mạch chính

Lập bảng chính
Lập bảng chính

Hội đồng quản trị là thẳng về phía trước để thực hiện như đã giải thích ở trên, mọi thứ đều có bố cục đơn giản.

Bảng chính của tôi mất ít thời gian để làm và được hiển thị ở trên.

Tất nhiên bạn có thể xây dựng mạch này trên breadboard.

Bước 3: Ban bổ sung

Ban bổ sung
Ban bổ sung

Tôi đã tạo thêm một số bảng 8 bit có thể dễ dàng cắm vào các bảng dự án khác nhau.

Bo mạch đầu tiên được kết nối với màn hình LED 7 đoạn và được kết nối chân 1 với phân đoạn a, chân 2 với b, v.v. Có một điện trở nhỏ (khoảng 55 ohm) để bảo vệ các đèn LED.

Cái thứ hai là một bộ chuyển mạch 8, tất cả được nối dây với nhau và có thể được kết nối với 3.3V hoặc mặt đất. Tôi đã không bao gồm bất kỳ điện trở kéo nào vì MCP23017 có sẵn chúng.

Cái thứ ba là từ một bộ Ebay, nó bao gồm 8 đèn LED và một dãy điện trở có kết nối với Gnd. Tôi cũng có cùng một bảng nhưng đã cài đặt các đèn LED theo chiều ngược lại để nó kết nối với 3.3V hoặc 5V thay vì Gnd. Trên Ebay, chúng được biết đến như một Bộ tự làm đèn LED nước chảy 8 kênh, 99p từ Trung Quốc.

Bước 4: Lập trình

Lập trình
Lập trình

Tôi đã viết các chương trình để làm việc với ESP01 vì nó chỉ có 2 chân I / O. Tất nhiên, nó có thể được sử dụng với bất kỳ bo mạch ESP8266 nào. Các chân SDA & SCL có thể được cấp cho bất kỳ chân nào từ 1 đến 12.

Nếu sử dụng phiên bản LUA cũ hơn (ví dụ: NodeMCU 0.9.6 bản dựng 20150704 được hỗ trợ bởi Lua 5.1.4) thì I2C đã được cài đặt. Nếu không, bạn cần đảm bảo rằng mô-đun I2C được bao gồm trong bản dựng của bạn.

Tôi đã đưa vào 3 chương trình Lua đơn giản để chỉ ra cách sử dụng vi mạch.

7Segment.lua điều khiển màn hình LED và trình tự giữa các số từ 1 đến 0.

KittCar.lua lái bảng 8 LED mô phỏng chiếc xe nổi tiếng thập niên 80.

Reader.lua đọc từ Cổng B.

Bước 5: Pin nào?

Pin nào?
Pin nào?

Một chương trình bổ sung mà tôi đã nghĩ ra trong khi mày mò.

Nó sử dụng cổng B làm đầu vào và cổng A làm đầu ra. Ảnh cho thấy các công tắc DIP, nhưng bạn có thể kết nối một trong các chân cổng B với Gnd và màn hình LED sẽ hiển thị chân nào được kết nối.

LƯU Ý: Nó chỉ hoạt động với 1 pin tại một thời điểm!

Bước 6: Kết luận

Phần kết luận
Phần kết luận

Tất nhiên có sẵn các trình mở rộng I / O khác. Một số là 8 bit, 16 bit và thậm chí 24 bit! Tất cả đều hoạt động theo cách tương tự như MCP23017, nhưng vi mạch này rất rẻ so với khả năng của nó và có thể được cung cấp trong khoảng 10p mỗi vi mạch từ Trung Quốc.

Tôi đã không sử dụng tất cả các tính năng của vi mạch này vì có những ngắt cũng có sẵn có thể được đưa vào sử dụng. Đọc biểu dữ liệu cho biết tất cả về các thanh ghi khác nhau và cách sử dụng vi mạch.

Có thể có 8 trong số các thiết bị này trên cùng một bus I2C cho 128 cổng I / O tất cả được điều khiển bởi 2 đường. Hãy nghĩ về những khả năng ở đó!

Đề xuất: