#pragma once class Pin { public: Pin(int pinNumber, bool isOutput = true, bool isLed = false, uint32_t ledFrequency = 5000, uint8_t ledChannel = 0); void setHigh(); void setLow(); void setLedLevel(uint32_t level); bool read(); int getPinNumber() const; bool isOutput() const; private: uint8_t ledChannel = 0; // LED channel for PWM uint8_t pinNumber; bool output; bool isLed = false; // Flag to indicate if this pin is used for LED control };