LcdDisplay.HD44780.SN74HC595 (lcd_display v0.4.0)
View SourceKnows how to commuticate with HD44780 type display through the 8-bit shift register SN74HC595. You can turn on/off the backlight.
Usage
iex> Circuits.SPI.bus_names()
["spidev0.0", "spidev0.1"]config = %{
spi_bus: "spidev0.0", # SPI bus name
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.SN74HC595.start(config)
# Run a command and the display state will be updated.
{:ok, display} = LcdDisplay.HD44780.SN74HC595.execute(display, {:print, "Hello world"})Pin assignment
This module assumes the following pin assignment:
| SN74HC595 | HD44780 |
|---|---|
| QA | - |
| QB | RS (Register Select) |
| QC | E (Enable) |
| QD | DB7 (Data Bus 7) |
| QE | DB6 (Data Bus 6) |
| QF | DB5 (Data Bus 5) |
| QG | DB4 (Data Bus 4) |
| QH | LED |
Summary
Functions
Executes the specified command and returns a new display state.
Initializes the LCD driver and returns the initial display state.
Types
@type config() :: %{ optional(:rows) => String.t(), optional(:cols) => pos_integer(), optional(:font_size) => pos_integer() }
The configuration options.
@type display_driver() :: LcdDisplay.HD44780.Driver.t()
Functions
Executes the specified command and returns a new display state.
@spec start(config()) :: {:ok, display_driver()} | {:error, any()}
Initializes the LCD driver and returns the initial display state.