Salut^^
Pourquoi tu fais bouger le servo en deux temps ?
//meusure à gauche
cmdsonar.write(135);
delay(200);
int temp_g1=sonar();
cmdsonar.write(180);
Je vois que tu sais utiliser les fonctions, alors pour la marche avant, pourquoi ne pas utiliser un appel du genre MarcheAvant(lent) par exemple? Tu gagnes une fonction et des lignes de code.
Mieux, ma commande est faites comme ceci MarcheAvant(vitesse), ça permet de faire évoluer ton code facilement plus tard (le moteur peut être commandé jusqu'à 255, tu vas jusque 123)
Tes déclarations de pins sont correctes, mais on peut les faire avec #define, ça prend moins de mémoire.
Aussi, je vois que tu déclares toutes tes variables proprement en début de code. C'est clair et bien fait, mais il vaut mieux en général utiliser des variables locales, que tu déclares dans ta fonction, et qui disparaissent de la mémoire ensuite. Moins on a de variables, mieux c'est. Quand il t'en faut une, tu la déclares dans la fonction qui en a besoin.