Advertisement
Guest User

Resposta ao Marcelo Ferreira

a guest
May 1st, 2015
1,195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.28 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