当我们拿到一块3D 打印机主控板,首先要做的就是了解如何精确配置主控板上的电位器,一些简易的主控通过给每一组步进电机驱动IC设置一个旋钮式电位器,来做到限流的作用,一些更先进的主控则使用数字式电位器IC(如Analog Devices AD5206),来做到精确的电流限制。

下面我们结合 TONYLABS Luban 3D 打印机核心板,讲解一下如何正确设置数字式电位器。

数字式电位器

TONYLABS 出品的主控板均采用的是 Analog Devices 公司最新的 AD5206BRUZ10 六通道 10K 数字式电位器,单片机(MCU)通过 SPI 接口分别控制 5 组步进电机驱动芯片(A4982)的输出电流。

步进电机

当我们选择步进电机的时候,通常会把电机的扭力作为最重要的参数,扭力的不同,也就决定了所选定的步进电机的负载,为了满足不同用户对步进电机规格需求的多样性,因此步进电机的驱动能力也需要特别设置,下面以常见的 42 1A 的步进电机为例,’42’ 即步进电机的尺寸,通常数字越大,电机的体积也就越大; 1A 则为电机的额定电流,驱动芯片输出的电流远小于额定电流,则电机扭力不够,发生跳齿的现象,驱动芯片输出的电流大于额定电流,则会烧毁驱动芯片,损毁电机,下面我们了解如何测量.

测量

准备工作

  • 万用表(Multimeter)
  • 12V 10A-15A 直流电源 2.1mm 接口(DC Power)
  • 42 1A 步进电机 (Stepper Motor)
Fluke 万用表

Fluke 万用表

 

  1. 如果已经连接步进电机,拔出断开所有步进电机连接线
  2. 将 12V 电源连接 Luban,打开电源开关,此时 USB 接口附近 绿色 LED 灯常亮,毗邻的黄色 LED 状态灯闪烁,并熄灭,主板初始化完毕。
  3. 下载 Luban 专用的测试固件,使用方法请跳转
  4. 通过 Arduino 串口监视器,输入 H2000,使5组步进电机驱动芯片同时工作
  5. Luban 一共载有 5 颗 Allegro A4982 步进电机驱动芯片,分别控制 X、Y、Z、E0、E1 ,每一颗芯片附近,都提供了方便用户测试的触点,通过万用表,设置为测直流电流档,表笔负极接触 PCB 板4个角的定位孔,即接地,表笔正极,分别接触 X-REF, Y-REF, Z-REF, E0-REF, E1-REF
  6. 下面的公式描述了如何设置参考电压:ITripMAX = VREF/(8xRs)。 Rs VREF = ITripMAX 乘 0.8
    注意 A4982 设置为限于 2A。这意味着可调电压范围为0至1.66伏。下面的公式将产生8位二进制值,WV,将订立固件或者直接通过SPI。
    WV= VREF/1.66*255

修改固件

请注意,自行修改固件存在风险,可能导致主板烧毁或电机损毁。

打开 Luban_Firmware.ino 文件

打开 Luban_Firmware.ino 文件

 

点选 Configuration_adv.h 文件选项卡

点选 Configuration_adv.h 文件选项卡

 

搜索 current 关键字

搜索 current 关键字

修改90, 90, 90, 120, 120 这5组数值,分别代表 X, Y, Z, E0, E1 5 个步进电机输出端口,如果不确定电机参数,可以通过先小后大的方法,例如设置为  30, 30, 30, 30, 30,保存并按照下面的步骤上传固件,进行实际测试,如果发现电机跳齿,则可能是数值设置过小,如果 A4982 驱动芯片或 AD5206 芯片发热甚至冒烟,则数值设置过大,则根据实际测试情况,逐步增大或减小这5组数值。

/*
@start
*/

//#define DIGIPOT_MOTOR_CURRENT {32,32,32,55,55} // Values 0-255 only for 50K trimpot
#define DIGIPOT_MOTOR_CURRENT {50,50,50,90,90} // Values 0-255 only for 10K trimpot

/*
@end
*/
luban-firmware-upload

选择 Board -> Mega2560

上传固件

上传固件