【教程】网上第一帖!WIFIArduino控制23017,解决上电io抖动-Arduino中文社区 - Powered by Discuz! Archiver

sagajie 发表于 2021-1-25 22:26

【教程】网上第一帖!WIFIArduino控制23017,解决上电io抖动

目前,网上的MCP23017的基础资料比较多,但是都是泛泛而谈,真实使用案例、源代码比较少,特别是WIFIArduino控制MCP23017更是网上第一帖!

一、连线方式:


此图中,vcc接WIFIArduino的3.3v,gnd接WIFIArduino的GND,SCL接5号(D5),SDA接4号(D4),源代码:
#include <Wire.h>
#define BLINKER_WIFI
#include <Blinker.h>
#include "Adafruit_MCP23017.h"
int PAISHUISHIJIAN = 0;
char auth[] = "b83b949d92ff";
//char ssid[] = "mima88888888";
//char pswd[] = "88888888";

char ssid[] = "123456789";
char pswd[] = "123456789";
BlinkerButton Button1("btn-abc");
Adafruit_MCP23017 mcp;

// 按下按键即会执行该函数
void button1_callback(const String & state)
{
Blinker.print("开始喂食!");
PAISHUISHIJIAN = 1;
}

void setup()
{
    // 初始化串口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
       
        mcp.begin();// use default address 0
        mcp.pinMode(0, OUTPUT);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
}

void loop() {
Blinker.run();
        if(PAISHUISHIJIAN > 0){
        delay(3000);
        mcp.digitalWrite(0, HIGH);
        delay(3000);
        mcp.digitalWrite(0, LOW);
        Blinker.print("喂食结束!");
        PAISHUISHIJIAN = 0;
        }
}这个代码的作用就是实现:点击app中键值为btn-abc的按键,Adafruit_MCP23017的0号针脚高电平、低电平变化。

二、WIFIArduino的io口在上电、复位的时候,io口瞬间有一个高电平,会造成下端负载误动作,但是Adafruit_MCP23017默认为io输入,在上电、复位的时候,io口不会出现高电平,下端负载不会误动作。

有问题在此贴回复。

zxy2266 发表于 2021-8-12 12:34

y有结果了吗,我也想知道怎么回事
页: [1]
查看完整版本: 【教程】网上第一帖!WIFIArduino控制23017,解决上电io抖动