Integrate relays, improve logging

This commit is contained in:
2022-09-18 16:09:21 -06:00
parent 1833ecf607
commit cc123773b5
3 changed files with 80 additions and 34 deletions
+13 -7
View File
@@ -30,31 +30,28 @@ void tickSimulation() {
simulatedPressure += pressureDelta;
lastTick = millis();
Serial.print("Simulated pressure: ");
Serial.println(simulatedPressure);
}
}
void measurePressure(float &pressureValue, int pin) {
void measurePressure(float &pressureValue) {
if (simulating) {
float adjusted = simulatedPressure + (random(-100, 100) / 100.0);
adjusted *= offsetMultiplier;
pressureValue = 0.99 * pressureValue + 0.01 * adjusted;
} else {
int sensorValue = analogRead(pin);
int sensorValue = analogRead(PRESSURE_SENSOR_PIN);
float adjusted = 0.098 * sensorValue - 16.56 + 3.58;
pressureValue = 0.99 * pressureValue + 0.01 * adjusted;
}
}
void resamplePressure(float &pressureValue, int pin) {
void resamplePressure(float &pressureValue) {
if (simulating) {
float adjusted = simulatedPressure + (random(-100, 100) / 100.0);
adjusted *= offsetMultiplier;
pressureValue = adjusted;
} else {
int sensorValue = analogRead(pin);
int sensorValue = analogRead(PRESSURE_SENSOR_PIN);
float adjusted = 0.098 * sensorValue - 16.56 + 3.58;
pressureValue = adjusted;
}
@@ -64,11 +61,20 @@ void setSoleniod(int solenoidState) {
if (solenoidState == SOLENOID_STOP) {
pressureChangeRate = 0.0;
offsetMultiplier = 1.0;
digitalWrite(RELAY1_PIN, HIGH);
digitalWrite(RELAY2_PIN, HIGH);
} else if (solenoidState == SOLENOID_INFLATE) {
pressureChangeRate = inflatePSIPerSecond;
offsetMultiplier = inflateOffsetMultiplier;
digitalWrite(RELAY1_PIN, LOW);
digitalWrite(RELAY2_PIN, HIGH);
} else if (solenoidState == SOLENOID_DEFLATE) {
pressureChangeRate = -deflatePSIPerSecond;
offsetMultiplier = deflatePSIPerSecond;
digitalWrite(RELAY1_PIN, HIGH);
digitalWrite(RELAY2_PIN, LOW);
}
}