极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1624|回复: 2

程序频繁出现bug!急!明天就要用!

[复制链接]
发表于 2018-6-21 22:23:08 | 显示全部楼层 |阅读模式
本帖最后由 白羊羊罐头AS 于 2018-6-22 01:38 编辑

我在测试一个程序的时候,经常出现一个问题:串口发送打开继电器的数据之后,继电器先是打开,然后串口有好一阵子没传回数据;再发送关闭的数据后继电器就不动了,串口也有好一阵子没反应。这是代码:

#include <SoftI2CMaster.h>
#include <LiquidCrystal_SoftI2C.h>
#include <dht11.h>

volatile int alarm;

LiquidCrystal_SoftI2C mylcd(0x3F,16,2,A5,A4);
dht11 myDHT_2;
int dht_2_gettemperature() {
  int chk = myDHT_2.read(2);
  int value = myDHT_2.temperature;
  return value;
}

int dht_2_gethumidity() {
  int chk = myDHT_2.read(2);
  int value = myDHT_2.humidity;
  return value;
}

void setup(){
  Serial.begin(38400);
  alarm = 0;
  pinMode(4, INPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  digitalWrite(6,HIGH);
  pinMode(7, OUTPUT);
  digitalWrite(7,HIGH);
  pinMode(8, OUTPUT);
  digitalWrite(8,HIGH);
  pinMode(9, OUTPUT);
  digitalWrite(9,HIGH);
  pinMode(10, OUTPUT);
  digitalWrite(10,HIGH);
  pinMode(11, OUTPUT);
  digitalWrite(11,HIGH);
  pinMode(12, OUTPUT);
  digitalWrite(12,HIGH);
  pinMode(13, OUTPUT);
  digitalWrite(13,HIGH);
  mylcd.init();
  mylcd.backlight();
}

void loop(){
  Serial.println(String("Temperature:") + String(dht_2_gettemperature()));
  Serial.println(String("Humidity:") + String(dht_2_gethumidity()));
  Serial.println(String("Alarm:") + String(alarm));
  if (digitalRead(4) == 1 && analogRead(A0) >= 450) {
    alarm = 1;

  }
  if (alarm == 1) {
    digitalWrite(5,HIGH);

  } else {
    digitalWrite(5,LOW);

  }
  if (Serial.available() > 0) {
    if (Serial.readString() == "OpenSwitch1") {
      digitalWrite(6,LOW);

    }
    if (Serial.readString() == "OpenSwitch2") {
      digitalWrite(7,LOW);

    }
    if (Serial.readString() == "OpenSwitch3") {
      digitalWrite(8,LOW);

    }
    if (Serial.readString() == "OpenSwitch4") {
      digitalWrite(9,LOW);

    }
    if (Serial.readString() == "OpenSwitch5") {
      digitalWrite(10,LOW);

    }
    if (Serial.readString() == "OpenSwitch6") {
      digitalWrite(11,LOW);

    }
    if (Serial.readString() == "OpenSwitch7") {
      digitalWrite(12,LOW);

    }
    if (Serial.readString() == "OpenSwitch8") {
      digitalWrite(13,LOW);

    }
    if (Serial.readString() == "CloseSwitch1") {
      digitalWrite(6,HIGH);

    }
    if (Serial.readString() == "CloseSwitch2") {
      digitalWrite(7,HIGH);

    }
    if (Serial.readString() == "CloseSwitch3") {
      digitalWrite(8,HIGH);

    }
    if (Serial.readString() == "CloseSwitch4") {
      digitalWrite(9,HIGH);

    }
    if (Serial.readString() == "CloseSwitch5") {
      digitalWrite(10,HIGH);

    }
    if (Serial.readString() == "CloseSwitch6") {
      digitalWrite(11,HIGH);

    }
    if (Serial.readString() == "CloseSwitch7") {
      digitalWrite(12,HIGH);

    }
    if (Serial.readString() == "CloseSwitch8") {
      digitalWrite(13,HIGH);

    }
    if (Serial.readString() == "AlarmReset") {
      alarm = 0;

    }

  }
  
  mylcd.setCursor(0, 0);
  mylcd.print("SmartHome");
  mylcd.setCursor(0, 1);
  mylcd.print(String(dht_2_gettemperature()) + String("C ")+String(dht_2_gethumidity())+String("%"));
  
  

}

这个是整个代码(智能家居),明天就要用!
而且报警部分也无法正常运行!
回复

使用道具 举报

 楼主| 发表于 2018-6-21 22:26:44 | 显示全部楼层
使用的库:
Dht11.rar (3.24 KB, 下载次数: 0)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 01:39:25 | 显示全部楼层
自己改了一下,已经能用了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-3-22 23:16 , Processed in 0.045387 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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