I bought one of these Arduino I2C 20x4 LCD modules.
I got the LCD module in today. It has a slightly different back board, but that's not a bad thing. They extended the A0, A1 & A2 slave address pins out to solder/short PCB pads. This will affect the advertised address from 7 bit address of 0x27 (A0:A2 all "1"s) to a 7 bit address of 0x20 (A0:A2 all "0"s). Shorting the jumper pads ties the pin(s) to +5V. At least the modules slave addresses can be easy to change and set... that's a good thing! I was expecting to get stuck with a fixed slave address.
Again, the web site is wrong about the advertised module address - it is 0x20 as shipped, not 0x27, at least for the module they sent me.
Past that, it's using a basic I2C bi-directional I/O expander IC - PCF8574T.
Addressing the module is pretty strait forward, though the data byte being sent needs to be constructed as follows:
LCD runs in 4 bit mode - DB4 : DB7 are data bits - DB0 : DB3 are not connected at all.
Data Byte sent via I2C:
bit7 = B/L LED (0=on; 1=off)
bit6 = RS (Register Select)
bit5 = R/W (Read/Write)
bit4 = E (Enable)
bit3 = DB7 data
bit2 = DB6 data
bit1 = DB5 data
bit0 = DB4 data
All the normal commands are available under HD44780 datasheet, including 2-way communication with module.
BTW, the soldering was very good when I got it. Due to my test probe use to confirm the hookup, it looks worse then when I got it.
Bookmarks