Mục lục:
- Bước 1: Đấu dây MCP23008
- Bước 2: Xây dựng bảng
- Bước 3: Sử dụng Mô-đun thư viện
- Bước 4: Chương trình Kitt Car
- Bước 5: 7 LED phân đoạn
- Bước 6: Kết luận
Video: NODEMCU LUA ESP8266 Với IC mở rộng cổng 8 bit MCP23008: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
MCP23008 là Bộ mở rộng I / O 8-Bit với Giao diện nối tiếp và hoạt động từ 1,8 đến 5,5 volt, vì vậy rất lý tưởng cho ESP8266, Arduino, Raspberry Pi, PIC Chips và hơn thế nữa.
Nếu bạn đã xem mục Có thể hướng dẫn khác của tôi trên MCP23017, bạn có thể tự hỏi tại sao tôi cũng làm một sản phẩm cho MCP23008, vì nó thực sự là một phiên bản nhỏ hơn của cùng một thứ.
Lý do là các thanh ghi của nó khác nhau cả về tên và số và tôi muốn chỉ cách sử dụng một mô-đun thư viện được tạo sẵn. Không phải ai cũng thành thạo khi sử dụng lua NodeMCU, vì vậy tôi muốn trình bày khía cạnh lập trình này cũng như cách sử dụng MCP23008.
Thư viện và các chương trình có sẵn tại github.com.
Biểu dữ liệu cho MCP23008 có sẵn từ Microchip.
Bước 1: Đấu dây MCP23008
IC MCP23008 có bố cục đơn giản và việc xây dựng một bo mạch thực sự rất dễ dàng đối với nó. Bạn cũng có thể thiết lập mạch trên bảng mạch bánh mì.
Ghim kết nối trên bảng của tôi
- Ghim 18 (VDD) vào 3 đấu 3
- Pin 9 (VSS) vào GND
- Pin 7 (NC) sang GND (Không cần thiết)
- Pin 1 (SCL) vào ESP GPIO2
- Chân 2 (SDA) vào ESP GPIO0
- Pin 5 (A0) vào GND
- Pin 4 (A1) vào GND
- Pin 3 (A2) vào GND
- Pin 6 (ĐẶT LẠI) thành 3 đấu 3
Kết nối các chân được đọc với Gnd trên Cổng A (chân 10 - 17)
Lưu ý: ở đây tất cả các chân địa chỉ được kết nối với Gnd để sử dụng MCP23008 tại địa chỉ 0x20 trên bus địa chỉ I2C.
Nếu bạn đang sử dụng địa chỉ 0x21 thì A0 sẽ được kết nối với 3.3V, với A1 & A2 được kết nối với Gnd.
Tương tự nếu sử dụng địa chỉ 0x22 thì A1 sẽ phải được kết nối với 3.3V với A0 và A2 được kết nối với Gnd.
Vân vân…
Bước 2: Xây dựng bảng
Tôi đã sử dụng bảng mạch Vero 25 mm x 64 mm (9 hàng x 25 lỗ) để xây dựng bảng của mình. Nó hơi chặt chẽ, nhưng vì hầu hết các chân bạn cần đều nằm ở hai bên của IC, nó đủ cho những gì nó phải làm.
Tôi đã sử dụng 8 chân và 8 ổ cắm tiêu đề cho cổng A để tôi có thể cắm các mô-đun khác nhau của mình cũng như các hệ thống dây điện khác cho các dự án khác nhau. Tôi đã thêm các chân Gnd và 3.3V bổ sung vì tôi thấy luôn thiếu các chân này khi kết nối các mô-đun với nhau.
Bước 3: Sử dụng Mô-đun thư viện
Các mô-đun thư viện thường chứa một lựa chọn các quy trình con, các hàm và các biến có thể được truy cập bởi một chương trình khác. Chương trình tự nó không chạy, nhưng các chức năng của nó có thể được truy cập bởi chương trình đang gọi. Nó có nghĩa là bạn có thể có các thói quen con của mình trong thư viện và gọi chúng lên bất cứ khi nào bạn cần, tạo một chương trình gọi điện nhỏ. Nó trở nên có giá trị hơn nếu bạn có nhiều chương trình khác nhau sử dụng cùng các quy trình con, bạn không cần phải bao gồm các quy trình con trong mọi chương trình.
Lưu ý: chương trình mcp23008.lua cần được tải vào bộ nhớ ESP8266 giống như các chương trình khác.
Tôi đã bao gồm các chương trình github.com ở đây cũng như một chương trình đơn giản (test.lua) để cho thấy rằng thư viện đang hoạt động.
Có ít nhất 2 cách để đưa thư viện vào chương trình của bạn.
yêu cầu ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
hoặc
mcp = request ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Cả hai cách trên đều làm điều tương tự, nhưng phương pháp thứ hai cho phép bạn sử dụng biến của riêng mình thay vì tên chương trình.
Bước 4: Chương trình Kitt Car
Tôi đã bao gồm chương trình KittCar23008.lua và KittLib.lua sử dụng thư viện để chỉ ra sự khác biệt trong cách viết chương trình theo cách này. Cả hai chương trình đều làm điều tương tự.
8 LED phích cắm có sẵn từ Ebay dưới dạng một bộ và được gọi là Bộ tự làm đèn LED nước chảy 8 kênh, 99p từ Trung Quốc. Bạn phải tự mình hàn nó.
Lưu ý: Nếu bạn gặp sự cố khi cố gắng chạy chương trình KittLib.lua, hãy thử kết nối chân ĐẶT LẠI MCP23008 với Gnd trong giây lát. Tôi biết điều này sẽ gây ra ngắn mạch trực tiếp (vì nó được kết nối với 3.3V) và bạn phải đặt lại mọi thứ khác. Nó cũng hoạt động bằng cách kết nối với Gnd thông qua một điện trở 10 ohm, có lẽ là một cách tốt hơn để làm điều đó.
Tôi cũng thấy rằng KittLib.lua sẽ chạy mà không có vấn đề gì sau khi chạy test.lua (Đừng hỏi tôi tại sao?)
Tôi đã thử nhiều cách khác nhau để giải quyết sự cố chương trình KittLib.lua, nhưng cho đến nay không thể tìm thấy bất kỳ lý do hợp lý nào về việc tại sao nó bị treo. Có ai có bất kỳ ý tưởng?
Tôi đã không tự viết tất cả các chương trình này, vì vậy tôi không thể nói tại sao có vấn đề, mặc dù sau khi xem xét mã hóa, dường như không có bất kỳ điều gì rõ ràng là sai.
Bước 5: 7 LED phân đoạn
Như với chương trình KittCar.lua ở trên, tôi đã bao gồm một chương trình độc lập và phụ thuộc vào thư viện để điều khiển màn hình LED 7 đoạn.
Một lần nữa, cả hai chương trình đều làm điều tương tự, nhưng trình bày cách sử dụng mô-đun thư viện do chính bạn hoặc người khác viết.
Bước 6: Kết luận
Tôi đã cố gắng chứng minh cách sử dụng các mô-đun mã trong môi trường Lua và áp dụng nó cho một vi mạch cụ thể cùng một lúc.
Mặc dù tôi đã gặp sự cố khi thực hiện việc này, nhưng tôi nghĩ rằng có đủ để cho thấy các mô-đun này hoạt động như thế nào cũng như chứng minh một ứng dụng trong cuộc sống thực.
Đề xuất:
Hố lửa với ngọn lửa phản ứng âm thanh, loa Bluetooth và đèn LED hoạt hình: 7 bước (có hình ảnh)
Hố lửa với Ngọn lửa phản ứng âm thanh, Loa Bluetooth và Đèn LED hoạt hình: Không có gì nói rằng mùa hè giống như thư giãn bên đống lửa. Nhưng bạn có biết điều gì tốt hơn lửa không? Lửa VÀ Âm nhạc! Nhưng chúng ta có thể tiến thêm một bước, không, hai bước nữa … Lửa, Âm nhạc, đèn LED, Ngọn lửa phản ứng âm thanh! Nghe có vẻ đầy tham vọng, nhưng Ins này
Sử dụng phần mở rộng lồng ngực của Hope để tìm Công việc chưa hoàn chỉnh của Sắc lệnh đền thờ trong cây gia đình của bạn về Tìm kiếm gia đình: 11 bước
Sử dụng phần mở rộng Rương của Hope để Tìm công việc pháp lệnh đền thờ chưa hoàn chỉnh trong cây gia đình của bạn trên Tìm kiếm gia đình: Mục đích của tài liệu hướng dẫn này là để trình bày cách tìm kiếm gia phả của bạn trong Tìm kiếm gia đình cho tổ tiên có công việc pháp lệnh đền thờ chưa hoàn thành bằng cách sử dụng phần mở rộng Rương của hy vọng. Sử dụng Hope's Chest có thể tăng tốc đáng kể tìm kiếm của bạn cho
Ăng-ten để mở rộng phạm vi mở rộng cổng: 6 bước (có hình ảnh)
Ăng-ten để mở rộng phạm vi mở rộng cổng: Khi tuyết rơi thực sự sâu trên Núi Hood, sẽ có rất nhiều trò chơi thú vị khi trượt tuyết, đi xe trượt tuyết, xây pháo đài bằng tuyết và ném những đứa trẻ xuống boong vào lớp bột sâu. Nhưng những thứ bóng bẩy không thú vị cho lắm khi chúng tôi cố gắng quay lại đường cao tốc và mở cổng để lấy
Sửa bảng công tắc bị hỏng thành công tắc cảm ứng thông minh với giám sát nhiệt độ: 4 bước
Sửa bảng công tắc bị hỏng thành công tắc cảm ứng thông minh có giám sát nhiệt độ: Tôi biết tất cả các bạn đều gặp phải vấn đề này ít nhất một lần trong đời, bảng công tắc bị hỏng do sử dụng liên tục. rất nhiều thời gian hoặc lò xo bên trong công tắc bị dịch chuyển hoặc m
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: MCP23017 là một vi mạch tương đối dễ tạo bảng 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ất cả cùng nhau. Có 2 chân trên IC này không được sử dụng vì nó