首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将输出引脚从MCP23017连接到另一个MCP23017上的输入引脚(2个独立的arduinos)

将输出引脚从MCP23017连接到另一个MCP23017上的输入引脚(2个独立的arduinos)
EN

Stack Overflow用户
提问于 2022-03-09 18:07:25
回答 1查看 103关注 0票数 1

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使用以下代码:

代码语言:javascript
复制
#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
    
}
EN

回答 1

Stack Overflow用户

发布于 2022-03-10 16:35:42

我只需删除或注释掉第27行(mcp1.DigalW区(0,LOW);)就解决了这个问题,现在按照我想要的方式工作。谢谢你的时间和帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71414077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档