Communication Problem between two arduinos


I have two arduinos (UNO - MEGA) connected by tx-rx (pins 0 & 1) (I have already connected the ground between both). The communication is bidirectional and perfect when the 2 USBs are connected to arduinos but when I change the USBs for batteries (7v - 11 v) it seems that the communication goes only in 1 direction (not exactly).

—>First message from MEGA to UNO: Serial.println(100);
<—Second message (answer) from UNO to MEGA: Serial.println("*40$100*");

The second message arrive perfect with connected USBs but with batteries arrive some strange characters.

Someone can help me?

Thanks in advance.

Someone can help me?

Someone can post some code? Someone can post a picture showing how the Arduinos are actually connected?

Are you using the same serial port settings on both?