Hallo,
ist es möglich folgenden Code zum seriellen Debuggen einer Variablen:
int variable1 = 123;
//Seriel Debugging
Serial.print("variable1 = ");Serial.print(varibale1);
durch folgende Abkürzung/Vereinfachung zu ersetzen?:
#define SerialDebug(var); Serial.print("##var = ");Serial.print(var);
//...
int variable2 = 456;
SerialDebug(variable2);
Problem: mit "" wir genau ##var ausgegeben, ohne "" meckert der Compiler 
Vielen Dank!
Eine Raute weniger. ## ist für das Konkatenieren von Strings:
https://gcc.gnu.org/onlinedocs/cpp/Stringification.html#Stringification
#define DEBUG
#ifdef DEBUG
#define SerialDebug(var) Serial.print(#var); Serial.print(" = "); Serial.println(var);
#else
#define SerialDebug(var)
#endif
void setup()
{
Serial.begin(9600);
}
void loop()
{
int test1 = 52;
char test2[] = "string";
SerialDebug(test1);
SerialDebug(test2);
delay(1000);
}
Wenn du #define DEBUG auskommentierst, kannst du mit einer Zeile alle Debug Ausgaben abschalten 
Was muss ich beachten, wenn der ganze Serial Code in eine mySerial.h und mySerial.cpp gewandert ist, und ich aber gerne das #Define DEBUG im Hautsketch (.ino) setzen möchte oder nicht?
Ich habe gelesen, dass das #Define dann vor dem #include mySerial.h im .ino erfolgen muss. Führt leider bei mir nicht zum gewünschten Erfolg. Ich nutze aber auch #define DEBUG0 = 1 und dann #if (DEBUG0 == 1).
Mal ein Paar Code-Schnipsel (das ganze ist schon recht umfänglich):
mySerial.h
#ifndef mySerial_h // prevent of multiple includings
#define mySerial_h
//### Includes ##########################################################################
#include <Arduino.h> // general Arduino defines
#include "myHelper.h" // Helper Defines
//### Defines setable ###################################################################
#define WITH_SERIAL 1 // 1: with Serial, 0: no Serial
#define DEBUG_0_enable 1 // for FCN-execution
#define DEBUG_1_enable 0 // for...
//...
//### WITH SERIAL #######################################################################
#if (WITH_SERIAL == 1) // Only if def. with Serial
//...
extern bool debug_0;
#if (DEBUG_0_enable == 1)
#define DEBUG_0(a,b,c,d,e); if(debug_0){SPRF("> ");SPR(millis());\
SPRF("\t");SPR(a);SPRF("\t");SPR(b);\
SPRF("\t");SPR(c);SPRF("\t");SPR(d);\
SPRF("\t");SPR(e);}
#define DEBUGL_0(a,b,c,d,e); if(debug_0){DEBUG_0(a,b,c,d,e);}
#else
#define DEBUG_0(a,b,c,d,e); a;b;c;d;e; // Debug Disabeld
#define DEBUGL_0(a,b,c,d,e); a;b;c;d;e; // Debug Disabeld
#endif
//...
Und in der .ino würde ich dann gerne die Defines Setzen statt im Serial.h - geht das? .ino-File:
//### Defines setable ###################################################################
//#define WITH_SERIAL 1 // 1: with Serial, 0: no Serial in mySerial.h
#define RS232_SPEED 230400 // Serial Speed [Baud]
//#define DEBUG_0_enable 1 // for FCN-execution
//#define DEBUG_1_enable 0 // for...
//***************************************************************************************
//### Includes ##########################################################################
#include "mySerial.h" // my Serial Defines
#include "myHelper.h" // Helper Defines
//...