接电瞬间继电器亮了一下-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2203|回复: 6

[未解决] 接电瞬间继电器亮了一下

[复制链接]
发表于 2021-11-5 14:39 | 显示全部楼层 |阅读模式
本帖最后由 rh902999 于 2021-11-5 16:58 编辑

ESP8266串口WIFI模块接3个继电器,电源都是从板上引出,接上USB瞬间,继电器1亮了一下,继电器2和继电器3都没亮,检查过接线和代码都没问题,这是硬件缺陷吗?
 楼主| 发表于 2021-11-5 14:40 | 显示全部楼层
#include<ESP8266WiFi.h>

int LED0=D0; //定义led引脚为D0
int LED1=D1; //定义led引脚为D1
int LED2=D2; //定义led引脚为D2
int LED3=D3; //定义led引脚为D3
//家里的wifi名称和密码

const char* ssid = "3F-IT";
const char* password = "CF12345678";

//服务器设置为80端口
WiFiServer server(9000);
String data = "";


void setup() {

  pinMode(LED0, OUTPUT);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  //开启串口监视器
  Serial.begin(9600);
  
  //开启wifi:用户名+密码
  WiFi.begin(ssid,password);

  //尝试连接wifi
  while(WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.println('.');
    }
  Serial.println("连接成功");
  Serial.println(WiFi.localIP());

  //开启服务
  server.begin();
  Serial.println("Server started");
}


void loop() {
//确定是否连线
WiFiClient client = server.available();
//Serial.println("客户端与服务器没有连接上");
//判断客户端是否与服务器连上,若没有连接上,则执行if
if(!client){
  return;
  }

  Serial.println("客户端与服务器连接上");
  //客户端是否与服务器连上
  while(client){
      //如果没有东西输入了,就检查data是否为空,如果data不为空,就打印出来,并将data清空
     if(!client.available()){
      //如果data不为空,则什么
      if(data != ""){
        Serial.println(data);
        if(data == "a")
        {
           Serial.println("D0没有消息");
    digitalWrite(LED0, HIGH);  // 点亮
    delay(500);                // 等待
    digitalWrite(LED0, LOW);   // 关闭
    delay(500);                // 等待
        }
        else if(data == "b")
        {
          Serial.println("D1没有消息");
    digitalWrite(LED1, HIGH);  // 点亮
    delay(500);                // 等待
    digitalWrite(LED1, LOW);   // 关闭
    delay(500);                // 等待
        }
         else if(data == "c")
        {
          Serial.println("D2没有消息");
    digitalWrite(LED2, HIGH);  // 点亮
    delay(500);                // 等待
    digitalWrite(LED2, LOW);   // 关闭
    delay(500);                // 等待
        }
         else if(data == "d")
        {
          Serial.println("D3没有消息");
    digitalWrite(LED3, HIGH);  // 点亮
    delay(500);                // 等待
    digitalWrite(LED3, LOW);   // 关闭
    delay(500);                // 等待
        }
        
        
        data = "";
    //Serial.println("没有消息");
      }
  }
    else if (client.available()) {
      //如果有一句话过来,则每执行一个while循环就往data添加字符(有信息过来会连续执行else if语句)
      data += char(client.read());
      }
    }
}
发表于 2021-11-5 16:55 | 显示全部楼层
rh902999 发表于 2021-11-5 14:40
#include

int LED0=D0; //定义led引脚为D0

8266的gpio0,gpio2,gpio3,gpio16在上电瞬间会有电平翻转转现象.看一下继电器1是否接在这四个端口之一上.
 楼主| 发表于 2021-11-5 16:59 | 显示全部楼层
lwq1947 发表于 2021-11-5 16:55
8266的gpio0,gpio2,gpio3,gpio16在上电瞬间会有电平翻转转现象.看一下继电器1是否接在这四个端口之一上. ...

嗯,就接在gpio0,gpio2,gpio3只有gpio0有这问题,请问该怎么处理?
发表于 2021-11-5 17:30 | 显示全部楼层
本帖最后由 lwq1947 于 2021-11-5 17:44 编辑
rh902999 发表于 2021-11-5 16:59
嗯,就接在gpio0,gpio2,gpio3只有gpio0有这问题,请问该怎么处理?

换其它可用的端口.
发表于 2021-11-5 20:48 | 显示全部楼层
rh902999 发表于 2021-11-5 16:59
嗯,就接在gpio0,gpio2,gpio3只有gpio0有这问题,请问该怎么处理?

IO0换成低电平触发继电器就没事了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 21:47 , Processed in 0.071197 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表