Implementation of the embedded-hal
traits for the HD44780.
Crates.io - https://docs.rs/hd44780-driver
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.
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>
.
```rust // Code grabbed from the metrom0 example let mut lcd = HD44780::new4bit( pins.d4.intoopendrainoutput(&mut pins.port), // Register Select pin pins.d3.intoopendrainoutput(&mut pins.port), // Enable pin
pins.d9.into_open_drain_output(&mut pins.port), // d4
pins.d10.into_open_drain_output(&mut pins.port), // d5
pins.d11.into_open_drain_output(&mut pins.port), // d6
pins.d12.into_open_drain_output(&mut pins.port), // d7
delay,
);
// Unshift display and set cursor to 0 lcd.reset();
// Clear existing characters lcd.clear();
// Enable the display, enable cursor and blink the cursor lcd.setdisplaymode(true, true, true);
// Display the following string lcd.write_str("Hello, world!");
// Move the cursor to the second line lcd.setcursorpos(40);
// Display the following string on the second line lcd.write_str("I'm on line 2!"); ```
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!
This project is licensed under MIT license (LICENSE or https://opensource.org/licenses/MIT)