const int pumpAPin = 9;  // Pin for Pump A
const int pumpBPin = 10; // Pin for Pump B
// Variables for the current amounts of Liquid A and Liquid B
float liquidA = 1.0; // ml, starting from 0
float liquidB = 1.0;  // ml, starting from 0
// Target ratio (5:2)
float targetRatio = 5.0 / 2.0;
// Variable to keep track of the total volume delivered
float totalVolume = 0.0;
void setup() {
  pinMode(pumpAPin, OUTPUT);
  pinMode(pumpBPin, OUTPUT);
  // Initialize pumps and other setup as needed
  Serial.begin(9600);
}
void loop() {
  // Calculate the current ratio
  float currentRatio = liquidA / liquidB;
  Serial.print("Current Amount - Liquid A: ");
  Serial.print(liquidA, 2); // Displaying with 2 decimal places
  Serial.print(" ml\t");
  Serial.print("Liquid B: ");
  Serial.print(liquidB, 2); // Displaying with 2 decimal places
  Serial.println(" ml");
  Serial.print("Current ratio: ");
  Serial.println(currentRatio, 2);
  if (currentRatio > targetRatio) {
    // Dispense more Liquid B
    digitalWrite(pumpBPin, HIGH);
    digitalWrite(pumpAPin, LOW);
    delay(1000);  // Adjust this delay for your system
    digitalWrite(pumpBPin, LOW);
    liquidB += 4.0;
  } else {
    // Dispense more Liquid A or stop both pumps if the ratio is as desired
    digitalWrite(pumpAPin, HIGH);
    digitalWrite(pumpBPin, LOW);
   delay(1000);  // Adjust this delay for your system
    digitalWrite(pumpAPin, LOW);
    liquidA += 3.0;
  }
  // Update the total volume delivered
  totalVolume = liquidA + liquidB;
  Serial.print("Total Volume Delivered: ");
  Serial.print(totalVolume, 2); // Displaying with 2 decimal places
  Serial.println(" ml");
  delay(500);
}