ต้องการควบคุม Relay โดยอิงตามค่าความชื้น

ขอสอบถามหน่อยครับพอดีผมวัดค่าความชื้นโดยใช้ Sensor 6 ตัวแล้ว ทีนี้ผมอยากให้แบ่งการทำงานเป็นอย่างละ 3 ตัว = 1 รีเลย์ ครับ
โดยการทำงานคร่าวๆ แบบนี้ครับ
สมมุติว่าค่าความชื้นตัวที่ 1-3 ต่ำ รีเลย์ 1(โซลินอยด์) และ 2(ปั๊มน้ำ) จะทำงานครับ แต่ 3(โซลินอยด์อีกตัว) จะไม่ทำงาน เพื่อให้น้ำไหลผ่านเพียงแค่จุดที่ต้องการรดน้ำครับ
แต่ถ้าความชื้นต่ำ รีเลย์ทุกตัวก็จะทำงานเพื่อให้น้ำไหลผ่านทุกทางครับ
ปัญหาที่เกิดคือ ผมพยายามเขียนให้มันรวม ๆ กัน แล้วมันตีๆ กันครับ บางครั้งก็ทำงานบ้าง ไม่ทำงานบ้าง รบกวนช่วยทีครับผม ขอบคุณมากครับ

#include <ESP8266WiFi.h>
#include <MCP3008.h>
#include <SPI.h>
MCP3008 adc(D5, D7, D6, D8);

int moisture1 = 0;
int moisture2 = 0;
int moisture3 = 0;
int moisture4 = 0;
int moisture5 = 0;
int moisture6 = 0;
int Relay3 = 2;
int Relay2 = 0;
int Relay1 = 4;

void setup()
{
  Serial.begin(115200);
  pinMode(Relay3,OUTPUT);
  pinMode(Relay2,OUTPUT);
  pinMode(Relay1,OUTPUT);
}

void loop()
{
  //moisture 1-3
  int moisture1 = adc.readADC(0);
  int moisture2 = adc.readADC(1);
  int moisture3 = adc.readADC(2);
  //moisture 4-6
  int moisture4 = adc.readADC(3);
  int moisture5 = adc.readADC(4);
  int moisture6 = adc.readADC(5);
  
  //moitsture 1-3
  Serial.print("Moisture1 = ");
  Serial.println(moisture1);
  delay(500);
  Serial.print("Moisture2 = ");
  Serial.println(moisture2);
  delay(500);
  Serial.print("Moisture3 = ");
  Serial.println(moisture3);
  delay(500);
  Serial.println("-----------------------------------------");
  //moisture 4-6
  Serial.print("Moisture4 = ");
  Serial.println(moisture4);
  delay(500);
  Serial.print("Moisture5 = ");
  Serial.println(moisture5);
  delay(500);
  Serial.print("Moisture6 = ");
  Serial.println(moisture6);
  delay(500);
  Serial.println("-----------------------------------------");
  if (moisture1 < 46)
  if (moisture2 < 46)
  if (moisture3 < 46){
    digitalWrite(Relay3, LOW);
    digitalWrite(Relay2, LOW);
  }
  else{
    digitalWrite(Relay3, HIGH);
    digitalWrite(Relay2, HIGH);
}
  if (moisture4 < 46)
  if (moisture5 < 46)
  if (moisture6 < 46){
    digitalWrite(Relay3, LOW);
    digitalWrite(Relay1, LOW);
  }
  else{
    digitalWrite(Relay3, HIGH);
    digitalWrite(Relay1, HIGH);
  }
}

ตอนนี้ได้รึยังครับ

ผมทดลองแล้วครับผมลองเอาตัว 1-3 ไปจุ่มความชื้น ผลโอเคครับ วาล์วน้ำ 1 ตัดการทำงาน
แต่ตัวปั๊ม และวาล์วน้ำ 2 ยังทำงาน
.
แต่พอเอาตัว 4-6 ไปจุ่มครับ วาล์ว 2 หยุดทำงานครับ และปั๊มน้ำหยุดทำงานด้วย
ทำให้ตัวที่ 1-3 ความชื้นยังต่ำอยู่ครับ สรุปแล้วก็ตัวที่ 1-3 ทำงานปกติครับ แต่ 4-6 มันหยุดการทำงานปั๊มด้วย

คืออยากรู้ว่าสเตป พวกนี้ถูกแล้วใช่ไหม อธิบายมางงๆ ไม่งั้นอธิบายมาเป็นข้อๆ หน่อย อ้างอิงจาก relay ตัวที่เท่าไหร่ ก็พอเดียวจะงงกันไปใหญ่