#define INJECTOR_PIN 2
#define PUMP_PIN 3
#define MAF_PIN A0
#define SOLENOID1_PIN 4
#define SOLENOID2_PIN 5
#define SOLENOID3_PIN 6
unsigned long pulseDuration, pulseFrequency, previousMillis = 0;
double pulseProduct;
//-------------------------------------------------------------
void setup() {
Serial.begin(115200);
pinMode(INJECTOR_PIN, INPUT);
pinMode(PUMP_PIN, OUTPUT);
pinMode(MAF_PIN, INPUT);
pinMode(SOLENOID1_PIN, OUTPUT);
pinMode(SOLENOID2_PIN, OUTPUT);
pinMode(SOLENOID3_PIN, OUTPUT);
Serial.println(" Start");
}
//-------------------------------------------------------------
void loop() {
if (millis() - previousMillis >= 50) {
previousMillis = millis();
pulseDuration = pulseIn(INJECTOR_PIN, HIGH);
pulseFrequency = 60000 / pulseDuration; // Frequency in minutes
pulseProduct = pulseDuration * pulseFrequency;
if (pulseFrequency > 25) {
analogWrite(PUMP_PIN, pulseProduct * 4);
} else if (pulseProduct == 0.3) {
analogWrite(PUMP_PIN, 0.18 * 255);
} else if (pulseProduct == 5.7) {
analogWrite(PUMP_PIN, 255);
} else {
analogWrite(PUMP_PIN, 0);
}
float mafVoltage = analogRead(MAF_PIN) * (5.0 / 1023.0);
Serial.println(analogRead(MAF_PIN));
if (mafVoltage > 1.7) {
analogWrite(SOLENOID1_PIN, 0.5 * 255);
}
if (mafVoltage > 2.8) {
analogWrite(SOLENOID2_PIN, 0.5 * 255);
}
if (mafVoltage > 3.9) {
analogWrite(SOLENOID3_PIN, 0.5 * 255);
}
}
}