前言
在1-2的基础上加入AS5600编码器,代码部分参考了STM32驱动AS5600磁性旋转位置传感器模块_as5600 cubeide-CSDN博客
一.程序部分
1.开启I2C通信
2.复制1-2的代码并加入AS5600.c以及.h
3.测试部分
3.1主函数
先给UQ赋值0,再给UD赋值1,因为要使机械角度以及电角度0点对齐
3.2 As5600.c
分别打印机械角度以及电角度,上电,然后用手拨动电机,转过明显卡顿的一格,将读出的一个数值记下带进公式。其中119就是读到的第一个数值,205就是4096/极对数的值,我用的是极对数为20的电机。
注:电角度为0的时候才能拨动,不能让电角度一直变化
3.3.电角度和机械角度增加方向不一致
所以将此函数修改一下
3.4.main.c
启动电机给 Q轴赋值,负号代表反转,反之正转
二.硬件部分
1.as5600磁编码器
2.as5600磁编码器连线
SCL-PB8
SDA-PB9
GND-GND
VCC-VCC
三.实验现象
总结
as5600用的是iic通信,感觉通信效率不是很高,下次实验我将使用MT6816,这颗芯片是用spi通信的,并且加上电流环。