bin jetzt ein stückchen weiter gekommen...

habe jetzt die sketche vereinfacht, auch den timer und die interrupt routine entfernt, habe statt dessen "tone" eingesetzt - geht offensichtlich auch

ich sende die zahlen von 1 bis 99, speichere sie in einem array und drucke sie nach einer pause am seriellen monitor aus. So weit so gut, nur sind die empfangenen zahlen alles andere als 1 bis 99!

ich vermute, dass ich hier zeitprobleme, bzw. keine koordinierten aktionen zwischen sender und empfänger habe. Wie mache ich so einen "handshake?

der sender:

Code:
// am pin8 ist der verstärker mit der IR-LED angeschlossen

// am pin 9 ist die die grüne kontroll LED angeschlossen

uint8_t i;



void setup() 
{

  // pin 8 ist ein Ausgabe-Pin - IR -LED
  pinMode(8, OUTPUT);
  //pin 9 ist ein Ausgabe-Pin - grüne LED
  pinMode(9, OUTPUT);

  Serial1.begin(9600);
  Serial.begin(9600);

}

void loop() 
{

  //  //zahlen von 1 bis 99 senden
  for(i=1; i<=99; i++)
    //for(i=99; i>=1; i--)
  {


    tone (8, 36000);
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);

    delay(550);//550

    Serial1.println(i);
    Serial.println(i);

    tone (8, 0);
    digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);

    delay(230);//230

  }
  //delay(1000);
}
der empfänger:

Code:
//out-pin des TSOP angeschlossen an RX1 (serial1)

int i;

uint8_t my_data_ein[] = {0};


void setup()
{

  Serial1.begin(9600);
  Serial.begin(9600);
}


void loop()
{

  while(Serial1.available()) 
  {
    for(i=1; i<=99; i++)
      //for(i=9; i>=1; i--)
    {
      my_data_ein[i] = Serial1.read();
    }
    delay(2000);

    for(i=1; i<=99; i++)
      //for(i=9; i>=1; i--)
    {
      Serial.println(my_data_ein[i]);
    }


  }

}
die daten, die ankommen, wenn der sender an ist, 7 wiederholungen, so gut wie keine unterschiede, nur am anfang ein paar ausreisser...

Code:
     
1 1 1 1 1 1 1
0 0 0 0 0 0 0
107 65 20 100 55 7 81
121 107 92 76 62 45 28
10 19 28 37 46 55 64
0 0 0 0 0 0 0
0 0 0 0 0 0 0
60 247 179 109 41 226 156
10 18 27 36 45 53 62
0 0 0 0 0 0 0
0 0 0 0 0 0 0
4 4 4 4 4 4 4
2 2 2 2 2 2 2
0 0 0 0 0 0 0
0 0 0 0 0 0 0
232 232 232 232 232 232 232
3 3 3 3 3 3 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
232 232 232 232 232 232 232
2 2 2 2 2 2 2
164 164 164 164 164 164 164
2 2 2 2 2 2 2
53 53 53 53 53 53 53
1 1 1 1 1 1 1
52 52 52 52 52 52 52
1 1 1 1 1 1 1
48 48 48 48 48 48 48
1 1 1 1 1 1 1
49 49 49 49 49 49 49
1 1 1 1 1 1 1
50 50 50 50 50 50 50
1 1 1 1 1 1 1
54 54 54 54 54 54 54
1 1 1 1 1 1 1
4 4 4 4 4 4 4
3 3 3 3 3 3 3
7 7 7 7 7 7 7
5 5 5 5 5 5 5
1 1 1 1 1 1 1
0 0 0 0 0 0 0
4 4 4 4 4 4 4
2 2 2 2 2 2 2
0 0 0 0 0 0 0
0 0 0 0 0 0 0
232 232 232 232 232 232 232
3 3 3 3 3 3 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
112 112 112 112 112 112 112
3 3 3 3 3 3 3
44 44 44 44 44 44 44
3 3 3 3 3 3 3
213 213 213 213 213 213 213
0 0 0 0 0 0 0
212 212 212 212 212 212 212
0 0 0 0 0 0 0
208 208 208 208 208 208 208
0 0 0 0 0 0 0
209 209 209 209 209 209 209
0 0 0 0 0 0 0
210 210 210 210 210 210 210
0 0 0 0 0 0 0
214 214 214 214 214 214 214
0 0 0 0 0 0 0
4 4 4 4 4 4 4
3 3 3 3 3 3 3
7 7 7 7 7 7 7
5 5 5 5 5 5 5
1 1 1 1 1 1 1
0 0 0 0 0 0 0
4 4 4 4 4 4 4
2 2 2 2 2 2 2
0 0 0 0 0 0 0
0 0 0 0 0 0 0
232 232 232 232 232 232 232
3 3 3 3 3 3 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
248 248 248 248 248 248 248
3 3 3 3 3 3 3
180 180 180 180 180 180 180
3 3 3 3 3 3 3
205 205 205 205 205 205 205
0 0 0 0 0 0 0
204 204 204 204 204 204 204
0 0 0 0 0 0 0