问题
-当使用以这种方式连接的ESP8266时,它将在为继电器供电时随机断开USB接口。然后,它可能会重新连接,但是是零星的。
-该代码可以在下面查看,但是本质上,继电器通电300ms,然后等待10秒钟循环。
接线图https://i.stack.imgur.com/4mycx.png
测试:
我已经更换了继电器,泵,ESP8266,并多次重新布线,以检查是否短路。我还在每个循环周期中增加了一个整数,当ESP8266能够重新连接时,它将打印此变量,这表明开发板没有崩溃:
串行输出https://i.stack.imgur.com/ziM8g.png
然后修改了该图,因此5v电源不是并联的,而是有两个不同的电源,一个用于ESP8266,一个用于泵浦电路,但是观察到相同的问题:
测试接线图https://i.stack.imgur.com/7S0aP.png
问题:
为什么在向继电器发送控制信号时USB断开连接?有办法减轻这种情况吗?
代码:
int relayInput = 5; // the input to the relay pin
int debug_test = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(relayInput, OUTPUT); // initialize pin as OUTPUT
}
void loop() {
// put your main code here, to run repeatedly:
debug_test ++ ;
Serial.println(debug_test);
digitalWrite(relayInput, HIGH); // turn relay on
Serial.println("Water on!");
delay(300);
digitalWrite(relayInput, LOW); // turn relay off
Serial.println("Water off!");
Serial.println("Waiting 10 seconds");
delay(10000);
}
Parts:
ESP8255-https://www.amazon.co.uk/gp/product/B07F5FJSYZ/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
中继-https://www.amazon.co.uk/gp/product/B07BVXT1ZK/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
确定,因此对此进行研究,似乎在泵启动时,它会拉出比PC所能提供的更大的电流(安培)。这将用于连接到应为其提供足够电流的外部电源,但是我还希望能够灵活地通过串行连接将其连接至PC进行故障排除。
所以最后这样的事情:https://i.stack.imgur.com/MKD1h.png