|
本帖最后由 toofree 于 2018-9-17 00:24 编辑 1 x4 m/ e- a" `: x" E 【STM32电机培训】——8、任务4开放性实验之:加个转速 本实验背景请参考之前的两篇帖子:( g% L$ C" |+ f8 E( {2 W 【STM32电机培训】——6、任务4开放性实验转矩控制电机 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617511&fromuid=307297 (出处: 意法半导体STM32/STM8技术社区)/ r/ b' l8 {: f7 \ 3 w, [+ s r! O7 r- D 【STM32电机培训】——7、STMStudio使用之:我的看图学习 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617512&fromuid=307297- [) K( A$ C' h. v+ ]9 N0 Q, ? (出处: 意法半导体STM32/STM8技术社区); _1 t) k8 F! t0 S * G6 p; n% o6 ? 由于在之前帖子中,在STMStudio中观察变量只有两个“Tuning_ACD ”和“Tuning_Iqref ”,转速却只是在“Workbench”-->“Monitor”-->“Plotter”下显示,观察起来多有不便。% q n9 q2 Z1 f" K# Q; z& R! y) b 本帖将增加当前转速在STMStudio中显示观察,用到了一条读取当前平均转速函数“MC_GetMecSpeedAverageMotor1(void)”。
$ ^ |* J3 C4 k" l ( `7 R K" d5 `* w! X1 N' I 函数返回值的单位是0.1Hz,即每0.1秒,电机转的圈数 A圈/0.1秒。那么每秒转的圈数就是A/10,每分钟转速就是(A/10)*60,即A*6。 因此实际转速就是 MC_GetMecSpeedAverageMotor1() * 6 rpm。 增加平均转速变量定义,记得一定要加“volatile”修饰,否则代码可能会被优化掉。
6 O$ f# C1 z! {; _% P! m0 [9 K: g 6 r" }2 y$ s( ^- Y/ |! O5 n 在while主循环中,读取转速。
/ S- c: G4 w; x! k. P 编译IAR工程。下载固件到开发套件中。 4 @ v. E4 u1 d9 R& d' r m - y% A: b- A; @/ W" |$ Q* O 打开软件“STMStudio”,并从最近使用的工程中直接打开工程“P-NUCLEO-IHM001_task4.tsp”。0 i6 g3 L( w1 J
7 P% {7 D4 ~) \4 W 增加观察变量“avr_speed”,增加一个“VarViewer3”,并将“avr_speed”发送到“VarViewer3”。
开始记录波形,并不断调节电位器改变转矩,在三个“VarViewer”窗口中分别得到相应波形。
) e7 u. H. Z1 P) G0 X 实验结束,程序附上:
P-NUCLEO-IHM001_speed.rar
(9 MB, 下载次数: 21)
|
微信公众号
手机版