控制的,感觉有些简单,也有些基础,Arduino方便简单的同时,可操作性感觉也少了很多,所以想将,STM32作为下位机,通过树莓派和STM32进行通讯,实现对差速移动小车的控制,本人也是寒假期间初学STM32,也是奔着应用去的,所以对于STM32
可知:当提高电压时,反电势升高,进而转速升高,电压与转速大致有如图所示的关系。
所以我们只要控制给电机通电的电压即可控制电机的转速,但是在实际的控制中,控制直流电机一定要通过H桥控制电机的正反转,如图,当T1和T4二极管导通时,有粉色通路;当T2和T3二极管导通时,有蓝色通路,这样我们就能轻松实现弱电控制强电,通过二极管的通断来控制电机的转向。
但是这样电机通电时电压就是Us,我们如果想自由的控制Us的电压值基本是不能够实现的,因为电机是接到单片机的引脚上的,引脚的供电电压值是确定的,我们要使用控制二极管的通断时间对电机的转速来控制,即PWM控制。
图中的D1~D4二极管为续流的作用,因为电机中有绕组,在断电后,电感的电流不能瞬时变为0,所以在断电后电流沿棕色和绿色的通路放点电。
在一个周期内,我们经过控制通电的时间就可以调控平均电压,而平均电压的高低直接控制电机的转速,通电时间/周期,就能够获得占空比,我们也就是经过控制电机的占空比来控制电机的转速的。
在实际应用过程中,我们不用自己搭建H桥,而是使用电机驱动板(如:L298N)对直流电机进行驱动,L298N内搭载两个H桥电路,能轻松实现对两个电机的转向和转速进行控制。
这是淘宝商家提供的电机驱动板控制表,将IN1~4接到单片机的引脚,我们就能够最终靠引脚输出PWM控制信号,对直流电机进行控制。
在STM32中如果想输出PWM信号,需要借助定时器,通过定时器的捕获/比较通道的PWM输出
当我们对定时器设置了预装载值arr和比较值ccr后,能够最终靠配置PWM模式,使定时器CNT计数值超过ccr后产生有效信号,并通过配置相应寄存器设置有效信号是1还是0,而配置PWM的输出方式,具体原理信息可以借鉴原子哥的视频,也可以借鉴中文参考手册的14.4.7内容。
原理部分我讲的很简略,我也是看原子哥的视频学,如果大家对单片机控制原理有学习需要,可以去B站看原子哥的视频,博主主要是做控制和上位机的,所以这部分只需要会用即可。
驱动麦克纳姆轮小车(HAL库) /
转速 /
和两种方法的编码器实时速度反馈,拿到这个反馈值后我们就能够正常的使用经典的PID算法,对
转速(CubeMX+HAL库) /
驱动芯片 工作电压范围5V35V,若需要从模块内取电,则供电范围为7V35V 峰值输出电流2A 每个通道有一个使能输入端 可以驱动两个
总结 /
技术 /
Modbus转profinet网关连接ES-R6六轴关节机器人控制管理系统与PLC的配置案例
吴恩达《深度学习》系列课 - 24.(选修)logistic 损失函数的解释#深度学习