平衡小车的资料

根据网上平衡小车之家的资料引脚需要用:
LED ----- PA12
Key -------PA15
OLED:
RST_Clr ------ PC13
RS_Clr ------ PB4
SCLK_Clr ------ PC15
SDIN_Clr ------ PC14
ADC:
PA4
TIM3:
PB0 PB1
Motor:
PB12 PB13 PB14 PB15
PWM: PA8 PA11
TIM2:
PA0 PA1
TIM4:
PB6 PB7
IIC:
IIC_SCL ------- PB8
IIC_SDA ------- PB9
USART:
PB10 PB11

    平衡小车调试过程中一定注意,代码方面注意例程中导入的库都有什么,因为调整PID参数的时候,对陀螺仪传回的数据进行了数学运算,包括三角函数和反三角函数运算,这方面在进行代码移植的时候十分重要,而且注意一点平衡小车的直立环并不需要编码器的反馈,只需要陀螺仪的数据和电机调速通过PD进行调速即可达到平衡的目的,速度环控制的时候才需要编码器进行反馈信号。
    **速度环在获得反馈速度后编码器一定要清0**重中之重。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190731123416955.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA4MDMwNA==,size_16,color_FFFFFF,t_70)
    int Read_4Encoder(void)

{
// static uint32_t count = 0;
// int i;
CaptureNumber2=(short)__HAL_TIM_GET_COUNTER(&htim4);
// uwDirection2 = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim4);
// if(uwDirection2 == 0)
// {
// CaptureNumber2 = CaptureNumber2;
// }
// else if(uwDirection2 == 1)
// {
// CaptureNumber2 = 65535- CaptureNumber2;
// }
// i = (int)(float)((CaptureNumber2>=count?CaptureNumber2-count:CaptureNumber2+65535-count)/11/34/2);
// count=CaptureNumber2;
__HAL_TIM_SET_COUNTER(&htim4,0);
return CaptureNumber2;

// return i;
}
具体实现代码参照以上。
在平衡车调试过程中发现经过具体的实验之后,因为驱动模块TB6612FNG的烧毁,更换了普通的大功率H桥MOS管驱动板后发现不能正常使用,原因是驱动板的最大相应频率是10KHZ(基本上目前常见的三极管的极限都是这个),最小响应占空比是10us,因此目前来看网上平衡小车之家之所以使用TB6612FNG这种小功率驱动板的原因可见其响应频率才能满足平衡车的要求,在制作这种需要大范围调节PWM占空比的电机小车的时候(尤其是编码器电机),一定要采取响应频率足够的驱动,两个小时的不断调节总结的教训。

猜你喜欢

转载自blog.csdn.net/weixin_44080304/article/details/96362632