Skip to content

liamg/lcd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0d4bacf · Sep 29, 2021

History

29 Commits
Sep 19, 2021
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021
Sep 19, 2021
Sep 20, 2021
Sep 19, 2021
Sep 20, 2021
Sep 19, 2021
Sep 19, 2021
Sep 19, 2021
Sep 19, 2021
Sep 19, 2021
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021
Sep 29, 2021
Sep 19, 2021
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021

Repository files navigation

lcd

A Go module for driving common LCD devices (those using the HD44780 controller or similar.)

Built for Raspberry Pi, but it should work with any other device where you can use an implementation of the lcd.Pin interface.

  • Supports both 4 and 8-bit modes
  • Allows definition and use of custom characters
  • Tested against virtual LCD (also included in this package)
  • Uses BF checking instead of fixed delays for greater efficiency unlike most LCD libraries (pass nil as the RW pin if you don't want to use this, and wire the RW pin to GND)

Example

package main

import (
	"github.com/liamg/lcd"
)

func main() {

	lcd, _ := lcd.New1602(
		lcd.FontSize5x8,
		lcd.PiPin(24), // RS
		lcd.PiPin(25), // E
		lcd.PiPin(12), // RW
		lcd.PiPin(5),  // DB4
		lcd.PiPin(6),  // DB5
		lcd.PiPin(13), // DB6
		lcd.PiPin(19), // DB7
	)
	defer lcd.Close()

	lcd.WriteLine(0, "Hello World!")
	lcd.WriteLine(1, ":)")
}

Demo