Skip to content

MnlPhlp/uln2003

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

uln2003

A simple crate to use a 28BYJ-48 stepper motor with and ULN2003 Driver on any hardware implementing embedded-hal

Usage

Both esp32 examples use the wiring as shown in this tutorial

Example on an esp32 using the esp-hal (no_std)

let peripherals = Peripherals::take();
let system = peripherals.DPORT.split();
let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut delay = Delay::new(&clocks);
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let mut motor = ULN2003::new(
    io.pins.gpio19.into_push_pull_output(),
    io.pins.gpio18.into_push_pull_output(),
    io.pins.gpio5.into_push_pull_output(),
    io.pins.gpio17.into_push_pull_output(),
    delay
);

loop {
    motor.step();
    delay.delay_ms(5u32);
}

Example using esp-idf-hal (std)

struct Delay;
impl embedded_hal::blocking::delay::DelayMs<u32> for Delay {
    fn delay_ms(&mut self, ms: u32) {
        delay::FreeRtos::delay_ms(ms);
    }
}
fn main(){
    let peripherals = Peripherals::take().unwrap();
    let mut motor = ULN2003::new(
        PinDriver::output(peripherals.pins.gpio19).unwrap(),
        PinDriver::output(peripherals.pins.gpio18).unwrap(),
        PinDriver::output(peripherals.pins.gpio5).unwrap(),
        PinDriver::output(peripherals.pins.gpio17).unwrap(),
        Some(Delay),
    );

    // run for 100 steps with 5 ms between steps
    motor.step_for(100, 5).unwrap();

    loop {
        motor.step();
        delay::FreeRtos::delay_ms(5);
    }
}

About

A simple crate to use a 28BYJ-48 stepper motor with and ULN2003 Driver on any hardware implementing embedded-hal

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages