- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 【程序】【必须】PID位置环控制,代码+调参
前面两篇博文已经实现了电机测速和PID速度环控制,在这篇博文中,我们主要说明位置环的代码怎么写以及PID参数怎么调。
2023-01-27 07:50:11 8215 1
原创 【程序】【必须】PID速度环控制,代码+调参
这里不细说电机驱动模块的选型和使用,而是说一个常见的误区。我们驱动电机要使用两路PWM,一般是一路给PWM信号,一路是纯低电平。但这其实是不好的,正确的做法是一路给PWM,另一路给纯高电平。此时PWM的占空比越低,电机的速度越快。
2023-01-27 07:48:23 8983
原创 【程序】【必须】编码器电机测速,原理+代码+滤波
为了改善这一现象,我们可以对速度采样值使用平均滤波,即将最近几次的速度采样值存放到数组中,每测得一个新的速度,就将新速度存入数组,将最早测得的速度值从数组中删除,我们使用的速度值是数组中所有速度的平均值。 编码器模式下的定时器其实是个计数器,在编码器的脉冲到来时,Counter会相应地加和减,正转时加,反转时减,溢出后到达另一个极端值,比如说向上计数到达20001时会变成0。 我们假设现在测速频率是50Hz,减速比为30,编码器线数为500,那么脉冲数每变化1,速度的变化为。
2023-01-27 07:47:20 30110 17
原创 【重要】【程序】 使用VOFA+进行PID调试
简单地来说,VOFA+是一个超级串口助手,除了可以实现一般串口助手的串口数据收发,它还可以实现数据绘图(包括直方图、FFT图),控件编辑,图像显示等功能。使用VOFA+,可以给我们平常的PID调参等调试带来方便,还可以自己制作符合自己要求的上位机,为嵌入式开发带来方便。 这个是VOFA+的官网。
2023-01-12 21:56:46 9541 5
原创 【重要】TPS5450搭建BUCK电路
TPS5450最大可以实现5A的稳定输出,并且可以人为控制转换的进行。TPS5450概述如下:TPS5450引脚定义。
2022-11-18 23:45:37 4796
原创 【扩展】电机驱动(DRV8870)
DRV8870是TI公司出品的一款电机驱动芯片,具体可以到TI官网或者AllDATASHIT搜索数据手册。以下贴出芯片手册概述。8870引脚定义。
2022-11-18 23:37:33 7235
转载 【电路】【扩展】锂电池相关知识补充
先串在并需要在每一条支路加上均衡板和保险丝,先并再串只需要一块均衡板,但需要给每块电池加上保险丝。由于电池被击穿短路的情况比较难发生,而且现在的电池内部一般都已经集成了保险丝,所以在中小功率的电池组中一般都是使用。
2022-10-02 21:17:02 2368 1
转载 【扩展】【程序】三轴机械臂逆运动学解算(附代码)
此处θ1 ,θ2, θ3是三个舵机所需转动的角度 ,γ是杆3相对于x轴的夹角,根据刚体旋转,逆运动学求解,会得到两个解,即有两种姿态,相对于前一个杆逆时针旋转的夹角为正,顺时针为负。如上图第一种姿态(上折线),θ1<0,θ2
2022-09-17 23:01:22 1449
原创 【扩展】【程序】使用CLion开发STM32程序
为了方便,我直接在一个固定的地方写好常用芯片和下载器的config文件,以后直接在CLion引用即可。首先直接把提前准备好的retarget文件夹复制到工程的Core文件夹中,并在CMakeLists.txt中添加头文件路径。现在的Clion已经配置成写stm32的了,大环境不用怎么动,每次新建工程之后微微调一下就好,下面讲的就是要微微调的东西。这个不用担心,试过把常用代码都添加进去,只占用了F103C8T6的68.60%FLASH,绰绰有余了。配完之后发现可以自己再优化一下,优化的部分就写在这里了。
2022-09-17 22:56:36 939
转载 【重要】【程序】STM32+CubeMax使用硬件SPI控制OLED模块 例程移植+Debug
点击编译,没有问题就是例程已经移植成功了,接下来就是函数调用了。
2022-09-17 22:55:12 359
原创 【重要】【程序】使用STM32+CubeMax读取JY901陀螺仪角度
三轴陀螺仪指的是可以感应Roll(翻滚角,左右倾斜)、Pitch(俯仰角,前后倾斜)和Yaw(偏航角、前行角度)的传感器。六轴陀螺仪指的是将三轴加速度传感器和三轴陀螺仪结合起来的传感器,可以额外感应空间上三个方向的加速度。而九轴传感器可以再额外测量空间三个方向的磁场强度。此外还有十轴传感器,能再测量气压高度。为了看得更清晰,这里画出一个表格。
2022-09-17 22:53:32 3437 1
转载 【重要】【程序】STM32+CubeMax使用软件IIC控制OLED模块
这里介绍如何使用软件IIC控制四线0.96寸OLED模块具体思路与7线SPI的OLED一致,只是IIC控制部分有区别这里只讲有区别的部分,详细操作看上一篇的 [[01 IIC OLED模块|博文]]
2022-09-17 21:04:58 478
转载 【扩展】【程序】使用硬件SPI驱动1.3寸TFT彩屏
使用STM32F103C8T6驱动1.3寸TFT屏幕的驱动代码用法这里使用的开发板和屏幕都来自某宝店家大越创新。
2022-09-16 23:06:45 2447
转载 【扩展】【程序】F407使用模拟IIC无法点亮OLED的问题
但当我升级到F407VET6之后就发现了一个问题:当主频跑到100MHz以上的时候OLED将会无法点亮。问题在于之前写的模拟IIC代码中并没有延时函数,导致单片机能跑多快,信号发送就有多快,当主频提高之后,OLED就无法识别这么快速的信号了。这里把修改过的oled.c和oled.h文件放出来,直接覆盖我之前博文中的文件就好了。但是加了延时函数之后OLED的相应速度不会像原来那么快,但也完全够用了。oled.c(注释乱码了…到这里,100MHz以上的F407也能正常用模拟IIC点亮OLED了。
2022-09-16 23:02:46 1663
原创 【重要】STM32 使用ADC中断(非DMA)读取传感器数据
这里使用STM32F103C8T6开发板和灰度传感器测试STM32的ADC功能。软件上使用CubeMax快速生成相应代码,在ADC中断中读取传感器数值。
2022-09-16 19:04:32 3520
转载 【重要】TCRT5000系列光电对管的使用 基于STM32+Cubemax
红外光电二极管不断向外发射红外线,红外线经外部环境反射后被光敏三极管吸收,光敏三极管导通的程度和吸收的红外线强度成正比。一般颜色深的材质吸收红外线多,颜色浅的材质反射红外线多,这就是我们检测黑线的基本原理。作为中断输入,比如说PA1和PB1,因为数字相同的引脚是共用中断线的,字母靠后的引脚会覆盖字母靠前的引脚(PB会覆盖PA),字母靠前的引脚的中断就不起作用了(详见数据手册)使用比较器的典型电路长这样(自己画的,仅供参考),使用多个光电对管排成一排对黑线进行检测是目前的主流做法。
2022-09-14 23:57:20 2154
STI传统控制电赛科技树
2023-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人