10
10
#include " rtos/ThisThread.h"
11
11
#include " rtos/Thread.h"
12
12
13
+ #include " AnalogIn.h"
13
14
#include " CoreMotor.h"
14
15
#include " CorePwm.h"
15
16
#include " HelloWorld.h"
@@ -60,6 +61,18 @@ auto main() -> int
60
61
auto motor_left = CoreMotor {motor_left_dir_1, motor_left_dir_2, motor_left_speed};
61
62
auto motor_right = CoreMotor {motor_right_dir_1, motor_right_dir_2, motor_right_speed};
62
63
64
+ const auto maxVSense = float {2.3 }; // min -1V
65
+ auto motor_left_voltage = mbed::AnalogIn {MOTOR_LEFT_VOLTAGE, maxVSense}; // U = RI, R = 0.5
66
+
67
+ auto log_voltage = [&motor_left_voltage] {
68
+ for (int i = 0 ; i < 20 ; i++) {
69
+ log_info (" Raw: %d | Ratio: %.2f | Voltage: %.2fV | Current: %.2fA" , motor_left_voltage.read_u16 (),
70
+ motor_left_voltage.read (), motor_left_voltage.read_voltage (),
71
+ motor_left_voltage.read_voltage () * 2 .0F );
72
+ rtos::ThisThread::sleep_for (100ms);
73
+ }
74
+ };
75
+
63
76
while (true ) {
64
77
auto t = rtos::Kernel::Clock::now () - start;
65
78
log_info (" A message from your board %s --> \" %s\" at %i s\n " , MBED_CONF_APP_TARGET_NAME, hello.world ,
@@ -70,16 +83,11 @@ auto main() -> int
70
83
log_info (" Spin left..." );
71
84
spinLeft (motor_left, motor_right);
72
85
73
- rtos::ThisThread::sleep_for (5s);
74
-
75
- log_info (" Spin right..." );
76
- spinRight (motor_left, motor_right);
77
-
78
- rtos::ThisThread::sleep_for (5s);
86
+ log_voltage ();
79
87
80
88
log_info (" Spin stop..." );
81
89
stop (motor_left, motor_right);
82
90
83
- rtos::ThisThread::sleep_for (5s );
91
+ log_voltage ( );
84
92
}
85
93
}
0 commit comments