|
目前,网上的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口不会出现高电平,下端负载不会误动作。
有问题在此贴回复。
|
|