16x2 LCD connected to msp430g2553 launchpad by i2c: contrast issue
Using the correct bias voltages is essential to get the correct contrast on LCD displays. An incorrect bias voltage could cause the low contrast which you described.

My hypothesis was that this LCD display is really optimised for 5V, and contains a capacitor charge pump (hence the need to add two capacitors) to double the supply voltage in order to generate the required LCD bias voltage, when used with a 3V power supply.

As we see in the datasheet, they use terms "voltage converter" and "voltage booster" for this functionality, although they don't explain that capacitors are only part of the charge pump; the other charge pump components must be already built into the display's PCB.

Based on its name, I expected that the output of the charge pump was the "VOUT" pin, and that is why I suggested measuring the voltage there, expecting something like 6V (i.e. the 3V supply voltage doubled by the charge pump to ~6V).

This was my troubleshooting suggestion, originally a comment:


  Can you measure the voltage between the VOUT and VSS pins, with a DMM set to measure DC volts? I believe VOUT is the output of a capacitive voltage doubler built-in to the display's PCB, so I'm hoping for something around 6V on VOUT.


From your comment, that was indeed the area of the problem:


  
    You were right, the VOUT is the output of a capacitive voltage doubler built-in to the display of the PCB, VOUT is around 6V. I measured it and it was only Vcc (around 3V) so I detected that there was a bad connection on my prototype board. I reconnected everything again and it works perfectly.