Double Sided

This commit is contained in:
2026-03-26 13:45:36 +01:00
parent f1a018ce35
commit b473ded2f7

View File

@@ -1,6 +1,6 @@
use rppal::gpio::{Gpio, OutputPin}; use rppal::gpio::{Gpio, OutputPin};
use rppal::pwm::{Pwm, Channel, Polarity}; use rppal::pwm::{Pwm, Channel, Polarity};
use std::error::Error; use std::{error::Error, thread, time::Duration};
struct Motor { struct Motor {
in1: OutputPin, in1: OutputPin,
@@ -31,20 +31,35 @@ impl Motor {
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
let gpio = Gpio::new()?; let gpio = Gpio::new()?;
let in1 = gpio.get(27)?.into_output(); // LEFT
let in2 = gpio.get(22)?.into_output(); let left = Motor {
in1: gpio.get(27)?.into_output(),
in2: gpio.get(22)?.into_output(),
pwm: Pwm::with_frequency(Channel::Pwm0, 1000.0, 0.0, Polarity::Normal, true)?,
};
let pwm = Pwm::with_frequency( // RIGHT
Channel::Pwm0, let right = Motor {
1000.0, in1: gpio.get(23)?.into_output(),
0.0, in2: gpio.get(24)?.into_output(),
Polarity::Normal, pwm: Pwm::with_frequency(Channel::Pwm1, 1000.0, 0.0, Polarity::Normal, true)?,
true, };
)?;
let mut left_motor = Motor { in1, in2, pwm }; let mut left = left;
let mut right = right;
left_motor.forward(0.7); // Test: Forward 3 seconds
left.forward(1.0);
right.forward(1.0);
thread::sleep(Duration::from_secs(3));
left.backward(0.6);
right.backward(0.6);
thread::sleep(Duration::from_secs(2));
// Stop
left.stop();
right.stop();
Ok(()) Ok(())
} }