Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <OneWire.h>
- #include <DallasTemperature.h>
- // Conectar o pino central dos sensores ao pino 10 do Arduino
- #define ONE_WIRE_BUS 10
- // Setup a oneWire instance to communicate with any OneWire devices
- OneWire oneWire(ONE_WIRE_BUS);
- // Pass our oneWire reference to Dallas Temperature.
- DallasTemperature sensors(&oneWire);
- DeviceAddress insideThermometer = { 0x28, 0x60, 0x8B, 0xCD, 0x05, 0x00, 0x00, 0xF7 };
- float vazao; //Variável para armazenar o valor em L/min
- int contaPulso; //Variável para a quantidade de pulsos
- int i=0; //Variável para contagem
- void setup(void)
- {
- // start serial port
- // ---> sera utilizada para enviar as duas medicoes
- Serial.begin(9600);
- // Start up the library
- sensors.begin();
- // set the resolution to 10 bit (good enough?)
- sensors.setResolution(insideThermometer, 10);
- pinMode(2, INPUT);
- attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
- Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
- }
- void printTemperature(DeviceAddress deviceAddress)
- {
- float tempC = sensors.getTempC(deviceAddress);
- if (tempC == -127.00)
- {
- Serial.print("Erro ao ler temperatura !");
- }
- else
- {
- Serial.print("C: ");
- Serial.print(tempC);
- Serial.print(" F: ");
- Serial.print(DallasTemperature::toFahrenheit(tempC));
- }
- }
- void incpulso ()
- {
- contaPulso++; //Incrementa a variável de contagem dos pulsos
- }
- void loop(void)
- {
- contaPulso = 0; //Zera a variável para contar os giros por segundos
- sei(); //Habilita interrupção
- delay (1000); //Aguarda 1 segundo
- cli(); //Desabilita interrupção
- vazao = contaPulso / 5.5; //Converte para L/min
- i++;
- Serial.print(vazao); //Imprime na serial o valor da vazão
- Serial.print(" L/min - "); //Imprime L/min
- Serial.print(i); //Imprime a contagem i (segundos)
- Serial.println("s"); //Imprime s indicando que está em segundos
- // delay(10000); ---> retirar para que não interfira na rotina que conta pulsos
- // irá imprimir a temperatura cada vez que for impressa a vazao acima
- sensors.requestTemperatures();
- Serial.print("Temperatura Sensor 1: ");
- printTemperature(insideThermometer);
- Serial.print("\n\r");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement