Problema en la visualizacion de la pantalla de datos transferidos por RF

hola a todos, estoy armando un proyecto de una estacion meteorologica inalambrica, resulta que cuando configuro todo los sensores y los trasfiero por RF por el modulo RF 433, en el receptor por el puerto serial veo perfecto todo los datos mandados por el emisor, ahora el problema se me da cuando configuro el display, cuando lo hago solo me muestra los valores resividos de 2 de las 6 variables que trasnfiere el emisor.
si alguno tiene alguna idea de a que se puede deber eso les agradezco.

saludos

Codigo Emisor

// EMISOR


#include <Wire.h> 
#include <Adafruit_Sensor.h>  
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp;   

float TEMPERATURA;    // variable para almacenar valor de temperatura
float PRESION;      // variable para almacenar valor de presion atmosferica
float ALTITUD;

#include <VirtualWire.h>
const int dataPin = 12;

#include "DHT.h"
#define DHTPIN 9 //Conectamos el Sensor al pin digital 9
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);

int SensorPin = A1; //Output from the sensor
int REF = A2; //3.3V power on the Arduino board
   
void setup()
{
   Serial.begin(9600);       // inicializa comunicacion serie a 9600 bps
  Serial.println("Iniciando:");     // texto de inicio
  if ( !bmp.begin() ) {       // si falla la comunicacion con el sensor mostrar
    Serial.println("BMP280 no encontrado !"); // texto y detener flujo del programa
    while (1);          
  }
    vw_setup(2000);
    vw_set_tx_pin(dataPin);
      pinMode(SensorPin, INPUT);
  pinMode(REF, INPUT);
  dht.begin();
}
 
void loop()
{
   String str;  
    char buf[VW_MAX_MESSAGE_LEN];
   TEMPERATURA = bmp.readTemperature();    // almacena en variable el valor de temperatura
  PRESION = bmp.readPressure()/100;   // almacena en variable el valor de presion divido
            // por 100 para covertirlo a hectopascales
  ALTITUD = bmp.readAltitude(1014.6);

int h = dht.readHumidity();    // Lee la humedad
int t= dht.readTemperature();

int uvLevel = averageAnalogRead(SensorPin);
int refLevel = averageAnalogRead(REF);  
//Use the 3.3V power pin as a reference to get a very accurate output value from sensor
  
  float outputVoltage = 3.3 / refLevel * uvLevel;
   float uvIntensity = mapfloat(outputVoltage, 0.99, 2.8, 0.0, 15.0); //Convert the voltage to a UV intensity level
      
   // tiempo
   int dataInt = millis() / 1000;
    str = "i" + String(dataInt); /// Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
    vw_wait_tx(); // Esperar envio
    
   // presion
   float dataFloat = PRESION;
    str = "f" + String(dataFloat); // Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
 //   vw_wait_tx(); // Esperar envio
    
    // temperatura 
   float dataFloat1 = TEMPERATURA;
    str = "g" + String(dataFloat1); // Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
   // vw_wait_tx(); // Esperar envio

      // Altitud
   float dataFloat2 = ALTITUD;
    str = "h" + String(dataFloat1); // Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
    //vw_wait_tx(); // Esperar envio

    // Humedad
   float dataFloat3 = h;
    str = "j" + String(dataFloat1); // Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
    // vw_wait_tx(); // Esperar envio

    // NIvel UV
   float dataFloat4 = uvLevel;
    str = "k" + String(dataFloat1); // Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
    // vw_wait_tx(); // Esperar envio

 // Intensidad UV
   float dataFloat5 = outputVoltage;
    str = "y" + String(dataFloat1); // Convertir a string
    str.toCharArray(buf,sizeof(buf)); // Convertir a char array
    vw_send((uint8_t *)buf, strlen(buf)); // Enviar array
    
    vw_wait_tx(); // Esperar envio    
    
    delay(1000);

Serial.print("Temperatura: ");    // muestra texto
  Serial.print(TEMPERATURA);      // muestra valor de la variable
  Serial.print(" C ");        // muestra letra C indicando grados centigrados
    
  Serial.print("Presion: ");      // muestra texto
  Serial.print(PRESION);      // muestra valor de la variable
  Serial.println(" hPa");     // muestra texto hPa indicando hectopascales
Serial.print("Altitud: ");    // muestra texto
  Serial.print(ALTITUD);      // muestra valor de la variable
  Serial.println(" mts ");  
 
 Serial.print("Humedad: ");    // muestra texto
  Serial.print(h);      // muestra valor de la variable
  Serial.println(" % ");  
 
       
   Serial.print("Temp sensor Humedad: ");    // muestra texto
  Serial.print(t);      // muestra valor de la variable
  Serial.println(" ºC");  
 
  Serial.print("Output: ");
  Serial.println(uvLevel);
 
  Serial.print(" / ML8511 voltage: ");
  Serial.println(outputVoltage);
 
  Serial.print(" / UV Intensity (mW/cm^2): ");
  Serial.println(uvIntensity);
 
  Serial.println();
 
  delay(5000);
}
//Takes an average of readings on a given pin
//Returns the average
int averageAnalogRead(int pinToRead)
{
  byte numberOfReadings = 8;
  unsigned int runningValue = 0; 
 
  for(int x = 0 ; x < numberOfReadings ; x++)
    runningValue += analogRead(pinToRead);
  runningValue /= numberOfReadings;
 
  return(runningValue);  
}
 
//The Arduino Map function but for floats
//From: http://forum.arduino.cc/index.php?topic=3922.0
float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

codigo receptor
(Code tags </> por favor. Y CTRL-T. Gracias, Moderator)

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

LiquidCrystal_I2C lcd(0x27,2, 1, 0, 4, 5, 6, 7);

const int dataPin = 9;


void setup()
{
 Serial.begin(9600);
 vw_setup(2000);
 vw_set_rx_pin(dataPin);
 vw_rx_start();
lcd.setBacklightPin(3,POSITIVE);
lcd.begin (16, 2);
lcd.clear();
}

void loop()
{
 uint8_t buf[VW_MAX_MESSAGE_LEN];
 uint8_t buflen = VW_MAX_MESSAGE_LEN;

// Recibir dato
 if (vw_get_message((uint8_t *)buf,&buflen))
 {
   String dataString;
     if((char)buf[0]=='i')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         int dataInt = dataString.toInt();  // Convertir a int
         Serial.print("Int: ");
         Serial.println(dataInt);
     }
     else if((char)buf[0]=='f')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         float PRESION = dataString.toFloat();  // Convertir a float
         Serial.print("Presion: ");
         Serial.print(PRESION);
         Serial.println ("hPa");
            Serial.print("");
            
            lcd.clear ();
            lcd.setCursor (0,0);
            lcd.print("PRESION ");
                    lcd.setCursor (8,0);
lcd.print(PRESION);
lcd.setCursor(14,0);
lcd.println("hP");

delay(2000);

     }
  else if((char)buf[0]=='g')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         float TEMPERATURA = dataString.toFloat();  // Convertir a float
         Serial.print("Temperatura: ");
         Serial.print(TEMPERATURA);
         Serial.println("ºC");
            Serial.print("");
             lcd.setCursor (0,1);
            lcd.print("TEMP: ");
                    lcd.setCursor (7,1);
lcd.print(TEMPERATURA);
lcd.setCursor(12,0);
lcd.println("ºC");

delay(2000);
     
     }
         else if((char)buf[0]=='h')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         float ALTITUD = dataString.toFloat();  // Convertir a float
         Serial.print("Altitud: ");
         Serial.print(ALTITUD);
         Serial.println("mts");
            Serial.print("");
     }
 else if((char)buf[0]=='j')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         float HUMEDAD = dataString.toFloat();  // Convertir a float
         Serial.print("Humedad: ");
         Serial.print(HUMEDAD);
         Serial.println("%");
            Serial.print("");
     }
 else if((char)buf[0]=='k')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         float NivelUV = dataString.toFloat();  // Convertir a float
         Serial.print("Nivel UV: ");
         Serial.print(NivelUV);
         Serial.println("W/cm2");
            Serial.print("");
     }
 else if((char)buf[0]=='y')
     {
         for (int i = 1; i < buflen; i++)
         {
         dataString.concat((char)buf[i]);
         }
         float IntensidaUV = dataString.toFloat();  // Convertir a float
         Serial.print("Intensidad UV: ");
         Serial.print(IntensidaUV);
         Serial.println("nivel");
         Serial.print("");
         
         lcd.clear ();
            lcd.setCursor (0,0);
            lcd.print("INTEN UV: ");
                    lcd.setCursor (9,1);
lcd.print(IntensidaUV);
lcd.setCursor(14,0);
lcd.println("");
     }
 }
            }