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接口同步显示电机温度曲线,相信会有更多惊喜。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐