D'abord une remarque
#define SIZE_VOIES 10 //Nombre de voies
int voies[SIZE_VOIES]; //Initialise le tableau des voies
.....
for(int i = 1; i <= (SIZE_VOIES); i++) {
//Créer la trame
trame += voies[i];
......
voies est créé avec 10 éléments (de 0 à 9) donc le for devrait être
for(int i = 0; i < (SIZE_VOIES); i++) {
//Créer la trame
trame += voies[i];
j'arrive à créer ma trame sur une string
ATTENTION bien faire la distinction entre string et String ce n'est pas la même chose.
Concernant ton problème d'affichage la fonction ecrireLcd(); attend en premier argument une chaine de caractères pourquoi ne pas lui en donner une en utilisant ça pour faire afficher trame par exemple : toCharArray() - Arduino Reference
Pour ton autre exemple 2 possibilités:
faire une chaine avec l'int que tu veux afficher (itoa, sprintf il y a plusieurs solutions)
écrire une fonction similaire à ecrireLcd() qui accepte en entrée un int.