Boa tarde

estou tentando utilizando um sensor de vazão G 3/4 e gostaria de usar a função millis ao inves da função delay. coloquei este code mas ele trava. Alguem poderia me dar uma luz?

float vazao = 0; //Variável para armazenar o valor em L/min
unsigned long contaPulso; //Variável para a quantidade de pulsos
int enable = 1; //Variável para contagem

unsigned long time = 1000;

void setup()
{
Serial.begin(9600); //Inicia a serial com um baud rate de 9600
pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
}

void loop ()
{
if (enable == 1);
{

contaPulso = 0;
sei();
enable = 0;
}

if (millis() > time);
{

cli();
time = millis() + 1000;
enable =1;
vazao = contaPulso / 5.5; //Converte para L/min
Serial.print(vazao); //Imprime na serial o valor da vazão
Serial.println(" L/min "); //Imprime L/min
}
}

void incpulso ()
{
contaPulso++; //Incrementa a variável de contagem dos pulsos
}

Exibições: 364

Responder esta

Respostas a este tópico

Oi JW, boa tarde.

Um problema que vi no seu code , é aquele ponto e virgula depois dos if

if (millis() > time);    --------   Ele é indevido.

Mas o seu code pode ser bem mais simples.

Veja este code:   http://pastebin.com/Ft3kRiFq

Rui

Grande Rui, Show de bola!!! Funcionou certinho. Agora vou tentar jogar no sketch modbus. Ja estou monitorando o consumo eletrico da minha casa e agora vou incluir este para monitorar o consumo de agua. Muito Obrigado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço