В данной статье рассмотрим создание класса счётчика срабатываний датчика инфракрасного света на компараторе LM393. На датчике расположены три контакта, GND, OUT и VCC. Сигнал будем считывать с контакта OUT функцией digitalRead. Исходный код класса на Arduino C++: class TriggerCounter { public: enum TickMode { ENTER = 0, // Увеличение/уменьшение значения счётчика на вход препятствия LEAVE = 1, // Увеличение/уменьшение значения счётчика на выход препятствия BOTH = 2 // Увеличение/уменьшение значения счётчика на вход и выход препятствия }; /* int input_pin - Контакт TickMode tick_mode - Режим тикания, на вход, выхлд или на вход и выход int input_straight = 0 - Признак движения (ленты) в прямом порядке, увеличение счётика на единицу на каждый тик int input_reversed = 0 - Признак движения (ленты) в обратном порядке, уменьшение счётчика на единицу на каждый тик int input_reset = 0 - Пин кнопки сброса счётчика в ноль */ TriggerCounter(int input_pin, TickMode tick_mode, int input_straight = 0,