/* 孤独的二进制
面向对象点灯
*/
class Led {
private: //self and friends
byte _pin;
public:
void setPin(byte pin_param);
byte getPin() const;
void on() const;
void off() const;
void toggle() const;
};
void Led::setPin(byte pin_param) {
if ((pin_param < 40) && (pin_param >= 0)) {
_pin = pin_param;
pinMode(_pin, OUTPUT);
} else {
_pin = 2;
Serial.println("invalid pin number, use default pin 2 instead");
}
}
byte Led::getPin() const {
return _pin;
}
void Led::on() const {
digitalWrite(_pin, HIGH);
}
void Led::off() const {
digitalWrite(_pin, LOW);
}
void Led::toggle() const {
digitalWrite(_pin, !digitalRead(_pin));
}
Led ledGreen, ledYellow, ledRed;
void setup() {
Serial.begin(115200);
ledGreen.setPin(33);
ledYellow.setPin(26);
ledRed.setPin(27);
//on
// digitalWrite(33, HIGH);
ledGreen.on();
ledYellow.on();
ledRed.on();
delay(1000);
//off
// digitalWrite(33, LOW);
ledGreen.off();
ledYellow.off();
ledRed.off();
delay(1000);
Serial.print(sizeof(ledGreen));
Serial.println(" Bytes");
}
void loop() {
//toggle
//digitalWrite(33,!digitalRead(33));
ledGreen.toggle();
ledYellow.toggle();
ledRed.toggle();
delay(100);
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C