Advertisement
Guest User

Untitled

a guest
Nov 11th, 2015
735
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. //Código para utilização de 2 sensores de fluxo de efeito Hall para medição de volume em reservatório
  2.  
  3. float volume_in; //Variável para armazenar o valor em ml instantâneo
  4. float volume_out; //Variável para armazenar o valor em ml instantâneo
  5. int contapulso_in; //Variável para a quantidade de pulsos de entrada
  6. int contapulso_out; //Variável para a quantidade de pulsos de saída
  7. int contapulsototal_in; //Variável que registra o total de pulsos de entrada
  8. int contapulsototal_out; //Variável que registra o total de pulsos de saída
  9. int i=0; //Variável para contagem
  10. float volumetotal_in= 0; //Variável para armazenar o valor em ml total de entrada
  11. float volumetotal_out= 0; //Variável para armazenar o valor em ml total de entrada
  12. float resultante; //Variável para armazenar o volume em ml armazenado no reservatório
  13. //-----------------------------------------------------
  14. void setup()
  15. {
  16. Serial.begin(9600); //Inicia a serial com um baud rate de 9600
  17. pinMode(2, INPUT);
  18. attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
  19. attachInterrupt(1, decpulso, RISING); //Configura o pino 3(Interrupção 1) para trabalhar como interrupção
  20. Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
  21. }
  22. //-----------------------------------------------------
  23. void loop ()
  24. {
  25. contapulso_in = 0; //Zera a variável para contar os giros por segundo
  26. contapulso_out = 0; //Zera a variável para contar os giros por segundo
  27. sei(); //Habilita interrupção
  28. delay (1000); //Aguarda 1 segundo
  29. cli(); //Desabilita interrupção
  30.  
  31. // Volume in
  32.  
  33. volume_in = contapulso_in * 2.25; //Converte para ml
  34. contapulsototal_in = contapulsototal_in+contapulso_in;
  35. volumetotal_in=volumetotal_in+volume_in; //Soma a volume para o calculo da media
  36.  
  37. // Volume out
  38.  
  39. volume_out = contapulso_out * 2.25; //Converte para ml
  40. contapulsototal_out = contapulsototal_out+contapulso_out;
  41. volumetotal_out=volumetotal_out+volume_out; //Soma a volume para o calculo da media
  42. i++;
  43. resultante = volumetotal_in-volumetotal_out;
  44.  
  45. Serial.print("\nVolume de Entrada = "); //Imprime Volume de Entrada =
  46. Serial.print(volume_in); //Imprime na serial o valor da vazão
  47. Serial.print(" ml "); //Imprime ml
  48. Serial.print(i); //Imprime a contagem i (segundos)
  49. Serial.println("s"); //Imprime s indicando que está em segundos
  50. Serial.print("Volume de Saida = "); //Imprime Volume de Saida =
  51. Serial.print(volume_out); //Imprime na serial o valor da vazão
  52. Serial.print(" ml "); //Imprime ml
  53. Serial.print(i); //Imprime a contagem i (segundos)
  54. Serial.println("s"); //Imprime s indicando que está em segundos
  55. if(i==10)
  56. {
  57. Serial.print("\n\n\nPulsos de Entrada = "); // Imprime a frase Pulsos de Entrada =
  58. Serial.print(contapulsototal_in); //Imprime a quantidade de pulsos
  59. Serial.print("\nVolume Total de Entrada = "); // Imprime a frase Volume Total de entrada =
  60. Serial.print(volumetotal_in); //Imprime o valor do volume total
  61. Serial.println(" ml "); //Imprime ml
  62. Serial.print("\nPulsos de Saida = "); // Imprime a frase Pulsos de Saida =
  63. Serial.print(contapulsototal_out); //Imprime a quantidade de pulsos
  64. Serial.print("\nVolume Total de Saida = "); // Imprime a frase Volume Total de saida =
  65. Serial.print(volumetotal_out); //Imprime o valor do volume total
  66. Serial.println(" ml "); //Imprime ml
  67. Serial.print("\n\nVolume no Tanque = "); // Imprime a frase Volume no Tanque =
  68. Serial.print(resultante); //Imprime o volume contido no tanque
  69. Serial.println(" ml \n\n"); //Imprime ml
  70. i=0;
  71. volumetotal_in = volumetotal_in;
  72. volumetotal_out = volumetotal_out;
  73. }
  74. }
  75. //-------------------------------------------------------------
  76. void incpulso ()
  77. {
  78. contapulso_in++; //Incrementa a variável de contagem dos pulsos
  79. }
  80. //----------------------------------------------------------------
  81. void decpulso ()
  82. {
  83. contapulso_out++; //Incrementa a variável de contagem dos pulsos
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement