При разработке проекта важна отладка, мы делаем её средствами Serial.println().
Чтобы после окончания разработки не убирать из кода все вызовы Serial и не нагружать код условными конструкциями
#ifdef DEBUG…. #endif,
можно сделать так:
#ifdef DEBUG_ENABLE
#define DEBUG(x) Serial.println(x)
#else
#defineDEBUG(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) #endif void setup() { #ifdef DEBUG_ENABLE Serial.begin(9600); FALLING); #endif } void loop() { DEBUG("kek"); delay(100); }
Ссылка на источник: https://alexgyver.ru/arduino-algorithms/