I挣扎于以下场景:我有两个ESP32板(Dev 1),每个ESP32都有一个MCP23017 I2C模块连接到它。因此,我的目标是使用MCP 1上的所有16个引脚作为输出,第二个MCP上的所有其他16个引脚作为输入,并且能够“读取”这些值(高或低)--我已经在ESP和连接SDA SCL的基础上建立了连接。我已经在同一个MCP单元上使用输入和输出进行了测试,并且工作良好(在COM端口显示一个seral.println消息),但是当我想做相同的事情但连接从MCP1输出引脚1到MCP2输入引脚1时,COM端口上什么都不会发生,但是当我拔掉跳线(我用来将输入引脚连接到原板上的输出引脚)时,它就会检测电压变化并显示消息。你知道这是怎么回事吗?为什么我不能桥接从一个MCP输出到另一个MCP输入并且能够在COM端口上检测到这一点?Im使用以下代码:
#include "Adafruit_MCP23017.h"
Adafruit_MCP23017 mcp1; // Instantiate mcp module object 1, (MCP001)
int dly = 250; // 1/4 second delay
void setup() {
Wire.begin();
Serial.begin(19200);
Serial.println("MCP module 1 Ready");
mcp1.begin(); // "Start" the mcp object
mcp1.pinMode(0, OUTPUT); //set pin "0" on MCP1 as output
mcp1.pinMode(1, INPUT); //set next pin "1" on MCP1 as input
}
void loop() {
mcp1.digitalWrite(0, HIGH); // Set pin HIGH (on)
if (mcp1.digitalRead (1 == HIGH)) {
Serial.println("Continuity Detected at Pin 1 ");
}
mcp1.digitalWrite(0, LOW); // Set pin LOW (off)
delay(dly); // On for 1/4 second
}发布于 2022-03-10 16:35:42
我只需删除或注释掉第27行(mcp1.DigalW区(0,LOW);)就解决了这个问题,现在按照我想要的方式工作。谢谢你的时间和帮助。
https://stackoverflow.com/questions/71414077
复制相似问题