user47251: Note :   
This question is completely different from the questions that I have asked before although the code snippets might be the same, So please do not waive it as a duplicate right when you see it.
In my setup I have connected two arduino's Serially. An Arduino Mega is the one that is sending the string and a Arduino Uno is the one that's receiving it.

Arduino Mega : TX1(19),RX1(18) - Serial1  
Arduino Uno : RX(10),TX(11) - using SoftwareSerial  
Gnd is connecetd on both boards  

Arduino UNO - code is same for both cases
#include <SoftwareSerial.h>
SoftwareSerial s(10, 11);
void setup() 
{
  delay(200);
  Serial.begin(9600);
  Serial1.begin(9600);  
  s.begin(9600);
  while (!Serial) ;  // wait for Arduino Serial Monitor  
}
void loop() 
{  
  if(s.available()>0)
  {
     Serial.print("\nrec\n");
     delay(100);
     String b = s.readStringUntil('\n');
     delay(100);
     Serial.print(b);
     delay(40);
  }

}
When the code in my arduino mega has only a print statement to send a string an infinite no. of times to the Uno, The Uno is receiving the string properly.
Arduino Mega
void setup()
{
  Serial1.begin(9600);
}
void loop() 
{
  Serial1.println("e2e4");   
  delay(100);
}

Now when I send the string an infinite no. of times from the Arduino mega but this time the mega has a lot more functions included in the program as well. In this case the Uno does not receive the string sent.
Arduino Mega - code containing a lot of functions and sedning a string to 
                  Uno
int SensorValStore_Prev[8][8] = { {0,0,0,0,0,0,0,0}, \
                                  {0,0,0,0,0,0,0,0}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {0,0,0,0,0,0,0,0}, \
                                  {0,0,0,0,0,0,0,0} };

int SensorValStore_Curr[8][8]={ {0,0,0,0,0,0,0,0}, \
                                {0,0,0,0,0,0,0,0}, \
                                {1,1,1,1,1,1,1,1}, \
                                {1,1,1,1,1,1,1,1}, \
                                {1,1,1,1,1,1,1,1}, \
                                {1,1,0,1,1,1,1,1}, \
                                {0,0,0,0,0,0,0,0}, \
                                {0,1,0,0,0,0,0,0} };
//int SensorValStore_Curr[8][8];
int sum1[8],sum2[8],temp[8][8],k,l,i,j,rank,nextRow;
String file,moveSan,Temp,bestMove;
char Buffer[20];
void doAction();
void ReadSensor();
void Difference();
void binToIntCalc();
void check();
void getMovePlayed();
void SendMove();
void getMove();

void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
  pinMode(22,INPUT_PULLUP); // Reed switch - Row1
  pinMode(24,INPUT_PULLUP); // Reed switch - Row2
  pinMode(26,INPUT_PULLUP); // Reed switch - Row3
  pinMode(28,INPUT_PULLUP); // Reed switch - Row4
  pinMode(30,INPUT_PULLUP); // Reed switch - Row5 
  pinMode(32,INPUT_PULLUP); // Reed switch - Row6 
  pinMode(34,INPUT_PULLUP); // Reed switch - Row7 
  pinMode(36,INPUT_PULLUP); // Reed switch - Row8 
  pinMode(2,INPUT_PULLUP);// Push Button
  pinMode(38,OUTPUT);
  pinMode(40,OUTPUT);
  pinMode(42,OUTPUT);
  pinMode(44,OUTPUT);
  pinMode(46,OUTPUT);
  pinMode(48,OUTPUT);
  pinMode(50,OUTPUT);
  pinMode(52,OUTPUT);
  pinMode(3,OUTPUT);
  digitalWrite(38,HIGH);
  digitalWrite(40,HIGH);
  digitalWrite(42,HIGH);
  digitalWrite(44,HIGH);
  digitalWrite(46,HIGH);
  digitalWrite(48,HIGH);
  digitalWrite(50,HIGH);
  digitalWrite(52,HIGH);
  digitalWrite(3,LOW);
}

void loop()
{

  // doAction();
  delay(40);
  Difference();
  delay(40);
  binToIntCalc();
  delay(40);
  check();
  delay(40);
  getMovePlayed();
  delay(40);
  getMove();
  delay(40);
  //}
}

void Print(int matrix[8][8])
{
  for(i=0;i<8;i++)
  {
    for(j=0;j<8;j++)
    {
      Serial.print(matrix[i][j]);
      Serial.print(" ");
    }
    Serial.println();
  }
}

void doAction()
{
  nextRow = 0;
  for(i=0;i<8;i++)
  {
    digitalWrite(38 + nextRow,LOW);
    delay(40);
    ReadSensor(i);
    digitalWrite(38 + nextRow,HIGH);
    delay(40);
    nextRow +=2;
  }
}

void ReadSensor(int iter)  
{
  delay(10);
  for(j=0;j<8;j++)
    SensorValStore_Curr[iter][j] = digitalRead(j+2);
}

void Difference()
{
  for(i=0;i<8;i++)
    for(j=0;j<8;j++)
      temp[i][j] = abs(SensorValStore_Curr[i][j] - SensorValStore_Prev[i[j]);

}

void binToIntCalc()
{
  for(i=0;i<8;i++)
    for(j=0;j<8;j++)
    {
      sum1[i] += pow(2,j)*SensorValStore_Prev[i][j];
      sum2[i] += pow(2,j)*SensorValStore_Curr[i][j];
    }
 }

void check()
{
  k=0;
  l=0;
  for(i=0;i<8;i++)
  {   
    if(sum2[i]>sum1[i])
      k = i;
    if(sum2[i]<sum1[i])
      l = i;
    delay(40);
  }
}

void getMovePlayed()
{
  for(j=0;j<8;j++)
  {
    if(temp[k][j] == 1)
    {
      rank =k+1;
      file = String(char(97+j));
      delay(40);
      moveSan = file + rank;
      Temp = moveSan;
    }
  }
  for(j=0;j<8;j++)
  { 
    if( temp[l][j] == 1)
    {
      rank =l+1;
      file = String(char(97+j));
      delay(40);
      moveSan = file + rank;
      Temp.concat(moveSan);
    }
  }
}

void SendMove(String movePlayed)
{
  Serial.println("start");
  Serial.print(movePlayed);
  Serial.println();
}

void getMove() // SENDING STRING TO THE ARDUINO UNO
{
 while(1){
  Serial1.println("e2e4");   
  delay(100);
  }
}

Note: getMove() is the function that sends the string to the arduino through Serial1

user47400: My answer might not be what you'd expect but I'll try anyway.
Did you troobleshoot your serial communications ? Try doing a simple programm for both cards and try sending data from one to another.
Uno code
#include <SoftwareSerial.h>

#define rxPin 10
#define txPin 11

SoftwareSerial s(rxPin, txPin);

String buff = "";

void setup()
{
    s.begin(9600);
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available)
    {
        while(Serial.available())
        {
            buff += char(Serial.read());
        }
        s.print(buff);
        buff="";
    }

    if(s.available)
    {
        while(s.available())
        {
            buff += char(s.read());
        }
        Serial.print(buff);
        buff = "";
    }
}

Mega code
String buff = "";

void setup()
{
    Serial1.begin(9600);
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available)
    {
        while(Serial.available())
        {
            buff += char(Serial.read());
        }
        Serial1.print(buff);
        buff="";
    }

    if(Serial1.available)
    {
        while(Serial1.available())
        {
            buff += char(Serial1.read());
        }
        Serial.print(buff);
        buff = "";
    }
}

Did you double check your connections ? Tx (mega) to rx (uno) and rx (mega) to tx(uno)
In your setup() on your arduino mega
void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
  pinMode(22,INPUT_PULLUP); // Reed switch - Row1
  pinMode(24,INPUT_PULLUP); // Reed switch - Row2
  pinMode(26,INPUT_PULLUP); // Reed switch - Row3
  pinMode(28,INPUT_PULLUP); // Reed switch - Row4
  pinMode(30,INPUT_PULLUP); // Reed switch - Row5 
  pinMode(32,INPUT_PULLUP); // Reed switch - Row6 
  pinMode(34,INPUT_PULLUP); // Reed switch - Row7 
  pinMode(36,INPUT_PULLUP); // Reed switch - Row8 
  pinMode(2,INPUT_PULLUP);// Push Button
  pinMode(38,OUTPUT);
  pinMode(40,OUTPUT);
  pinMode(42,OUTPUT);
  pinMode(44,OUTPUT);
  pinMode(46,OUTPUT);
  pinMode(48,OUTPUT);
  pinMode(50,OUTPUT);
  pinMode(52,OUTPUT);
  pinMode(3,OUTPUT);
  digitalWrite(38,HIGH);
  digitalWrite(40,HIGH);
  digitalWrite(42,HIGH);
  digitalWrite(44,HIGH);
  digitalWrite(46,HIGH);
  digitalWrite(48,HIGH);
  digitalWrite(50,HIGH);
  digitalWrite(52,HIGH);
  digitalWrite(3,LOW);
}

I don't see the Serial1.begin(9600) as said by @chrisl but you mentionned it above.
I hope this helps, sorry if I've not solved your problem.

47251: <p><b>Note :   </p>

<p>This question is completely different from the questions that I have asked before although the code snippets might be the same, So please do not waive it as a duplicate right when you see it.</b></p>

<p>In my setup I have connected two arduino's Serially. An Arduino Mega is the one that is sending the string and a Arduino Uno is the one that's receiving it.</p>

<ul>
<li>Arduino Mega : TX1(19),RX1(18) - Serial1  </li>
<li>Arduino Uno : RX(10),TX(11) - using SoftwareSerial  </li>
<li>Gnd is connecetd on both boards  </li>
</ul>

<p><b>Arduino UNO - code is same for both cases</b></p>

<pre><code>#include &lt;SoftwareSerial.h&gt;
SoftwareSerial s(10, 11);
void setup() 
{
  delay(200);
  Serial.begin(9600);
  Serial1.begin(9600);  
  s.begin(9600);
  while (!Serial) ;  // wait for Arduino Serial Monitor  
}
void loop() 
{  
  if(s.available()&gt;0)
  {
     Serial.print("\nrec\n");
     delay(100);
     String b = s.readStringUntil('\n');
     delay(100);
     Serial.print(b);
     delay(40);
  }
</code></pre>

<p>}</p>

<p>When the code in my arduino mega has only a print statement to send a string an infinite no. of times to the Uno, The Uno is receiving the string properly.</p>

<p><b>Arduino Mega</b></p>

<pre><code>void setup()
{
  Serial1.begin(9600);
}
void loop() 
{
  Serial1.println("e2e4");   
  delay(100);
}
</code></pre>

<p>Now when I send the string an infinite no. of times from the Arduino mega but this time the mega has a lot more functions included in the program as well. In this case the Uno <b>does not</b> receive the string sent.</p>

<p><b>Arduino Mega - code containing a lot of functions and sedning a string to 
                  Uno</b></p>

<pre><code>int SensorValStore_Prev[8][8] = { {0,0,0,0,0,0,0,0}, \
                                  {0,0,0,0,0,0,0,0}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {1,1,1,1,1,1,1,1}, \
                                  {0,0,0,0,0,0,0,0}, \
                                  {0,0,0,0,0,0,0,0} };

int SensorValStore_Curr[8][8]={ {0,0,0,0,0,0,0,0}, \
                                {0,0,0,0,0,0,0,0}, \
                                {1,1,1,1,1,1,1,1}, \
                                {1,1,1,1,1,1,1,1}, \
                                {1,1,1,1,1,1,1,1}, \
                                {1,1,0,1,1,1,1,1}, \
                                {0,0,0,0,0,0,0,0}, \
                                {0,1,0,0,0,0,0,0} };
//int SensorValStore_Curr[8][8];
int sum1[8],sum2[8],temp[8][8],k,l,i,j,rank,nextRow;
String file,moveSan,Temp,bestMove;
char Buffer[20];
void doAction();
void ReadSensor();
void Difference();
void binToIntCalc();
void check();
void getMovePlayed();
void SendMove();
void getMove();

void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
  pinMode(22,INPUT_PULLUP); // Reed switch - Row1
  pinMode(24,INPUT_PULLUP); // Reed switch - Row2
  pinMode(26,INPUT_PULLUP); // Reed switch - Row3
  pinMode(28,INPUT_PULLUP); // Reed switch - Row4
  pinMode(30,INPUT_PULLUP); // Reed switch - Row5 
  pinMode(32,INPUT_PULLUP); // Reed switch - Row6 
  pinMode(34,INPUT_PULLUP); // Reed switch - Row7 
  pinMode(36,INPUT_PULLUP); // Reed switch - Row8 
  pinMode(2,INPUT_PULLUP);// Push Button
  pinMode(38,OUTPUT);
  pinMode(40,OUTPUT);
  pinMode(42,OUTPUT);
  pinMode(44,OUTPUT);
  pinMode(46,OUTPUT);
  pinMode(48,OUTPUT);
  pinMode(50,OUTPUT);
  pinMode(52,OUTPUT);
  pinMode(3,OUTPUT);
  digitalWrite(38,HIGH);
  digitalWrite(40,HIGH);
  digitalWrite(42,HIGH);
  digitalWrite(44,HIGH);
  digitalWrite(46,HIGH);
  digitalWrite(48,HIGH);
  digitalWrite(50,HIGH);
  digitalWrite(52,HIGH);
  digitalWrite(3,LOW);
}

void loop()
{

  // doAction();
  delay(40);
  Difference();
  delay(40);
  binToIntCalc();
  delay(40);
  check();
  delay(40);
  getMovePlayed();
  delay(40);
  getMove();
  delay(40);
  //}
}

void Print(int matrix[8][8])
{
  for(i=0;i&lt;8;i++)
  {
    for(j=0;j&lt;8;j++)
    {
      Serial.print(matrix[i][j]);
      Serial.print(" ");
    }
    Serial.println();
  }
}

void doAction()
{
  nextRow = 0;
  for(i=0;i&lt;8;i++)
  {
    digitalWrite(38 + nextRow,LOW);
    delay(40);
    ReadSensor(i);
    digitalWrite(38 + nextRow,HIGH);
    delay(40);
    nextRow +=2;
  }
}

void ReadSensor(int iter)  
{
  delay(10);
  for(j=0;j&lt;8;j++)
    SensorValStore_Curr[iter][j] = digitalRead(j+2);
}

void Difference()
{
  for(i=0;i&lt;8;i++)
    for(j=0;j&lt;8;j++)
      temp[i][j] = abs(SensorValStore_Curr[i][j] - SensorValStore_Prev[i[j]);

}

void binToIntCalc()
{
  for(i=0;i&lt;8;i++)
    for(j=0;j&lt;8;j++)
    {
      sum1[i] += pow(2,j)*SensorValStore_Prev[i][j];
      sum2[i] += pow(2,j)*SensorValStore_Curr[i][j];
    }
 }

void check()
{
  k=0;
  l=0;
  for(i=0;i&lt;8;i++)
  {   
    if(sum2[i]&gt;sum1[i])
      k = i;
    if(sum2[i]&lt;sum1[i])
      l = i;
    delay(40);
  }
}

void getMovePlayed()
{
  for(j=0;j&lt;8;j++)
  {
    if(temp[k][j] == 1)
    {
      rank =k+1;
      file = String(char(97+j));
      delay(40);
      moveSan = file + rank;
      Temp = moveSan;
    }
  }
  for(j=0;j&lt;8;j++)
  { 
    if( temp[l][j] == 1)
    {
      rank =l+1;
      file = String(char(97+j));
      delay(40);
      moveSan = file + rank;
      Temp.concat(moveSan);
    }
  }
}

void SendMove(String movePlayed)
{
  Serial.println("start");
  Serial.print(movePlayed);
  Serial.println();
}

void getMove() // SENDING STRING TO THE ARDUINO UNO
{
 while(1){
  Serial1.println("e2e4");   
  delay(100);
  }
}
</code></pre>

<p><b>Note: getMove() is the function that sends the string to the arduino through Serial1</b></p>
 47400: <p>My answer might not be what you'd expect but I'll try anyway.</p>

<p>Did you troobleshoot your serial communications ? Try doing a simple programm for both cards and try sending data from one to another.</p>

<p>Uno code</p>

<pre><code>#include &lt;SoftwareSerial.h&gt;

#define rxPin 10
#define txPin 11

SoftwareSerial s(rxPin, txPin);

String buff = "";

void setup()
{
    s.begin(9600);
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available)
    {
        while(Serial.available())
        {
            buff += char(Serial.read());
        }
        s.print(buff);
        buff="";
    }

    if(s.available)
    {
        while(s.available())
        {
            buff += char(s.read());
        }
        Serial.print(buff);
        buff = "";
    }
}
</code></pre>

<p>Mega code</p>

<pre><code>String buff = "";

void setup()
{
    Serial1.begin(9600);
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available)
    {
        while(Serial.available())
        {
            buff += char(Serial.read());
        }
        Serial1.print(buff);
        buff="";
    }

    if(Serial1.available)
    {
        while(Serial1.available())
        {
            buff += char(Serial1.read());
        }
        Serial.print(buff);
        buff = "";
    }
}
</code></pre>

<p>Did you double check your connections ? Tx (mega) to rx (uno) and rx (mega) to tx(uno)</p>

<p>In your setup() on your arduino mega</p>

<pre><code>void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
  pinMode(22,INPUT_PULLUP); // Reed switch - Row1
  pinMode(24,INPUT_PULLUP); // Reed switch - Row2
  pinMode(26,INPUT_PULLUP); // Reed switch - Row3
  pinMode(28,INPUT_PULLUP); // Reed switch - Row4
  pinMode(30,INPUT_PULLUP); // Reed switch - Row5 
  pinMode(32,INPUT_PULLUP); // Reed switch - Row6 
  pinMode(34,INPUT_PULLUP); // Reed switch - Row7 
  pinMode(36,INPUT_PULLUP); // Reed switch - Row8 
  pinMode(2,INPUT_PULLUP);// Push Button
  pinMode(38,OUTPUT);
  pinMode(40,OUTPUT);
  pinMode(42,OUTPUT);
  pinMode(44,OUTPUT);
  pinMode(46,OUTPUT);
  pinMode(48,OUTPUT);
  pinMode(50,OUTPUT);
  pinMode(52,OUTPUT);
  pinMode(3,OUTPUT);
  digitalWrite(38,HIGH);
  digitalWrite(40,HIGH);
  digitalWrite(42,HIGH);
  digitalWrite(44,HIGH);
  digitalWrite(46,HIGH);
  digitalWrite(48,HIGH);
  digitalWrite(50,HIGH);
  digitalWrite(52,HIGH);
  digitalWrite(3,LOW);
}
</code></pre>

<p>I don't see the <code>Serial1.begin(9600)</code> as said by @chrisl but you mentionned it above.</p>

<p>I hope this helps, sorry if I've not solved your problem.</p>
