当前位置: 首页 > news >正文

一、对42步进电机使用演示记录

一、硬件

42步进电机:

主要参数根据标识得到:
电流:1.7A 即驱动器上选择时至少要大于1.7A。
步距角:1.8°,42电机转动时的最小角度
接线方式:根据步进电机标识的颜色于字母和驱动器上标识的字母一 一对应连接。
在这里插入图片描述
步进电机驱动器

在这里插入图片描述

驱动器上面的标识:

1、ENA功能说明:控制器的输出是通过该组信号使能,又称脱机信号。当此信号有效时,输出关闭,电机绕组电流为零, 电机为无力矩状态,可以自由转动电机,适合需要手动调整电机的场合。
2、DIR功能说明:电机的方向控制信号,当此信号有效时,电机顺时针转动,当此信号无效时,电机逆时针旋转。、
3、PUL功能说明:电机的转动控制信号,驱动器接收到的脉冲信号电机就会按照既定的方向旋转。电机的角位移与脉冲的数量成正比, 速度与脉冲的频率成正比。通常脉冲的有效宽度>=5us,频率<=125KHz。
带+号的根据需要:采用共阳极或共阴极接法,接单片机上的vcc(5v)或gnd。
4、驱动器上的vcc 和gnd ,则是接直流电源的正极和负级。电源选择上一般采用开关电源,或直流电源。且电源的电压在驱动器标识的范围,关于电流则可以根据挡位进行调节,调节电流挡位到合适的挡位,(有无负载的因素直接影响电机的转动,所以无负载,满足基本电机转动电流的挡位即可,有负载时调到大一些的挡位)
5、驱动器的细分设置由拨码开关的SW1~SW3来设定,默认为2细分,一般的42步进电机的步进角都是1.8°, 因此电机旋转一圈需要360° /1.8° =200个脉冲,这里2细分转一圈 需要的脉冲数200*2=400个。(量程最高32细分,所以需要脉冲数6400个,且基本上都是对应的。)

二、代码编写

42步进电机控制转动原理:
由三个类型的输入决定:
PUL提供脉冲,进行转动。
DIR提供转动方向,顺,逆转。
ENA提供转动使能,手动转动调节/信号使能。(若不需要调节,实际都可以不接)

1、生成代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此处通过配置tim2定时器的输出比较,用以生成可变频率的脉冲方波信号,来控制电机的快慢,

代码配置

__IO uint16_t Toggle_Pulse = 100; //小于10丢失,10~7000转动会越来越慢
//配置tim2
  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 84-1;//分频得到1mhz
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 0xffff;//默认
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
//配置比较输出
  sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
  sConfigOC.Pulse = Toggle_Pulse;
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  if (HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)

//开启tim
  HAL_TIM_Base_Start(&htim2);
  HAL_TIM_OC_Start_IT(&htim2,TIM_CHANNEL_3);  /* 启动比较输出并使能中断 */
  TIM_CCxChannelCmd(TIM2,TIM_CHANNEL_3,TIM_CCx_ENABLE); /* 使能输出 */

//输出比较中断回调
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
  uint32_t count;
  uint32_t tmp;
  count=__HAL_TIM_GET_COUNTER(htim);
  tmp = 0xffff & (count+Toggle_Pulse); //改变频率
  __HAL_TIM_SET_COMPARE(htim,TIM_CHANNEL_3,tmp);//设置占空比
}
//用以配置转动方向和使能开关(通过输出高低电平进行控制)
  HAL_GPIO_WritePin(GPIOE, DIR_Pin, GPIO_PIN_SET);// 方向 顺/逆
  HAL_GPIO_WritePin(GPIOE, ENA_Pin, GPIO_PIN_RESET);// 开启/关闭


效果:在这里插入图片描述

相关文章:

  • 【Pandas】pandas Series plot.barh
  • 【操作系统】共享数据的竞争问题
  • Python预训练模型实现俄语音频转文字
  • 2025年渗透测试面试题总结- 某亭-安全研究员(题目+回答)
  • Redis设计与实现-底层实现
  • 视频录制与输出指南:获得最佳效果的关键参数
  • 数据结构---图的深度优先遍历(DFS)
  • LangChain其它五类组件详解(1)—— 文档加载器(Document loaders)
  • FRP结合Nginx实现HTTPS服务穿透
  • JVM 知识点梳理
  • 【前四届会议均已完成独立出版及EI检索 | 河南大学、河南省科学院主办,多高校单位承协办】第五届信号图像处理与通信国际学术会议(ICSIPC 2025)
  • Vue 中的日期格式化实践:从原生 Date 到可视化展示!!!
  • 如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同?
  • SpringBoot最佳实践之 - 使用AOP记录操作日志
  • 第五章 起航19 管理者的专业素养
  • 下载与快速上手 NVM:Node.js 版本管理工具
  • 机器学习——分类、回归、聚类、LASSO回归、Ridge回归(自用)
  • 深入理解 Spring Boot 应用的生命周期:从启动到关闭的全流程解析
  • 【开源项目】数字孪生沈阳CIM/BIM可视化项目——开源工程及源码
  • 1202. 【高精度练习】义务植树
  • 广东省原省长卢瑞华逝世,享年88岁
  • 独行侠以1.8%概率获得状元签,NBA原来真的有剧本?
  • 英国收紧移民政策,技术工作签证、大学招生面临更严要求
  • 他站在当代思想的地平线上,眺望浪漫主义的余晖
  • 《单身情歌》制作人韩贤光去世,林志炫发文悼念
  • 被流量绑架人生,《人生开门红》能戳破网络时代的幻象吗