#pragma once #include class UsbMidiTransport; class ExpressionPedal { public: ExpressionPedal(uint8_t adc_pin = 5); void begin(); void update(UsbMidiTransport& midi); uint8_t get_value() const { return current_value; } private: uint8_t adc_pin; uint8_t current_value; uint8_t last_sent_value; uint8_t midi_channel; uint8_t midi_cc; static const uint8_t HYSTERESIS = 3; static const uint16_t READ_INTERVAL_MS = 20; uint32_t last_read_time; uint8_t adc_to_midi(uint16_t adc_value); };