So i got that 2,5m cable wired with the LCD and the arduino, but i keep getting those weird characters showing up on the LCD. Clearly there is a signal loss between the components but there has to be a solution to the problem. Perhaps by connecting capacitors/resistors to the wires will help? Is there any solution other than not using this long cable?
If the interface you're using is I2C(only two cables from arduino to lcd, vice versa)you have a problem,you need to pull up the sda-scl channel with appropriate resistors, you could (maybe) boost the I2C signal using ti-p82b715 bus extender, I just assume you use I2C (2,5m length?), what interface do you use? SPI? I2C?
I'm presuming this is I2C or SPI, because a Serial cable of 2.5 m should still work.
You can slow both I2C and SPI down.
In the case of SPI you can call something like this:
Where "divider" is one of:
The default is SPI_CLOCK_DIV4, so try a larger divider.
In the case of I2C you can change the clock speed and the prescaler. The default frequency is 100 kHz, but you could make it slower.
TWBR prescaler Frequency 12 1 400 kHz (the maximum supported frequency) 32 1 200 kHz 72 1 100 kHz (the default) 152 1 50 kHz 78 4 25 kHz 158 4 12.5 kHz
For example, to run at half the frequency (50 kHz) use:
Wire.begin (); TWBR = 152;
To run at 25 kHz you also need to change the prescaler, eg.
Wire.begin (); TWBR = 78; TWSR |= bit (TWPS0);
In the case of I2C make sure you have pull-up resistors on SDA and SCL in order to get a clean signal. 4.7 k is a reasonable value to try (for both of them) with the other ends connected to +5 V.