Sensor de vazão scadabr arduino


#1

Prezados,

Queria uma um ajuda pois não consigo fazer o leitura do fluxo do codigo abaixo.

#include <SimpleModbusSlave.h>

enum
{
VAZAO_VAL,
HOLDING_REGS_SIZE
};

unsigned int holdingRegs[HOLDING_REGS_SIZE];

float fluxo = 0;
const int INTERRUPCAO_SENSOR = 0;
const int PINO_SENSOR = 2;
unsigned long contador = 0;
const float FATOR_CALIBRACAO = 4.5;
unsigned long tempo_antes = 0;

void setup() {
modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE, holdingRegs);
modbus_update_comms(9600, SERIAL_8N1, 1);

pinMode(PINO_SENSOR, INPUT_PULLUP);
pinMode(fluxo, OUTPUT);

}

void loop() {
modbus_update();

analogWrite(fluxo, holdingRegs[VAZAO_VAL]);

if((millis() - tempo_antes) > 1000){

detachInterrupt(INTERRUPCAO_SENSOR);

fluxo = ((1000.0 / (millis() - tempo_antes)) * contador) / FATOR_CALIBRACAO;

contador = 0;

tempo_antes = millis();

attachInterrupt(INTERRUPCAO_SENSOR, contador_pulso, FALLING);

}
}

void contador_pulso() {

contador++;

}