Crates.io | pi_ir_remote |
lib.rs | pi_ir_remote |
version | 0.1.0 |
source | src |
created_at | 2020-11-27 11:47:29.952214 |
updated_at | 2020-11-27 11:47:29.952214 |
description | A crate to read infrared signals from a 44-button LED remote. |
homepage | |
repository | https://github.com/fhennig/pi_ir_remote |
max_upload_size | |
id | 317021 |
size | 15,727 |
This crate provides a signal decoder for the commonly found 44-button infra red remote used commonly with LED strips. When an IR sensor is connected to a GPIO pin, this crate can decode the IR signals into which button was pressed.
This will read signals on GPIO 4 and print them:
use pi_ir_remote::read_ir_remote;
use pi_ir_remote::PrintSignalHandler;
fn main() {
let handler = PrintSignalHandler::new();
read_ir_remote(4, Box::new(handler));
}
You can make your own signal handler by implementing the SignalHandler trait:
pub trait SignalHandler {
fn handle_signal(&mut self, signal: &Signal);
}
The IR remote sends pulse length encoded signals. Among other special pulses, there are a short and long pulse, corresponding to 0 and 1, allowing the transmission of binary data.
Every button is associated to a 32 bit word. This library includes the mapping of binary codes to buttons in the Signal enum.