Chat usando modulos RF con despliegue en pantalla LCD

Buena tarde quisiera de su apoyo, estoy realizando un proyecto que se trata de un chat que funciona por medio de RF y sale el despliegue en pantallas LCD.

el problema que tengo es que me saca el mensaje en la pantalla LCD, letra por letra de la palabra enviada.

les pido de su apoyo si alguien sebe como corregir ese problema.

RX__Comunicacion_433.ino (1.38 KB)

Debes poner tu codigo entre etiquetas code asi:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <VirtualWire.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
char inData[500];
int newmessage = 0;

void setup() {
   Serial.begin(9600);
   vw_setup(2000);
   vw_set_tx_pin(2);    //Tx
   vw_set_rx_pin(3);    //Rx
   vw_rx_start();       
}

void loop() {
   byte index = 0;
   char mss[200];         //buffer no es muy pequeño ?
   while (Serial.available() >= 1) {
      if (index < 499) {
         inData[index] = Serial.read();
         index++;
         delay(10);
         //inData[index] = '\0';   //Para que es esto ?
      }
      newmessage = 1;
   }

   if (newmessage == 1) {
      sprintf(mss, "%s", inData);
      vw_send((uint8_t *)mss, strlen(mss));
      vw_wait_tx();
      Serial.print("You: ");
      Serial.println(mss);
      delay(600);
      newmessage = 0;     // Indicate that there is no new message to wait for the new one
   }

   byte message[VW_MAX_MESSAGE_LEN];
   byte messageLength = VW_MAX_MESSAGE_LEN;
   if (vw_get_message(message, &messageLength)){
      Serial.print("Amiga: ");
      lcd.clear();
      lcd.print("Amiga: ");
      for (byte i=0; i<messageLength; i++){    
         lcd.init();
         lcd.backlight();
         Serial.write(message[i]);
         lcd.write(message[i]);
      }
      Serial.println();
      delay(1000);
   }
}