LcdDisplay.HD44780.PCF8575 (lcd_display v0.0.17) View Source

Knows how to commuticate with HD44780 type display through the 16-bit I/O expander PCF8575. You can turn on/off one backlight LED.

Usage

iex(2)>  Circuits.I2C.detect_devices
Devices on I2C bus "i2c-1":
* 39  (0x27)

1 devices detected on 1 I2C buses
config = %{
  display_name: "display 1", # the identifier
  i2c_bus: "i2c-1",          # I2C bus name
  i2c_address: 0x27,         # 7-bit address
  rows: 2,                   # the number of display rows
  cols: 16,                  # the number of display columns
  font_size: "5x8"           # "5x10" or "5x8"
}

# Start the LCD driver and get the initial display state.
{:ok, display} = LcdDisplay.HD44780.PCF8575.start(config)

# Run a command and the display state will be updated.
{:ok, display} = LcdDisplay.HD44780.PCF8575.execute(display, {:print, "Hello world"})

PCF8575

pin assignment

This module assumes the following pin assignment:

PCF8575HD44780
P0RS (Register Select)
P1-
P2E (Enable)
P3LED
P4DB4 (Data Bus 4)
P5DB5 (Data Bus 5)
P6DB6 (Data Bus 6)
P7DB7 (Data Bus 7)

Data byte

76543210
DB7DB6DB5DB4LEDE-RS

Link to this section Summary

Types

The configuration options.

Functions

Executes the specified command and returns a new display state.

Initializes the LCD driver and returns the initial display state.

Link to this section Types

Specs

config() :: %{
  optional(:rows) => String.t(),
  optional(:cols) => pos_integer(),
  optional(:font_size) => pos_integer()
}

The configuration options.

Link to this section Functions

Link to this function

execute(display, command)

View Source

Executes the specified command and returns a new display state.

Specs

start(config()) :: {:ok, LcdDisplay.Driver.t()} | {:error, any()}

Initializes the LCD driver and returns the initial display state.