金鉴实验室 1
几年前了解到Arduino时,没想过自己有一天也会开始折腾。一直以为基于Arduino的程序,占空间,速度慢……最近回头深入了解时,其实用Arduino模板来开发,也可以像普通用AVR方式一样编程,差别不大。用Arduino的库只是更省事而已……在折腾中发现Arduino其实也挺好用的,刚好最近在测试步进驱动芯片TB5128,所以设计了一个匹配UNO的TB5128扩展模板,两者配合一起折腾undefined,第一版先考虑在程序中使用Arduino库函数,先测试TB5128的最基本测试
本次测试目的,是Arduino UNO与TB5128扩展板的基本操作。实时自动循环正反转,根据脉冲数量来控制电机转动的角度。每次填充的脉冲数量计数完毕,程序中会自动切换方向,然后再次填充同样数量的脉冲。程序中,细分和衰减都有相应的函数去设置,方便调用。脉冲是通过软件定时,取反IO实现。脉冲频率的调整,可以在宏(CLK_F)中修改对应的数值。注意,因为没有加减速,所以在低细分数时,频率不要太高了。一般转速在1转/秒左右,基本可以正常转动。再快的就要看电机的高频特性、驱动电压和负载情况了。另外TB5128的报警输出和Mo的端口还没在程序中实现检测……
Arduino UNO +TB5128实物图片,测试中
功能设置说明:
拔码开关SW设置功能:(默认设置成全低)
1. GAIN_SEL(放大比例选择,可以选择5或10,对应电流计算公式:IO=VREF / GAIN / RS采样电阻)
2. EDG_SEL(触发边沿选择,CLK是上升沿触发或者选择双边沿触发)
3. IF_SEL(设置控制模式,本测试中是CLK模式,就是脉冲和方向直接控制,另外还有串行控制模式,待续)
其它设置:图1标记有VREF字样处的插针(SEL4),是用来选择外部电阻分压生成VREF或者是UNO板输出PWM通过RC滤波生成VREF电压。 RS_SEL(板背面,用来设置采样模式)是通过短路焊点设置为外部采样模式。其它如:SEL2、SEL3都由UNO板控制。TE1(对应SEL1,设置TB5128的RESET)也是在板上短路为UNO控制。
其中UNO5128.c文件完全与UNO5128.ino文件一样,复制成C文件格式,方便没有装Arduino软件的网友也能直接打开查看。HC595.h并不是单纯的头文件,包括595控制的相关函数都在里面
连接42的步进电机电机,额定电流2.5A的。TB5128扩展板设计在没考虑外部5V稳压电路,只能从UNO板引入……
只是基本的操作,项目使用了 1634 字节,占用了 (5%) 程序存储空间。最大为 32256 字节。 全局变量使用了13字节,(0%)的动态内存,余留2035字节局部变量。最大为2048字节。
0
LED |