Skip to content

Driver in Rust for the KC11B04 4-button analog keypad.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Beanow/kc11b04-rs

Repository files navigation

KC11B04 Driver   Latest Version Docs Badge Rust Version: 1.60.0

Driver in Rust for the KC11B04 4-button analog keypad.

A 3-pin module using a voltage divider circuit and analog pin to sense a key press.

KC11B04 image

Wiring notes

The voltage on the VCC pin should correspond with the reference voltage (maximum value) your ADC is configured to read.

For example the default on an Arduino Uno is that it matches the operating voltage of 5V. But the ADC can be configured to use an external reference with the AREF pin. In this case VCC should match AREF.

Example

use kc11b04::{Key, KC11B04, MAP_10BIT};

let mut adc = /* Configure your ADC using its HAL */
let mut ad_pin = /* Set the pin connected to AD as analog input */

// Create the keypad driver. Taking ownership of the pin,
// providing a map that matches the resolution of your ADC.
let mut keypad = KC11B04::new(ad_pin, MAP_10BIT);

// Somewhere within loop { }
// Read current key state.
match keypad
	.key_state(&mut adc)
	.expect("Problem reading ADC channel")
{
	Some(Key::K4) => { /* K4 key being pressed */ }
	Some(Key::K3) => { /* K3 key being pressed */ }
	Some(Key::K2) => { /* K2 key being pressed */ }
	Some(Key::K1) => { /* K1 key being pressed */ }
	None => { /* Either nothing, or multiple keys pressed */ }
}

MSRV policy

Upgrading the MSRV is considered SemVer breaking. The MSRV will be set in package.rust-version.

About

Driver in Rust for the KC11B04 4-button analog keypad.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Languages