mirror of
https://github.com/kidoman/embd
synced 2025-07-03 11:57:38 +02:00
interface: add an abstraction layer for character displays
the characterdisplay package is an abstraction layer for controlling character displays also includes refactors to the hd44780 package to fit the characterdisplay Controller interface
This commit is contained in:
parent
dac729e4fd
commit
915b3b76a7
8 changed files with 489 additions and 364 deletions
45
samples/characterdisplay.go
Normal file
45
samples/characterdisplay.go
Normal file
|
@ -0,0 +1,45 @@
|
|||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"time"
|
||||
|
||||
"github.com/kidoman/embd"
|
||||
"github.com/kidoman/embd/controller/hd44780"
|
||||
"github.com/kidoman/embd/interface/display/characterdisplay"
|
||||
|
||||
_ "github.com/kidoman/embd/host/all"
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
if err := embd.InitI2C(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer embd.CloseI2C()
|
||||
|
||||
bus := embd.NewI2CBus(1)
|
||||
|
||||
controller, err := hd44780.NewI2C(
|
||||
bus,
|
||||
0x20,
|
||||
hd44780.PCF8574PinMap,
|
||||
hd44780.RowAddress20Col,
|
||||
hd44780.TwoLine,
|
||||
hd44780.BlinkOn,
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
display := characterdisplay.New(controller, 20, 4)
|
||||
defer display.Close()
|
||||
|
||||
display.Clear()
|
||||
display.Message("Hello, world!\n@embd | characterdisplay")
|
||||
time.Sleep(10 * time.Second)
|
||||
display.BacklightOff()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue