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));
}
}
感觉并不是一个blinker问题,输入上下拉了吗 谢谢,好了!
一定要10K(棕黑红),随便找个电阻是不行的:(,一直以为是程序问题!
另外问一下,修改哪个可以上电LED是熄灭状态? 本帖最后由 lwq1947 于 2020-1-1 17:39 编辑
棕黑红应该是1K吧.把void setup() 中的 digitalWrite(LED_BUILTIN, HIGH);改成digitalWrite(LED_BUILTIN, LOW);试试. 本帖最后由 lwq1947 于 2020-1-1 17:36 编辑
奈何col 发表于 2020-1-1 09:58
感觉并不是一个blinker问题,输入上下拉了吗
奈何老师新年好!请您帮我看看我的"函数调用"能否解答我的求助.谢谢. lwq1947 发表于 2020-1-1 17:18
棕黑红应该是1K吧.把void setup() 中的 digitalWrite(LED_BUILTIN, HIGH);改成digitalWrite(LED_BUILTIN, L ...
谢谢,应该是棕黑橙!
digitalWrite(LED_BUILTIN, LOW)这个我试试看! lex561 发表于 2020-1-1 12:45
谢谢,好了!
一定要10K(棕黑红),随便找个电阻是不行的,一直以为是程序问题!
另外问一下,修改哪个 ...
初始化时把high改成LOW就可以了
页:
[1]