Skip to content

Commit

Permalink
added notes to the README.md about I2C to 1602
Browse files Browse the repository at this point in the history
Since this is a modified 1602 LCD display module designed to be used with I2C, there are differences in how this component is used versus a standard 1602 LCD display module.
  • Loading branch information
RichardChambers authored Jan 3, 2018
1 parent 950a7e1 commit 1af6a59
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions project10/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,36 @@ through the parallel data pins connected between the PCF8574 and the 1602.
### Raspberry Pi configuration changes

The I2C subsystem of Raspbian on the Raspberry Pi must be turned on.

## Notes about the 1602 LCD display of the kit

The bare bones 1602 LCD display has the 8 data pins which are used to send both text
data characters as well as hexadecimal commands to the 1602 LCD component. The hex
commands specify how the 1602 LCD is to display the text characters.

There are three control signal pins that are also used: R/W to signal read data
or write data, EN to latch data, and RS to select whether data being sent is a
command or a text character.

Since the 1602 LCD display module of the Osoyoo Raspberry Pi Starter Kit is a modified
module composed of a 1602 LCD display and a PCF8574 IC and we are using the I2C functionality
rather than the raw 1602 LCD pins, the software interface is a bit different than a
standard, unadorned 1602 LCD display module.

The difference is that the I2C interface must also allow us to set the control signal pins
as well as to send data/command bits. This is done by dividing the 8 bit serial character
sent vis I2C to the PCF8574 IC into two nibbles. The high nibble indicates the control pin
settings and the lower nibble indicates four bits of the 8 bit character being sent.

This means that to send an 8 bit text character or an 8 bit command character requires two
I2C writes, the first write to send the high order bits (bits 7 through 4) followed by a
second write to send the low order bits (bits 3 through 0).

See [16X2 LCD programming for beginners. Made easy](https://embeddedlifehelp.blogspot.com/2012/03/16x2-lcd-programming-for-beginners-made.html).

See [lcd commands and understanding of LCD module](http://www.firmcodes.com/microcontrollers/8051-3/interfacing-lcd-with-8051/lcd-commands-and-understanding-of-lcd/).

See [LCD - Liquid Crystal Display tutorial](http://www.microcontrollerboard.com/lcd.html) which describes
in greater detail what seems to be the actual 1602 LCD display module in the Osoyoo kit.

See [Serial LCD quickstart](https://www.sparkfun.com/tutorials/246) which also seems to be similar to what is in the Osoyoo kit.

0 comments on commit 1af6a59

Please sign in to comment.