LcdDisplay.HD44780.PCF8574 (lcd_display v0.2.0) View Source
Knows how to commuticate with HD44780 type display through the 8-bit I/O expander PCF8574. You can turn on/off the backlight.
Usage
iex(2)> Circuits.I2C.detect_devices
Devices on I2C bus "i2c-1":
* 39 (0x27)
1 devices detected on 1 I2C buses
config = %{
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.PCF8574.start(config)
# Run a command and the display state will be updated.
{:ok, display} = LcdDisplay.HD44780.PCF8574.execute(display, {:print, "Hello world"})
Pin assignment
This module assumes the following pin assignment:
PCF8574 | HD44780 |
---|---|
P0 | RS (Register Select) |
P1 | - |
P2 | E (Enable) |
P3 | LED |
P4 | DB4 (Data Bus 4) |
P5 | DB5 (Data Bus 5) |
P6 | DB6 (Data Bus 6) |
P7 | DB7 (Data Bus 7) |
Link to this section Summary
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.
Specs
display_driver() :: LcdDisplay.HD44780.Driver.t()
Link to this section Functions
Executes the specified command and returns a new display state.
Specs
start(config()) :: {:ok, display_driver()} | {:error, any()}
Initializes the LCD driver and returns the initial display state.