int Pino_Sensor = 11; //Variável de entrada do sensor de fluxo; int Pino_LED = 7; //Variável do pino digital para o LED; int Pino_Buzzer = 6; //Variável do pino digital para o Buzzer; float Calculo_Fluxo; //Variável para o calculo do valor de fluxo int Contagem_Total = 0; //variável para a contagem de pulsos; //Correr a função SETUP apenas uma vez após ser pressionado Reset: void setup(){ //Definição do tipo de pino digital (Saída ou entrada): pinMode(Pino_Sensor, INPUT); pinMode(Pino_LED, OUTPUT); pinMode(Pino_Buzzer, OUTPUT); //Iniciar a Comunicação Serie a 9600b/s: Serial.begin(9600); } //A rotina de LOOP e executada repetidamente: void loop(){ //Contagem do tempo de duração de cada pulso em nível Alto e nível baixo. Contagem_Total = (pulseIn(Pino_Sensor, HIGH) + pulseIn(Pino_Sensor, LOW)); //Contagem de numero de pulsos por segundo (1Seg = 1000000µSeg). Calculo_Fluxo = 1000000/Contagem_Total; //Multiplicação de (Num. Total de pulsos/Seg)x(Pulse Caracteristics), //(Ver na Datasheet Flow Sensor e cálculos acima): Calculo_Fluxo = (Calculo_Fluxo * 2.38); //Converte mL/s em mL/min: Calculo_Fluxo = Calculo_Fluxo * 60; //Converte mL/min em L/min Calculo_Fluxo = Calculo_Fluxo / 1000; if (Calculo_Fluxo < 0){ Calculo_Fluxo = 0; } else{ Calculo_Fluxo = Calculo_Fluxo; } //Escreve no monitor serial: Serial.print(Calculo_Fluxo); //Escreve no monitor serial: Serial.println(" L/min"); //Se Calculo_Fluxo maior 56,5: if (Calculo_Fluxo > 56.50 || Calculo_Fluxo < 10.10 ){ //Liga o LED (HIGH é nível alto): digitalWrite(Pino_LED, HIGH); //Liga o Buzzer (HIGH é nível alto): digitalWrite(Pino_Buzzer, HIGH); } else{ //Desliga o LED (LOW é nível baixo): digitalWrite(Pino_LED, LOW); //Desliga o Buzzer (LOW é nível baixo): digitalWrite(Pino_Buzzer, LOW); } }