3 releases (breaking)
0.3.0 | Sep 9, 2024 |
---|---|
0.2.0 | Jun 1, 2024 |
0.1.0 | Mar 19, 2022 |
#367 in Hardware support
172 downloads per month
21KB
415 lines
LCD LM1602 I2C driver
Driver to write characters to LCD displays with a LM1602 connected via i2c like this one with
16x2 characters. It requires a I2C instance implementing embedded_hal::blocking::i2c::Write
and a instance to delay execution with embedded_hal::blocking::delay::DelayMs
.
Usage:
const LCD_ADDRESS: u8 = 0x27; // Address depends on hardware, see link below
// Create a I2C instance, needs to implement embedded_hal::blocking::i2c::Write, this
// particular uses the arduino_hal crate for avr microcontrollers like the arduinos.
let dp = arduino_hal::Peripherals::take().unwrap();
let pins = arduino_hal::pins!(dp);
let mut i2c = arduino_hal::I2c::new(
dp.TWI, //
pins.a4.into_pull_up_input(), // use respective pins
pins.a5.into_pull_up_input(),
50000,
);
let mut delay = arduino_hal::Delay::new();
let mut lcd = lcd_lcm1602_i2c::Lcd::new(&mut i2c, &mut delay)
.address(LCD_ADDRESS)
.cursor_on(false) // no visible cursos
.rows(2) // two rows
.init().unwrap();
This site describes how to find the address of your LCD devices.
There is a similar crate lcd_1602_i2c but that did not work with this display.
Dependencies
~1.5MB
~38K SLoC