При разработке проекта важна отладка, мы делаем её средствами Serial.println(). Чтобы после окончания разработки не убирать из кода все вызовы Serial и не нагружать код условными конструкциями ifdef DEBUG…. endif, можно сделать так: ifdef DEBUG_ENABLE define DEBUG(x) Serial.println(x) else define DEBUG(x) endif Если DEBUG_ENABLE задефайнен – все вызовы DEBUG() в коде будут заменены на вывод в порт. Если не задефайнен – они будут заменены НИЧЕМ, то есть просто “вырежутся” из кода! Также по DEBUG_ENABLE можно запустить сериал и получить полный контроль над отладкой: если она не нужна – убрали DEBUG_ENABLE и из кода убрался запуск порта и все выводы, что резко сокращает объём занимаемой памяти: // раздефайнить или задефайнить для использования// define DEBUG_ENABLE ifdef DEBUG_ENABLE define DEBUG(x) Serial.println(x) else define DEBUG(x) endifvoid setup() { ifdef DEBUG_ENABLE Serial.begin(9600); endif}void loop() { DEBUG("kek"); delay(100);}