求大神提点:NodeMcu控制多路继电器
控制一个8路继电器,程序刷入后,D0-D7引脚如果每次输出一个高电平就正常,但如果输出大于两个高电平就出问题了,其他引脚自动输出高电平,比如D4,D5设置高电平后,D0D2D6D7也同时自动输出高电平,该怎么限制呢,让我想哪个高就高,哪个低就低本帖最后由 daileshan 于 2020-3-5 19:19 编辑
差不多一半的数字引脚都是相连的,楼主别想了 楼主能不能分享一下源码 本帖最后由 daileshan 于 2020-3-9 16:37 编辑
Ra8 发表于 2020-3-6 08:46
楼主能不能分享一下源码
目前还没有哦! Ra8 发表于 2020-3-6 08:46
楼主能不能分享一下源码
搞定了已经,还是在点灯的源码上修改的 ,改了几个版本,一个是一个按键控制开关,一个是两个按键单独控制开关,还有一个是附加了输入控制,根据输入内容判断开关 daileshan 发表于 2020-3-5 16:43
差不多一半的数字引脚都是相连的,楼主别想了
现在已经好了,根据点灯源码修改的,还有一个平台不用写程序,全是图形界面,手机上就搞定了,程序应该都是直接包含在库里了。可以试一下这个平台 Blynk Ra8 发表于 2020-3-6 08:46
楼主能不能分享一下源码
不会写可以试一下这个平台Blynk,不用写程序,图形化界面,只需设置那个引脚给什么电平就可以了
Ra8 发表于 2020-3-6 08:46
楼主能不能分享一下源码
功能是可以实现,不知道稳定把
#define BLINKER_WIFI
#include <Blinker.h>
BlinkerButton Button1("btc1");
BlinkerButton Button2("btc2");
BlinkerButton Button3("btc3");
BlinkerButton Button4("btc4");
BlinkerButton Button5("btc5");
BlinkerButton Button6("btc6");
BlinkerButton Button7("btc7");
BlinkerButton Button8("btc8");
BlinkerText Text1("text_1");
char i;
char auth[] = "******";
char ssid[] = "OrayBox-D5D6"; //caiyq52-改成自己的WIFI名称
char pswd[] = "123456789";//caiyq52-改成自己的WIFI密码
bool oState = { false }; //设置8路开关控制
void dataRead(const String & data) // 如果未绑定的组件被触发,则会执行其中内容
{
BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis", BlinkerTime);
}
void button1_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D0, !digitalRead(D0));
}
void button2_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D1, !digitalRead(D1));
}
void button3_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D2, !digitalRead(D2));
}
void button4_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D3, !digitalRead(D3));
}
void button5_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D4, !digitalRead(D4));
}
void button6_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D5, !digitalRead(D5));
}
void button7_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D6, !digitalRead(D6));
}
void button8_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
digitalWrite(D7, !digitalRead(D7));
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
pinMode(D0, OUTPUT);
digitalWrite(D0, LOW);
pinMode(D1, OUTPUT);
digitalWrite(D1, LOW);
pinMode(D2, OUTPUT);
digitalWrite(D2, LOW);
pinMode(D3, OUTPUT);
digitalWrite(D3, LOW);
pinMode(D4, OUTPUT);
digitalWrite(D4, LOW);
pinMode(D5, OUTPUT);
digitalWrite(D5, LOW);
pinMode(D6, OUTPUT);
digitalWrite(D6, LOW);
pinMode(D7, OUTPUT);
digitalWrite(D7, LOW);
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
Button4.attach(button4_callback);
Button5.attach(button5_callback);
Button6.attach(button6_callback);
Button7.attach(button7_callback);
Button8.attach(button8_callback);
}
void loop()
{
Blinker.run();
}
Ra8 发表于 2020-3-6 08:46
楼主能不能分享一下源码
现在有了!
页:
[1]