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 Pinsconst int MotorEstende = 12;const int MotorRecolher = 11;const int SensorChuva = 10;const int Estendida = 5;// ModbusSerial objectModbusSerial 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 ESCRITAmb.setSlaveId(10);// Set ledPin modepinMode(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);}}