Files
ESPHome/ifan04.h

29 lines
741 B
C++

#include "esphome.h"
using namespace esphome;
class IFan04Output : public Component, public FloatOutput {
public:
void write_state(float state) override {
if (state < 0.3) {
// OFF
digitalWrite(14, LOW);
digitalWrite(12, LOW);
digitalWrite(15, LOW);
} else if (state < 0.6) {
// low speed
digitalWrite(14, HIGH);
digitalWrite(12, LOW);
digitalWrite(15, LOW);
} else if (state < 0.9) {
// medium speed
digitalWrite(14, HIGH);
digitalWrite(12, HIGH);
digitalWrite(15, LOW);
} else {
// high speed
digitalWrite(14, HIGH);
digitalWrite(12, LOW);
digitalWrite(15, HIGH);
}
}
};