Serieller Monitor (USB) nicht mit I2C (ana 4+5)?

hallo,
kann es sein, dass der Serielle Monitor (USB) nicht richtig bei der Verwendung von I2C (ana 4+5) funktioniert?

Wäre das erste mal, dass ich davon höre/lese. Wo ist dein Testsketch? Vielleicht erklärt der das Verhalten...

hier sind die Codes - Arduino als slave:
(edit: pins 0+1 waren damals nicht definiert gewesen:)

// Arduino I2C slave as a port multiplexer
// version 0.25a
//
// electrical setup:
// Touch sensor at pin digital 4     (digital input) (indicated by a LED)
// 10k Potentiometer at pin analog 0 (analog input)
// 3 LEDs at digital pin 9,10,11     (3x pwm output)
// ===>>> (best: a subset of  3, 5, 6, 9, 10, 11!)
//
// i2c as slave, dev addr. 0x03
//

#include <Wire.h>      // serial lib

#define NOPIN     129  // void pin address

// API constants
/*
#define INPUT  0
#define OUTPUT 1
#define LOW    0
#define HIGH   1
*/

// digital pins
byte led13       =13,  // intern write
     
     ledred      = 9,  // extern write
     ledyellow   =10,  // extern write
     ledgreen    =11;  // extern write
     
byte touchpin   =  4;  // extern read


byte i2cReply[14],     // bytes: chk 0+1, ana 2+3,4+5,6+7,8+9,10+11 dig 12(0-7) + 13(8-15)
     i2cInput[14];     // bytes: custom 0+1,
                       //        p1 2,  pwm1 3,
                       //        p2 4,  pwm2 5,
                       //        p3 6,  pwm3 7,
                       //        p4 8,  pwm4 9,
                       //        p5 10, pwm5 11,
                       //        p6 12, pwm6 13

//***********************************************************************************************
//***********************************************************************************************
void setup()
{   
  // digital pins, default settings: customizable

  pinMode( 2,  INPUT);
  pinMode( 3,  OUTPUT);  // pwm
  pinMode( 4,  INPUT);
  pinMode( 5,  OUTPUT);  // pwm
  pinMode( 6,  OUTPUT);  // pwm
  pinMode( 7,  INPUT);
  pinMode( 8,  INPUT);
  pinMode( 9,  OUTPUT);  // pwm
  pinMode(10,  OUTPUT);  // pwm
  pinMode(11,  OUTPUT);  // pwm
  pinMode(12,  INPUT);
  pinMode(13,  OUTPUT);  // LED internal
   
  Wire.begin(3);                // join i2c bus with dev address 0x03
  Wire.onReceive(receiveEvent); // register event
  Wire.onRequest(requestEvent); // register event
   
  memset (i2cReply, 0, sizeof(i2cReply)); // reset array
}

//***********************************************************************************************
//***********************************************************************************************
inline byte SetByteBit(byte source, byte bitval, byte bitnr) {
  source &= ~( 1 << bitnr) ;               // clear single bitval at pos bitnr
  source |= bitval << bitnr;               // set bitval to 0 or 1   
  return source;
}
 
//***********************************************************************************************
inline byte GetByteBit(byte source, byte bitnr) { 
  return (source & (1 << bitnr) ) != 0;    // read bitval at pos bitnr     
}


//***********************************************************************************************
byte digpinMode(byte pinnr) {             // returns pinmode setting: OUTPUT (1) or INPUT (0) ?
   if(pinnr<8) 
    return ((DDRD & (1<<pinnr))!=0);
  else    if(pinnr<14)                    // for Arduino Uno: 14 digital pins 0..13
    return ((DDRB & (1<<(pinnr-8)))!=0);
}

//***********************************************************************************************
//***********************************************************************************************
void receiveEvent(int byteCount){
    char i=0, j=0;
    int chksum=0;
       
    while(Wire.available()) {
      i2cInput[i] = Wire.read();
      chksum+=i2cInput[i];       // später optimieren!     
      i++;                       // number of bytes read
    }

    //  parse input string:   
    // Input[0]+[1]: custom bytes; [2]...[13]: pins+pwms
    for (j=2; j<14; ++j) {       
      if( (i2cInput[j]!=0)&&(i2cInput[j]!=NOPIN) ) analogWrite(i2cInput[j],i2cInput[j+1]);
      j++;
    }
   
}
//***********************************************************************************************

void requestEvent() {

  Wire.write(i2cReply, sizeof(i2cReply));  // respond with message (sizeof) bytes
}


//***********************************************************************************************
//***********************************************************************************************

void writedigToi2creply(byte digpin, byte byteval){
  byte bitbyte;
 
  if((digpin>=0)&&(digpin<8))  {
    bitbyte=SetByteBit(bitbyte, byteval, digpin);
    i2cReply[12]=bitbyte;
  }
  else
  if((digpin>=8)&&(digpin<16)) {
    bitbyte=SetByteBit(bitbyte, byteval, digpin-8);
    i2cReply[13]=bitbyte;
  }
}

//***********************************************************************************************

void writeanaToi2creply(byte anapin, int intval) {
  byte slot;
 
  slot=(anapin+1)*2;
  i2cReply[slot] =highByte(intval);             
  i2cReply[slot+1]=lowByte(intval); 
}

//***********************************************************************************************
//***********************************************************************************************

void loop()
{
  int  intval;
  byte byteval, pin;
  memset (i2cReply, 0, sizeof(i2cReply));
 
  pin=touchpin;                         // poll + send digital pins - probably even in a for-loop
 
  if(digpinMode(pin)==INPUT) {
    byteval=digitalRead(pin);                    // read digital: touchpin value
    writedigToi2creply(pin, byteval);            // read input value and write to i2creply array
  }
 
  digitalWrite(led13,byteval);                   // monitor digi 4 ==>> led13
   
  pin=0;                                // poll + send analog pins
 
  intval=analogRead(pin);                        // read analog: value 0
  writeanaToi2creply(pin, intval);               // write to i2creply array

  delay(20);
}

ich habe versucht, die Arduino-pin-Werte auf dem serial Monitor auszugeben, erhielt aber nur völlig wirre Zeichenfolgen, sowohl auf dem Monitor als auch beim NXT-Master.
Kaum habe ich das serial rausgelöscht, lief alles perfekt.

ps
die Version inkl serial Monitor existiert leider nicht mehr, ich dachte nur, vllt ist das Problem schon irgendwem bekannt.

habe die codes und Einstellungen wiedergefunden:

nach dem Abschalten des serial Monitors hat es wie gesagt einwandfrei funktioniert.
Das forums-Mitglied, das auf meine Frage geantwortet hat, hatte die Idee, dass es mit serial + i2c zusammenhängen könnte!