【RaspberryPi】rppalクレート

クレートサイト (crates.io)
ドキュメント
GitHub

公式のサンプルコード

    use std::error::Error;
    use std::thread;
    use std::time::Duration;

    use rppal::gpio::Gpio;
    use rppal::system::DeviceInfo;

    // ピン番号(BCM)を定数設定
    const GPIO_LED: u8 = 23;

    fn main() -> Result<(), Box<dyn Error>> {
        // デバイス情報の表示
        println!("Blinking an LED on a {}.", DeviceInfo::new()?.model());

        // 出力ピンとして設定
        let mut pin = Gpio::new()?.get(GPIO_LED)?.into_output();

        // set_high()で3.3V、set_low()で0V
        pin.set_high();
        thread::sleep(Duration::from_millis(500));
        pin.set_low();

        Ok(())
    }