Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Código para utilização de 2 sensores de fluxo de efeito Hall para medição de volume em reservatório
- float volume_in; //Variável para armazenar o valor em ml instantâneo
- float volume_out; //Variável para armazenar o valor em ml instantâneo
- int contapulso_in; //Variável para a quantidade de pulsos de entrada
- int contapulso_out; //Variável para a quantidade de pulsos de saída
- int contapulsototal_in; //Variável que registra o total de pulsos de entrada
- int contapulsototal_out; //Variável que registra o total de pulsos de saída
- int i=0; //Variável para contagem
- float volumetotal_in= 0; //Variável para armazenar o valor em ml total de entrada
- float volumetotal_out= 0; //Variável para armazenar o valor em ml total de entrada
- float resultante; //Variável para armazenar o volume em ml armazenado no reservatório
- //-----------------------------------------------------
- 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
- attachInterrupt(1, decpulso, RISING); //Configura o pino 3(Interrupção 1) para trabalhar como interrupção
- Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
- }
- //-----------------------------------------------------
- void loop ()
- {
- contapulso_in = 0; //Zera a variável para contar os giros por segundo
- contapulso_out = 0; //Zera a variável para contar os giros por segundo
- sei(); //Habilita interrupção
- delay (1000); //Aguarda 1 segundo
- cli(); //Desabilita interrupção
- // Volume in
- volume_in = contapulso_in * 2.25; //Converte para ml
- contapulsototal_in = contapulsototal_in+contapulso_in;
- volumetotal_in=volumetotal_in+volume_in; //Soma a volume para o calculo da media
- // Volume out
- volume_out = contapulso_out * 2.25; //Converte para ml
- contapulsototal_out = contapulsototal_out+contapulso_out;
- volumetotal_out=volumetotal_out+volume_out; //Soma a volume para o calculo da media
- i++;
- resultante = volumetotal_in-volumetotal_out;
- Serial.print("\nVolume de Entrada = "); //Imprime Volume de Entrada =
- Serial.print(volume_in); //Imprime na serial o valor da vazão
- Serial.print(" ml "); //Imprime ml
- Serial.print(i); //Imprime a contagem i (segundos)
- Serial.println("s"); //Imprime s indicando que está em segundos
- Serial.print("Volume de Saida = "); //Imprime Volume de Saida =
- Serial.print(volume_out); //Imprime na serial o valor da vazão
- Serial.print(" ml "); //Imprime ml
- Serial.print(i); //Imprime a contagem i (segundos)
- Serial.println("s"); //Imprime s indicando que está em segundos
- if(i==10)
- {
- Serial.print("\n\n\nPulsos de Entrada = "); // Imprime a frase Pulsos de Entrada =
- Serial.print(contapulsototal_in); //Imprime a quantidade de pulsos
- Serial.print("\nVolume Total de Entrada = "); // Imprime a frase Volume Total de entrada =
- Serial.print(volumetotal_in); //Imprime o valor do volume total
- Serial.println(" ml "); //Imprime ml
- Serial.print("\nPulsos de Saida = "); // Imprime a frase Pulsos de Saida =
- Serial.print(contapulsototal_out); //Imprime a quantidade de pulsos
- Serial.print("\nVolume Total de Saida = "); // Imprime a frase Volume Total de saida =
- Serial.print(volumetotal_out); //Imprime o valor do volume total
- Serial.println(" ml "); //Imprime ml
- Serial.print("\n\nVolume no Tanque = "); // Imprime a frase Volume no Tanque =
- Serial.print(resultante); //Imprime o volume contido no tanque
- Serial.println(" ml \n\n"); //Imprime ml
- i=0;
- volumetotal_in = volumetotal_in;
- volumetotal_out = volumetotal_out;
- }
- }
- //-------------------------------------------------------------
- void incpulso ()
- {
- contapulso_in++; //Incrementa a variável de contagem dos pulsos
- }
- //----------------------------------------------------------------
- void decpulso ()
- {
- contapulso_out++; //Incrementa a variável de contagem dos pulsos
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement