57步进电机驱动板,可以通过编码器调速,支持SPI通讯屏显示,485通讯。 板子上面有电位器可...
·
57步进电机驱动板,可以通过编码器调速,支持SPI通讯屏显示,485通讯。 板子上面有电位器可电流设定或者485改电流设定。 最大电流支持4.5A,如果需要更大电流需要改元器件参数。 有启停和方向按键。 采用TMC5160控制步进电机。 比较好的就是静音模式。
玩过步进电机的朋友都知道,传统驱动板工作时那个"咔咔"的噪音简直能逼疯强迫症。最近入手的这款基于TMC5160的57步进电机驱动板,完全刷新了我对步进电机的认知——原来电机也能静音运行!
这块板子最大的亮点当属TMC5160这颗控制芯片,它不仅集成了运动控制器和MOSFET驱动,还自带StealthChop2静音技术。实测在办公室环境下,电机运行时连桌上的铅笔都不会震动,这对需要精密控制的应用场景太重要了。
电流设定方面板子给了双保险:
// 通过电位器设置电流示例
void setCurrentByPot(){
int potValue = analogRead(POT_PIN);
motor.current = map(potValue, 0, 4095, 0, 4500); //4.5A满量程
}
板载的蓝色多圈电位器手感细腻,不过我更偏爱用485通讯远程控制:
def set_current_via_485(address, current_ma):
if current_ma > 4500:
print("警告:需更换功率元件!")
else:
payload = struct.pack('>BH', address, current_ma)
ser.write(payload)
注意超过4.5A需要更换板上的采样电阻和MOS管,建议先加强散热措施。
编码器接口的设计非常实用,配合STM32的编码器模式能实现精准调速:
// 编码器中断处理
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
static int32_t last_count = 0;
int32_t new_count = __HAL_TIM_GET_COUNTER(&htim3);
int delta = (new_count - last_count) * 0.9; //速度滤波
set_motor_speed(delta);
last_count = new_count;
}
SPI显示屏的驱动代码也很有意思,TMC5160的寄存器配置直接关系到静音效果:
void initStealthChop(){
SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE3));
digitalWrite(CS_PIN, LOW);
SPI.transfer16(TMC5160_CHOPCONF);
SPI.transfer32(0x000100C3); //静音模式参数
digitalWrite(CS_PIN, HIGH);
SPI.endTransaction();
}
实际应用中,启停按键和方向按键的防抖处理也很关键。板子上的贴片按键虽然小巧,但通过硬件滤波电路+软件消抖,操作响应非常干脆:
#define DEBOUNCE_TIME 20 //毫秒
uint32_t last_key_time = 0;
void checkButtons(){
if(millis() - last_key_time > DEBOUNCE_TIME){
if(!digitalRead(START_PIN)){
toggleMotor();
last_key_time = millis();
}
//...方向键处理类似
}
}
从DIY数控机床到智能窗帘控制,这款驱动板的静音特性让很多需要安静环境的项目成为可能。下次准备尝试用它的SPI接口同步显示电机温度曲线,相信会有更多惊喜。

更多推荐
所有评论(0)