Preciso de ajudam esse código

Bom dia, 

Estou criando uma implementação no scada com arduino como escravo, já consigui criar o data source e os data points, estão se comunicando sem erro. 

Eu tenho um sensor de chuva que ao ser acionado liga um motor durante alguns segundos, desliga e sinaliza em uma saída digital. Eu escrevi o código abaixo, só que não consigo fazer a temporização, quando coloco o delay o motor não aciona, a sinalização está funcionando, alguém pode me ajudar por favor. 

#include <Modbus.h>
#include <ModbusSerial.h>
 
// Modbus Registers Offsets (0-9999)
const int ESTENDER = 100;
const int RECOLHER = 101;
const int CHUVA = 102;
const int ESTENDIDA = 103;
 
// Used Pins
const int MotorEstende = 12;
const int MotorRecolher = 11;
const int SensorChuva = 10;
const int Estendida = 5;
 
// ModbusSerial object
ModbusSerial mb;
 
void setup() {
  
    // Config Modbus Serial (port, speed, byte format) 
    mb.config(&Serial, 38400, SERIAL_8N1);
    // Set the Slave ID (1-247) FUNÇÃO DE ESCRITA
    mb.setSlaveId(10);  
 
   // Set ledPin mode
    pinMode(MotorEstende, OUTPUT);
    mb.addCoil(ESTENDER);
 
    pinMode(MotorRecolher, OUTPUT);
    mb.addCoil(RECOLHER);
 
    pinMode(Estendida, OUTPUT);
    mb.addCoil(ESTENDIDA);
 
    pinMode(SensorChuva, INPUT);
    mb.addIsts(CHUVA);
}
 
void loop() {
   mb.task();
   
   digitalWrite(MotorEstende, mb.Coil(ESTENDER));
   digitalWrite(MotorRecolher, mb.Coil(RECOLHER));
   digitalWrite(Estendida, mb.Coil(ESTENDIDA));
   mb.Ists(CHUVA, digitalRead(SensorChuva));
 
int chovendo=digitalRead(SensorChuva);
mb.Ists(CHUVA, chovendo);
   
   if (chovendo==HIGH){
   mb.Coil(RECOLHER, HIGH);
   delay(1000);
   mb.Coil(RECOLHER, LOW);
   mb.Coil(ESTENDIDA, HIGH);
   }
}