I need t use tiny RTC I2C, Serial I2C LCD and BMP180 in the same project.
I used Arduino Mega and there is one SCL and one SDA.
When I connect RTC and LCD to the same pins (Digital 20 and 21), there is no problem, but when I connect BMP180 to these pins (3 cables in pin 20 and three cables in pin 21), everything frozen.
I2C requires that all modules on the same bus operate on the same voltage. The Arduino I2C uses 5V, other modules may use 3.3V and require an level shifter between 3.3V and 5V. Check the specs of your modules yourself. A practical check can be made with all modules connected to Gnd and Vcc, but disconnected signal lines (SCL, SDA). Then you can measure the DC voltage on every signal pin, indicating the expected/required bus signal levels by that module. When you don't get reasonable values, the module seems not to have its own pullup resistors, and you have to consult the data sheet. A lack of pullup resistors is not bad, because it's easier to add pullup resistors than to remove them.
Next pitfall are the pullup resistors. They should be small enough to eliminate noise, but high enough for not overloading the bus drivers. Also the modules should be daisy-chained, with pullups only at both ends of the bus. What you made is a star bus topology, with all modules connected to a central point, with a couple of disadvantages.
Last pitfall are modules of the same bus addresses. Again you can find the addresses in the data sheets, eventually there exist jumpers that allow to modify the module addresses. Or you connect only one module at a time, and run an I2C address sniffer sketch to find out the address of each module. When it cannot find an address, the module under test may not be compatible with the 5V Arduino bus (requires level shifter).