Aquarium Cooling Controller
ESP32 firmware for aquarium cooling fan control, monitoring, telemetry, and fault handling.
Loading...
Searching...
No Matches
fan_curve.h
Go to the documentation of this file.
1#pragma once
2
12#include <Arduino.h>
13
22 uint8_t pwmPercent;
23 uint16_t rpm;
24};
25
26namespace FanCurve {
27
36constexpr uint8_t kStartPwmPercent = 12;
37constexpr uint8_t kMinimumHoldPwmPercent = 10;
38constexpr uint8_t kMinimumPlausibilityPwmPercent = 18;
39constexpr uint8_t kPlausibilityTolerancePercent = 12;
40
46size_t pointCount();
47
53const FanCurvePoint* points();
54
65uint16_t expectedRpmForPwm(uint8_t pwmPercent);
66
73uint16_t rpmToleranceForExpected(uint16_t expectedRpm);
74
81bool isPlausibilityRegion(uint8_t pwmPercent);
82
83} // namespace FanCurve
Fan characterization table and interpolation helpers.
Definition fan_curve.cpp:41
constexpr uint8_t kPlausibilityTolerancePercent
RPM tolerance around the expected curve.
Definition fan_curve.h:39
bool isPlausibilityRegion(uint8_t pwmPercent)
Checks whether a PWM command is high enough for RPM plausibility checks.
Definition fan_curve.cpp:90
constexpr uint8_t kMinimumHoldPwmPercent
Lowest PWM used after the fan is spinning.
Definition fan_curve.h:37
const FanCurvePoint * points()
Returns the measured fan-curve table.
Definition fan_curve.cpp:47
uint16_t rpmToleranceForExpected(uint16_t expectedRpm)
Calculates the tolerated RPM deviation for an expected speed.
Definition fan_curve.cpp:80
size_t pointCount()
Returns the number of measured fan-curve points.
Definition fan_curve.cpp:43
uint16_t expectedRpmForPwm(uint8_t pwmPercent)
Interpolates the expected RPM for a PWM command.
Definition fan_curve.cpp:51
constexpr uint8_t kMinimumPlausibilityPwmPercent
Minimum PWM where RPM plausibility is checked.
Definition fan_curve.h:38
constexpr uint8_t kStartPwmPercent
PWM where the fan reliably starts.
Definition fan_curve.h:36
One measured point in the fan curve.
Definition fan_curve.h:21
uint16_t rpm
Measured fan speed at the PWM command.
Definition fan_curve.h:23
uint8_t pwmPercent
Fan PWM command in percent.
Definition fan_curve.h:22