29 lines
741 B
C++
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);
|
|
}
|
|
}
|
|
}; |