Advertisement
Guest User

Dois sensores temp e fluxo

a guest
Sep 29th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #include <OneWire.h>
  2. #include <DallasTemperature.h>
  3.  
  4. // Conectar o pino central dos sensores ao pino 10 do Arduino
  5. #define ONE_WIRE_BUS 10
  6.  
  7. // Setup a oneWire instance to communicate with any OneWire devices
  8. OneWire oneWire(ONE_WIRE_BUS);
  9.  
  10. // Pass our oneWire reference to Dallas Temperature.
  11. DallasTemperature sensors(&oneWire);
  12. DeviceAddress insideThermometer = { 0x28, 0x60, 0x8B, 0xCD, 0x05, 0x00, 0x00, 0xF7 };
  13.  
  14.  
  15. float vazao; //Variável para armazenar o valor em L/min
  16. int contaPulso; //Variável para a quantidade de pulsos
  17. int i=0; //Variável para contagem
  18.  
  19.  
  20. void setup(void)
  21. {
  22. // start serial port
  23. // ---> sera utilizada para enviar as duas medicoes
  24. Serial.begin(9600);
  25.  
  26.  
  27. // Start up the library
  28. sensors.begin();
  29. // set the resolution to 10 bit (good enough?)
  30. sensors.setResolution(insideThermometer, 10);
  31.  
  32.  
  33. pinMode(2, INPUT);
  34. attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
  35. Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
  36.  
  37. }
  38.  
  39. void printTemperature(DeviceAddress deviceAddress)
  40. {
  41. float tempC = sensors.getTempC(deviceAddress);
  42. if (tempC == -127.00)
  43. {
  44. Serial.print("Erro ao ler temperatura !");
  45. }
  46. else
  47. {
  48. Serial.print("C: ");
  49. Serial.print(tempC);
  50. Serial.print(" F: ");
  51. Serial.print(DallasTemperature::toFahrenheit(tempC));
  52. }
  53. }
  54.  
  55. void incpulso ()
  56. {
  57. contaPulso++; //Incrementa a variável de contagem dos pulsos
  58. }
  59.  
  60. void loop(void)
  61. {
  62.  
  63. contaPulso = 0; //Zera a variável para contar os giros por segundos
  64. sei(); //Habilita interrupção
  65. delay (1000); //Aguarda 1 segundo
  66. cli(); //Desabilita interrupção
  67.  
  68. vazao = contaPulso / 5.5; //Converte para L/min
  69. i++;
  70.  
  71. Serial.print(vazao); //Imprime na serial o valor da vazão
  72. Serial.print(" L/min - "); //Imprime L/min
  73. Serial.print(i); //Imprime a contagem i (segundos)
  74. Serial.println("s"); //Imprime s indicando que está em segundos
  75.  
  76. // delay(10000); ---> retirar para que não interfira na rotina que conta pulsos
  77. // irá imprimir a temperatura cada vez que for impressa a vazao acima
  78. sensors.requestTemperatures();
  79. Serial.print("Temperatura Sensor 1: ");
  80. printTemperature(insideThermometer);
  81. Serial.print("\n\r");
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement