LCD backpack could be I2C FM+ (post link).
In that case, low value pull up resistors can be used.
Clock must be on a twisted pair with ground.
Data must be on a different pair with ground.
Needed to minimise crosstalk.
Remaining two pairs for 5volt and ground.
Use four 1k pull up resistors, two at one end and two at the other end of the cable.
Report back. This (I2C over that distance) has been a long standing argument.
Leo..
If I understand it right, i connect resistor between SDA - 5V and SCL - 5V, about 4.7k
It probably does not matter which side, on the LCD or at the arduino ?
Must the values be the same ? ( SDA-5V=4.7k and SCL-5V=4.7k ?
It will probably be easier with a potentiometer 5K ....
i try and then report....
I also order from ebay RS-485 module , but it will take time to fly the pigeon with the package from China.... :
The pullup resistor values should be close. They don't have to be the same. The reason is the slave waits until it sees the SCL pass the HIGH threshold, then it waits for about half the expected bit time and looks at SDA to see if it's HIGH or LOW. If the pullup on SDA is significantly weaker then it may still be halfway between LOW and HIGH when the slave examines it.
For short cables, it doesn't matter if the resistors are at one end or the other, or even if there's many resistors. For longer cables then impedance-mismatch reflections off the end of the cable become important. Then you may want to have equal resistors at each end but the impedance of the required pullups will never match the cable impedance.
4.7K is too much resistance. 1K is probably much closer.
Now o try with 1Kohm resistor ( SDA-5V=1k and SCL-5V=1k ) and then with 15cm on 2 display.
Work aprox. one day then booth display frozen-show strange simbols.....
Let me try with a greater or lesser resistance ?
I would have to resist it before every screen or just in the end of cable and then SDA and SCL on two display ?
The I2C bus was designed for communication between chips on a single board. On occasion I have pushed length successfully (but not 35m).
Others have made some good suggestions and should be considered, however I have a quick suggestion; drop the I2C clock to 10k (or maybe less). This will give the clock and data pulses time to stabilize.