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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2996|回复: 1

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

[复制链接]
发表于 2021-1-25 22:26 | 显示全部楼层 |阅读模式
目前,网上的MCP23017的基础资料比较多,但是都是泛泛而谈,真实使用案例、源代码比较少,特别是WIFIArduino控制MCP23017更是网上第一帖!

一、连线方式:

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

  9. char ssid[] = "123456789";
  10. char pswd[] = "123456789";
  11. BlinkerButton Button1("btn-abc");
  12. Adafruit_MCP23017 mcp;

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

  19. void setup()
  20. {
  21.     // 初始化串口
  22.     Serial.begin(115200);
  23.     BLINKER_DEBUG.stream(Serial);
  24.     BLINKER_DEBUG.debugAll();
  25.        
  26.         mcp.begin();// use default address 0
  27.         mcp.pinMode(0, OUTPUT);
  28.     // 初始化blinker
  29.     Blinker.begin(auth, ssid, pswd);
  30.     Button1.attach(button1_callback);
  31. }

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

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

有问题在此贴回复。

发表于 2021-8-12 12:34 | 显示全部楼层
y有结果了吗,我也想知道怎么回事
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:49 , Processed in 0.074740 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表