Errori di compilazione (no matching & cannot convert)

Funziona ! Con una sola variabile ! =D

L'ho impostato così:

 ds18b20.requestTemperatures();
  
  float temperatura = ds18b20.getTempCByIndex(0);
   
  dtostrf(temperatura, 2, 2, datastring);
  unsigned int CHECKSUM = gps_CRC16_checksum(datastring);  // Calculates the checksum for this datastring
  char checksum_str[6];
  sprintf(checksum_str, "*%04X\n", CHECKSUM);
  strcat(datastring,checksum_str);

  rtty_txstring (datastring);
  delay(2000);

In questo modo funziona perfettamente, ovvero via radio mi arriva la temperatura. Ora cerco di capire come concatenare più variabili.

Per quanto riguarda il secondo sketch, quell'errore esce solamente se modifico la stringa originale "testo" con la variabile, non penso che sia un problema di richiami.
Cosa può essere ?

Grazie per l'aiuto !