hd44780-driver
Implementation of the embedded-hal
traits for the HD44780.
Documentation
Crates.io - https://docs.rs/hd44780-driver
Examples
Currently there are basic examples for Raspberry Pi as well as the Adafruit Metro Express M0 as those are the devices I currently have on hand.
Any platform that implements the embedded-hal traits is supported by this library! See awesome-embedded-rust for a list of supported platforms.
Getting Started
This library aims to keep it simple in that to get started all you will have to do is supply the HD44780::new
function a bunch of pins from your platform that implement the OutputPin
trait for embedded-hal as well as a struct that implements the delay traits DelayUs<u16>
and DelayMs<u8>
.
// Code grabbed from the metro_m0 example
let mut lcd = HD44780 new_4bit;
// Unshift display and set cursor to 0
lcd.reset;
// Clear existing characters
lcd.clear;
// Display the following string
lcd.write_str;
// Move the cursor to the second line
lcd.set_cursor_pos;
// Display the following string on the second line
lcd.write_str;
Features
- 4-bit & 8-bit modes are supported
Todo
- Busy flag support (Waiting for support from embedded-hal to read and write from a pin)
- Non-blocking API
- A more user-friendly API with additional features
- Custom characters
Contributing
-
Additional issues as well as pull-requests are welcome.
-
If you have a platform not yet covered in this repository that is supported by embedded-hal, a pull-request of an example would be awesome!
License
This project is licensed under MIT license (LICENSE or https://opensource.org/licenses/MIT)