aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorrafael <[email protected]>2024-10-21 23:19:45 +0200
committerrafael <[email protected]>2024-10-21 23:19:45 +0200
commit548f11d5aef37d5ab1edac6970ceb7bee4300f4f (patch)
treeca09448dad5b5d223d8ef71cf1cf786cfac13ce1 /examples
parent14e69309ebe25a76f67c38411c7a80a4d83da5ed (diff)
cheaper motors need lower pwm frequency
Diffstat (limited to 'examples')
-rw-r--r--examples/rp23/src/bin/pwm_tb6612fng_motor_driver.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/examples/rp23/src/bin/pwm_tb6612fng_motor_driver.rs b/examples/rp23/src/bin/pwm_tb6612fng_motor_driver.rs
index 263b551de..3fad2928c 100644
--- a/examples/rp23/src/bin/pwm_tb6612fng_motor_driver.rs
+++ b/examples/rp23/src/bin/pwm_tb6612fng_motor_driver.rs
@@ -40,8 +40,8 @@ async fn main(_spawner: Spawner) {
40 let s = split_resources!(p); 40 let s = split_resources!(p);
41 let r = s.motor; 41 let r = s.motor;
42 42
43 // we want a PWM frequency of 25KHz 43 // we want a PWM frequency of 1KHz, especially cheaper motors do not respond well to higher frequencies
44 let pwm_freq = 25_000; // Hz, our desired frequency 44 let pwm_freq = 1_000; // Hz, our desired frequency
45 let clock_freq = embassy_rp::clocks::clk_sys_freq(); 45 let clock_freq = embassy_rp::clocks::clk_sys_freq();
46 let period = (clock_freq / pwm_freq) as u16 - 1; 46 let period = (clock_freq / pwm_freq) as u16 - 1;
47 47
@@ -77,8 +77,8 @@ async fn main(_spawner: Spawner) {
77 77
78 // drive a straight line forward at 20% speed for 5s 78 // drive a straight line forward at 20% speed for 5s
79 info!("drive straight"); 79 info!("drive straight");
80 control.motor_a.drive(DriveCommand::Forward(20)).unwrap(); 80 control.motor_a.drive(DriveCommand::Forward(80)).unwrap();
81 control.motor_b.drive(DriveCommand::Forward(20)).unwrap(); 81 control.motor_b.drive(DriveCommand::Forward(80)).unwrap();
82 Timer::after(Duration::from_secs(5)).await; 82 Timer::after(Duration::from_secs(5)).await;
83 83
84 // coast for 2s 84 // coast for 2s
@@ -95,8 +95,8 @@ async fn main(_spawner: Spawner) {
95 95
96 // slowly turn for 3s 96 // slowly turn for 3s
97 info!("turn"); 97 info!("turn");
98 control.motor_a.drive(DriveCommand::Backward(10)).unwrap(); 98 control.motor_a.drive(DriveCommand::Backward(50)).unwrap();
99 control.motor_b.drive(DriveCommand::Forward(10)).unwrap(); 99 control.motor_b.drive(DriveCommand::Forward(50)).unwrap();
100 Timer::after(Duration::from_secs(3)).await; 100 Timer::after(Duration::from_secs(3)).await;
101 101
102 // and put the driver in standby mode and wait for 5s 102 // and put the driver in standby mode and wait for 5s