1 个不稳定版本

0.1.0 2024年4月6日

#421嵌入式开发

MIT 许可证

40KB
783

RustDRV8833双桥电机驱动器驱动程序

Crate Documentation

DRV8833电机驱动器的驱动程序,支持多种模式的电机操作。有关更多详细信息,请参阅文档

有关DRV8833的详细信息,请参阅数据表

安装

您可以通过Cargo安装该包

cargo add drv8833-driver

用法

以下是一个使用esp-idf-halcrate的驱动程序示例

use esp_idf_hal::gpio::{AnyInputPin, Input, PinDriver};
use esp_idf_hal::ledc::{LedcDriver, LedcTimerDriver};
use esp_idf_hal::ledc::config::TimerConfig;
use esp_idf_hal::prelude::Peripherals;

use drv8833_driver::{MotorDriver, PwmMovement};

fn main() -> anyhow::Result<()> {
    // Initialize peripherals
    let peripherals = Peripherals::take()?;

    // Initialize GPIO pins
    let in1 = PinDriver::output(peripherals.pins.gpio1)?;
    let in2 = PinDriver::output(peripherals.pins.gpio2)?;
    let in3 = PinDriver::output(peripherals.pins.gpio3)?;
    let in4 = PinDriver::output(peripherals.pins.gpio4)?;

    // Initialize LEDC timer and driver
    let timer = LedcTimerDriver::new(peripherals.ledc.timer0, &TimerConfig::default())?;
    let pwm = LedcDriver::new(peripherals.ledc.channel0, &timer, peripherals.pins.gpio5)?;

    // Initialize motor driver
    let motor = MotorDriver::new_pwm_parallel(
        in1, in2, in3, in4, pwm, None::<PinDriver<AnyInputPin, Input>>,
    );

    // Control the motor
    motor.forward(100)?;
    motor.reverse(100)?;
    motor.stop()?;
    motor.coast()?;

    Ok(())
}

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。

依赖关系

~56KB