判断条件太多导致程序可读性差,某些部件无法正常工作

if(DHT.humidity >= 80)
{
digitalWrite(led_yellow,HIGH);
delay(500);
analogWrite(fan_a,HIGH);
delay(1000);
digitalWrite(6,0);
delay(700);
digitalWrite(6,1);
}

else if(DHT.humidity < 80)

{
digitalWrite(led_yellow,LOW);
delay(500);
analogWrite(fan_a,LOW);
delay(1000);
}

else if(DHT.temperature >= 30)
{
digitalWrite(led_green,HIGH);
delay(500);
digitalWrite(6,0);
delay(700);
digitalWrite(6,1);
}
else if(DHT.temperature < 30)
{
digitalWrite(led_green,LOW);
delay(500);
}
else if(huoyan_value >= 760||sensorValue >= 500)
{
digitalWrite(led_red,HIGH);
delay(500);
digitalWrite(6,0);
delay(700);
digitalWrite(6,1);
}
else if(huoyan_value < 760||sensorValue < 500)
{
digitalWrite(led_red,LOW);
delay(500);
}
直流电机无法正常工作
void loop()
{
delay(2000);
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
if(t>=31) //设置温度的上限阈值为31℃,高于31℃风扇打开
{
int offsetX=525; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
int x =analogRead(A2);
bool isFoward = x <= offsetX;
speed = x==offsetX ? 0: (isFoward ? (255- map(x,0,offsetX,0,255)): map(x,0,1024,0,255));
Serial.println(speed);
isFoward ? forward() : backward();
}
if(t<31) //设置温度的阈值为31℃,低于31℃风扇关闭
{
int offsetX=0; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
int x =0;
bool isFoward = x <= offsetX;
speed = x==offsetX ? 0: (isFoward ? (0- map(x,0,offsetX,0,0)): map(x,0,1024,0,0));
Serial.println(speed);
isFoward ? forward() : backward();
}
}
void backward()
{
analogWrite(fan_a, 0);
analogWrite(fan_b, speed);
}
void forward()
{
analogWrite(fan_a, speed);
analogWrite(fan_b, 0);
}


       if(80<=DHT.humidity                                 ) {
    digitalWrite(led_yellow,HIGH);  delay(500);  analogWrite(fan_a,HIGH);  delay(1000);  digitalWrite(6,0);  delay(700);  digitalWrite(6,1);
} else if(    DHT.humidity < 80                            ) {
    digitalWrite(led_yellow, LOW);  delay(500);  analogWrite(fan_a, LOW);  delay(1000);
} else if(30<=DHT.temperature                              ) {
    digitalWrite(led_green ,HIGH);  delay(500);                                          digitalWrite(6,0);  delay(700);  digitalWrite(6,1);
} else if(    DHT.temperature < 30                         ) {
    digitalWrite(led_green,  LOW);  delay(500);
} else if(760<=huoyan_value       || 500<=sensorValue      ) {
    digitalWrite(led_red   ,HIGH);  delay(500);                                          digitalWrite(6,0);  delay(700);  digitalWrite(6,1);
} else if(     huoyan_value < 760 ||      sensorValue < 500) {
    digitalWrite(led_red   , LOW);  delay(500);
}
直流电机无法正常工作
void loop() {
    delay(2000);
    float h = dht.readHumidity();
    // Read temperature as Celsius (the default)
    float t = dht.readTemperature();
    Serial.print(F("Humidity: "));
    Serial.print(h);
    Serial.print(F("% Temperature: "));
    Serial.print(t);
    Serial.println(F("°C "));
    if(31<=t) {//设置温度的上限阈值为31℃,高于31℃风扇打开
        int  offsetX  = 525; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
        int  x        = analogRead(A2);
        bool isFoward = (x <= offsetX);
        speed = (x==offsetX) ? 0 : (isFoward ? (255- map(x,0,offsetX,0,255)): map(x,0,1024,0,255));
        Serial.println(speed);
        isFoward ? forward() : backward();
    } else {//(t<31) //设置温度的阈值为31℃,低于31℃风扇关闭
        int  offsetX  = 0; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
        int  x        = 0;
        bool isFoward = (x <= offsetX);
        speed = (x==offsetX) ? 0: (isFoward ? (0- map(x,0,offsetX,0,0)): map(x,0,1024,0,0));
        Serial.println(speed);
        isFoward ? forward() : backward();
    }
}
void backward() {
    analogWrite(fan_a,     0);
    analogWrite(fan_b, speed);
}
void forward() {
    analogWrite(fan_a, speed);
    analogWrite(fan_b,     0);
}

自创C语言填表式编码风格。欢迎大家用各种语言及其编码风格来PK! https://bbs.csdn.net/topics/380157851