This 3.3V LCD is 5V tolerant on logic inputs.
| Pin | Signal |
|---|---|
| 1 | Backlight Anode, +3.3V. Use a 140R series resistor for +5V |
| 2 | Backlight Cathode, GND |
| 3 | Vss, GND |
| 4 | SCL |
| 5 | SDA |
| 6 | Vdd, +3.3V or +5V |
The LCD driver IC needs 50ms after Vdd has stabilized to become ready to accept commands. PWS_AutopilotLCD::begin(uint8_t IVA) will initialize the driver chip, clear the display register and by default set the Internal Voltage Adjust to 0 which translates to 1.0*Vdd. To prevent damage to the LCD, the drive voltage needs to be 3.3V.
| IVA | LCD drive voltage |
|---|---|
| 0x0 | 1.000 × Vdd (Default) |
| 0x1 | 0.957 × Vdd |
| 0x2 | 0.918 × Vdd |
| 0x3 | 0.882 × Vdd |
| 0x4 | 0.849 × Vdd |
| 0x5 | 0.818 × Vdd |
| 0x6 | 0.789 × Vdd |
| 0x7 | 0.763 × Vdd |
| 0x8 | 0.738 × Vdd |
| 0x9 | 0.714 × Vdd |
| 0xA | 0.692 × Vdd |
| 0xB | 0.672 × Vdd |
| 0xC | 0.652 × Vdd |
| 0xD | 0.634 × Vdd |
| 0xE | 0.616 × Vdd |
| 0xF | 0.600 × Vdd |
Vdd = 5V. IVA needs to be set to scale the drive voltage to 3.3V; 3.3/5 = 0.66. Choosing 0xB or 0xC for IVA will correctly drive the LCD.
/* Remember to wait at least 50ms from power on */
PWS_AutopilotLCD APlcd;
APlcd.begin(0x0B); //IVA chosen for 5V logic.
