as5600

Crates.ioas5600
lib.rsas5600
version0.8.0
sourcesrc
created_at2021-11-28 17:11:52.585395
updated_at2024-04-06 16:52:16.54011
descriptionPlatform-independent Rust driver for AS5600 digital magnetic potentiometer
homepage
repositoryhttps://github.com/barafael/as5600-rs
max_upload_size
id488895
size58,809
Rafael Bachmann (barafael)

documentation

https://docs.rs/crate/as5600/latest

README

as5600-rs

Rust Embedded HAL driver for the AS5600 contactless 12-bit digital potentiometer

Status

  • Reading/parsing all device registers
  • Writing configuration settings
  • Setting zero position, maximum position, maximum angle
  • Burn Settings and angle

Example

Here's how using this driver looks on a raspberry pi:

use std::{thread, time::Duration};

use as5600::As5600;
use linux_embedded_hal::I2cdev;

fn main() {
    let mut i2c = I2cdev::new("/dev/i2c-1").unwrap();
    let mut as5600 = As5600::new(i2c);
    let config = as5600.config().unwrap();
    println!("{:?}", config);

    thread::sleep(Duration::from_secs(2));

    let status = as5600.magnet_status().unwrap();
    let agc = as5600.automatic_gain_control().unwrap();
    let mag = as5600.magnitude().unwrap();
    let zmco = as5600.zmco().unwrap();

    println!("{:?}", status);
    println!("{:?}", agc);
    println!("{:?}", mag);
    println!("{:?}", zmco);

    thread::sleep(Duration::from_secs(2));

    loop {
        let value = as5600.angle().unwrap();
        println!("{:?}", value);
        thread::sleep(Duration::from_millis(100));
    }
}

TODO for a more relaxed and civilized age

[ ] make a wooden harness for the as5600 with a knob that turns a radial magnet at the right distance to the sensor [ ] make a CLI/GUI tool similar to ebyte-e32-ui [ ] use klask progress bars or something comparable to show the current magnet angle

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 71

cargo fmt