基于PID的减速电机控制:硬件模块与原理图及代码开源探讨
- 时间:
- 浏览:80
- 来源:中国微特电机网
咱今天聊的这些电气知识那可是充满门道,有不少容易搞错和弄不明白的地方,保证让你有不一样的收获!
电源供电那点事
咱先说供电这一块。要是用12V供电,就把12V供电端口还有GND跟电源的正负接上就行。就好比接上电源正负极就给设备接上“动力源”,这个时候,5V供电端还能当成最小系统板的输入电源,就好像给这设备多了条“补给线”。可千万别接错了,接错说不定设备就罢工
另外,如果咱不需要PWM调速,就想单纯控制电机正反转。那只需要把逻辑A与B的跳线帽插上。插上跳线帽就相当于始终使能电机的正反转就能乖乖被咱们控制。我有一回就没插好,结果电机可不听话
PWM调速的操作关键
要是需要用PWM调速,可就得把跳线帽拔起来。拔了跳线帽之后,得把使能端接到单片机IO口上,就好像给调速提供个“控制按钮”。 这样一来l298n电机驱动模块 两相四线步进,电机的速度就能根据咱们的需求调整。上次调试的时候,我严格按照这方法弄,电机速度调节简直太丝滑。可要是没弄对,速度可能调得乱七八糟的。
IIC通讯深度剖析
再说说IIC通讯这玩意。IIC(Inter-Integrated Circuit)总线是PHILIPS公司开发的两线式串行总线,说起来还有点历史底蕴。它的数据传输靠的是数据线SDA和时钟SCL构成的串行总线,能灵活地发送和接收数据。而且I2C支持多从机,一个I2C控制器能挂上好多I2C从设备,每个从设备都有不一样的器件地址。
想要访问特定的I2C设备的时候,这器件地址就很重要。发送I2C设备地址就是找到对应设备的“钥匙”,地址后面还有个读写位,为0表示写操作,为1表示读操作。上次我调试设备就是地址没发对或者读写位弄错,结果数据传输一塌糊涂。
I2C单字节读时序解密
I2C单字节读时序那就更复杂一点。先是发送设备地址,就像问路得先知道目的地地址一样。然后发送要读取的寄存器地址,确定咱要从哪个“小房间”里拿数据。接着重新发送设备地址定位,最后I2C从器件输出要读取的寄存器值。每一步都不能马虎,就像走迷宫,一步错步步错。记得调试时,有一步顺序错了,结果读取的数据全乱了套。
USART与波特率的讲究
一般来说USART可以当UART用,也就是不用它同步的功能。可波特率却是异步通信中很重要的东西,因为没时钟信号,接收双方得提前商量好波特率,像4800、9600、115200这些都是常见的。在STM32里,波特率要通过串口初始化结构体来设置l298n电机驱动模块 两相四线步进,要是设置不好信号解码就可能出错。调试的时候波特率设置不当,数据接收时就是一堆乱码
我的MCU问题之痛
最后我得说说我自己遇到的事。按照常规编写方法操作之后,我的MCU就是出问题。单片机压根没接收到预设的数据,查了好多地方,调试了很久都没找出根源。我各种检查都试过,Debug那边按照要求设置成Serial Wire,可还是不行。感觉就像走进了死胡同,实在不知道咋解决。不知道大家有没有遇到过类似的情况?
猜你喜欢