Blinker小爱同学控制,增加按键开关,一直闪灯!-Arduino中文社区 - Powered by Discuz! Archiver

lex561 发表于 2019-12-31 21:19

Blinker小爱同学控制,增加按键开关,一直闪灯!

已经可以用小爱同学(和blinker)控制LED,但是断网或者重启后,默认是亮灯。
所以想增加一个按键控制LED ,测试了好几次,按键可以控制的时候,blinker不能控制。
现在的情况是:上电LED一直在闪!

仅个人爱好,都是抄袭(奈何col),不懂,所以求助!

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT//小爱设备配置:灯
#include <Blinker.h>

char auth[] = "xxxxxxxx";
char ssid[] = "xxxxxx";
char pswd[] = "xxxxxxx";

int buttonPin = 2;   //定义按钮开关引脚为2-增加

// blinker新建组件对象

BlinkerButton Button1("btn-abc");

// blinker按下按键即会执行该函数

void button1_callback(const String & state) {

    BLINKER_LOG("get button state: ", state);

    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

    Blinker.vibrate();

}

//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
digitalWrite(LED_BUILTIN, HIGH);
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_OFF) {
digitalWrite(LED_BUILTIN, LOW);
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
}



void setup() {


pinMode (buttonPin,INPUT);   //设定按钮引脚为输入状态-增加
digitalWrite(buttonPin, HIGH);//增加


    // 初始化串口,并开启调试信息

    Serial.begin(115200);   

    BLINKER_DEBUG.stream(Serial);

    // 初始化有LED的IO

    pinMode(LED_BUILTIN, OUTPUT);

    digitalWrite(LED_BUILTIN, HIGH);

    // 初始化blinker

    Blinker.begin(auth, ssid, pswd);

    Button1.attach(button1_callback);
//小爱同学务必在回调函数中反馈该控制状态
BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
}



void loop() {

    Blinker.run();

   
   //下面增加内容
    if (digitalRead(buttonPin) == LOW){
    delay(40);            //延时简单抗抖动
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
   
}


奈何col 发表于 2020-1-1 09:58

感觉并不是一个blinker问题,输入上下拉了吗

lex561 发表于 2020-1-1 12:45

谢谢,好了!
一定要10K(棕黑红),随便找个电阻是不行的:(,一直以为是程序问题!
另外问一下,修改哪个可以上电LED是熄灭状态?

lwq1947 发表于 2020-1-1 17:18

本帖最后由 lwq1947 于 2020-1-1 17:39 编辑

棕黑红应该是1K吧.把void setup() 中的 digitalWrite(LED_BUILTIN, HIGH);改成digitalWrite(LED_BUILTIN, LOW);试试.

lwq1947 发表于 2020-1-1 17:32

本帖最后由 lwq1947 于 2020-1-1 17:36 编辑

奈何col 发表于 2020-1-1 09:58
感觉并不是一个blinker问题,输入上下拉了吗
奈何老师新年好!请您帮我看看我的"函数调用"能否解答我的求助.谢谢.

lex561 发表于 2020-1-3 09:54

lwq1947 发表于 2020-1-1 17:18
棕黑红应该是1K吧.把void setup() 中的 digitalWrite(LED_BUILTIN, HIGH);改成digitalWrite(LED_BUILTIN, L ...

谢谢,应该是棕黑橙!
digitalWrite(LED_BUILTIN, LOW)这个我试试看!

Beautiful_Now 发表于 2020-1-3 10:32

lex561 发表于 2020-1-1 12:45
谢谢,好了!
一定要10K(棕黑红),随便找个电阻是不行的,一直以为是程序问题!
另外问一下,修改哪个 ...

初始化时把high改成LOW就可以了
页: [1]
查看完整版本: Blinker小爱同学控制,增加按键开关,一直闪灯!