go-pi-lcd1602

Go library for communicating to lcd1602 from Raspberry Pi

MIT License

Stars
7
Committers
2

Golang LCD1602 (LCD16x2) for RaspberryPi

Use LCD screens in your Go RPi applications!

Fast

The timing in this library is optimized to run as smoot as possible. (It takes ~40 microseconds to write one character to the LCD, opposed to many online examples taking 5-10 milliseconds).

Animated

You can use Animations (see animations, and examples/animations.go) to slide text into and out of the LCD. You can also create your own animations by implementing the Animation interface.

Virtual LCD

I wrote a virtual representation of an LCD screen. You can use it for debugging on de command line, or when your LCD is broken...

Usage

Import

import "github.com/pimvanhespen/go-pi-lcd1602"

Also checkout the examples!

Short example

    // write code to your LCD in 5 simple steps!
    // 1. Define the LCD config (which pins are used)
	lcdi := lcd1602.New(
		10,                   //rs
		9,                    //enable
		[]int{6, 13, 19, 26}, //datapins
		16,                   //lineSize
	)
    // 2. Create a synchronized LCD (for writing both lines easily)
	lcd := synchronized.NewSynchronizedLCD(lcdi)
    // 3. Init the LCD
	lcd.Initialize()
    // 4. Write text to the LCD
	lcd.WriteLines("Go Rpi LCD 1602", "git/PimvanHespen")
    // 5. Close the lcd (i.e. clean up GPIO memory)
    lcd.Close()
}

Todo

  • lanning on decoupling the LCD from the RaspberryPi GPIO. Allows for users to write/use their own IO wrappers for different hardware solutions

Special thanks

This library is built using Stian Eikelands go-rpio library.

Changelog

25/01/2019

  • Decoupled the lcd from synchronization
  • Added a VIRTUAL LCD
  • rewrote examples to match new code

5/11/2018

  • Fixed boot bug: The LCD used to randomly show garbled data. It's fixed
  • Better implementation of animations. Animations are now locked to a single line, allowing for animating both lines concurrently
  • Added an example for the new animations
Package Rankings
Top 8.53% on Proxy.golang.org
Badges
Extracted from project README
GoDoc Go Report Card license