/********* Pleasedontcode.com **********

	Pleasedontcode thanks you for automatic code generation! Enjoy your code!

	- Terms and Conditions:
	You have a non-exclusive, revocable, worldwide, royalty-free license
	for personal and commercial use. Attribution is optional; modifications
	are allowed, but you're responsible for code maintenance. We're not
	liable for any loss or damage. For full terms,
	please visit pleasedontcode.com/termsandconditions.

	- Project: Flow Control
	- Source Code compiled for: Arduino Uno
	- Source Code created on: 2023-12-07 00:30:13

********* Pleasedontcode.com **********/

/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
	/* read flow meter and print on serial monitor. */
/****** END SYSTEM REQUIREMENTS *****/

/****** DEFINITION OF LIBRARIES *****/
#include <Arduino.h>
#include <FlowSensor.h>

/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* read flow meter and print on serial monitor. */
/****** END SYSTEM REQUIREMENTS *****/

/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
void count();

/***** DEFINITION OF DIGITAL INPUT PINS *****/
const uint8_t flowmeter_YF_S401_OUT_PIN_D4 = 4;

/***** DEFINITION OF DIGITAL OUTPUT PINS *****/
const uint8_t VERDE_LED_PIN_D11 = 11;
const uint8_t ROSSO_LED_PIN_D12 = 12;

/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
FlowSensor flowSensor(YFS201, flowmeter_YF_S401_OUT_PIN_D4); // Instantiate FlowSensor class object

void count()
{
  flowSensor.count();
}

void setup(void)
{
  // put your setup code here, to run once:
  pinMode(flowmeter_YF_S401_OUT_PIN_D4, INPUT);
  pinMode(VERDE_LED_PIN_D11, OUTPUT);
  pinMode(ROSSO_LED_PIN_D12, OUTPUT);
  Serial.begin(9600); // Start serial communication

  // Initialize the flow sensor
  flowSensor.begin(count);
}

void loop(void)
{
  // put your main code here, to run repeatedly:
  // Read flow meter and print on serial monitor
  float flowRate = flowSensor.getFlowRate_h();
  Serial.print("Flow rate: ");
  Serial.print(flowRate);
  Serial.println(" L/min");
  delay(1000); // Delay for 1 second
}
