stm32使用TB6600驱动器控制42BYGH型步进电机

news2025/1/11 7:02:21

stm32使用TB6600驱动器控制42BYGH型步进电机

stm32使用TB6600驱动器控制42BYGH型步进电机


文章目录

  • stm32使用TB6600驱动器控制42BYGH型步进电机
  • 前言
  • 一、使用的设备说明介绍
    • 24V开关电源
    • TB6600驱动器
      • 产品特点
      • 技术规格
      • 拨码开关设定
    • 42BYGH 步进电机
    • 接线方法
    • 控制步进电机的正反转
    • 控制步进电机的调速
  • 二、实例
    • 1.源码如下
    • 2.接线效果
  • 总结


前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、使用的设备说明介绍

在这里插入图片描述

24V开关电源

24V电源就是通过电路控制开关进行高速的导通于截至,将直流电转化为高频率的交流电提供给变压器进行变压从而产生所需要的一组或多组24V电压
在这里插入图片描述

接线注意事项,一般使用直接接线火线和零线,电源不分正负极,
输出电源和输入别搞反了,搞反了就冒烟了,容易到沫子
电压微调旋钮一般不建议使用。

TB6600驱动器

产品特点

原装全新步进电机驱动芯片— 芯片:TB67S109AFTG
8档电流控制
7种细分可调
接口采用高速光耦隔离
自动半流减少发热量
大面积散热片不惧高温环境使用
抗高频干扰能力强
输入电压防反接保护
过热,过流短路保护

技术规格

输入电压:DC9-42V
控制信号:3.3-24V通用(无需串电阻)
输入电流:推荐使用开关电源功率5A
输出电流:0.5-4.0A
最大功耗:160W
细 分:1,2/A,2/B,4,8,16,32
温 度:工作温度-10~45℃;存放温度-40℃~70℃
湿 度:不能结露,不能有水珠
气 体:禁止有可燃气体和导电灰尘
体 积:96 * 71 * 37 mm
重 量:0.2 kg

拨码开关设定

6路拨码开关
S1~S3 细分脉冲
S4~S6 电流设置
在这里插入图片描述
在这里插入图片描述

42BYGH 步进电机

在这里插入图片描述

接线方法

在这里插入图片描述

在这里插入图片描述

控制步进电机的正反转

TB6600驱动器上面有方向控制使能如下图
在这里插入图片描述
通过高低电平的使能方向来控制电机的正方转。
DIR+ 高电平 正转
DIR- 高电平 反转
具体的转向根据实际电机的情况

控制步进电机的调速

通过使用驱动器来调速,开关拨码S1~S3 来设置不同的细分设置,
例如: 200,400,,,,3200,6400。
我们通过设置的pwm 的输入频段来确定每秒的输出,来确定所转化的步数,来确定转动一圈所需要的时间,或者转动的角度来确定的时间,TIM4_PWM_Init(100,500);通过数值算出一秒1440次,电机大约4.44秒转一圈 ,72000000/100/500= 14,40步/s ,设置6400 步为一周,则需要4.44s

在这里插入图片描述

根据定时器时钟的频率,比如时钟的频率是72MHZ,可以理解为一秒钟STM32会自己数72M次,预分频系数就是将频率分割,比如分频系数是72,则该时钟的频率会变成72MHZ/72=1MHZ,但是在设置的时候要注意,数值应该是72-1。假定分频系数是72-1,那么频率变成1MHZ,也就意味着STM32在一秒钟会数1M次,即1us数一次。
接下来就是确定预装载值,比如需要定时1ms,由于1ms=1us*1000,那么预装载值就是1000-1;如此类推,在预分频系数确定的情况下,定时的时长就由预装载值确定了。
至于要把值减一的原因,估计是计数是从0开始,所以要减一。

二、实例

1.源码如下

代码如下(示例):
//通过数值算出一秒1440次,电机大约4.44秒转一圈 ,72000000/100/500= 14,40步/s ,设置6400 步为一周,则需要4.44s

int main(void)
{		
    DIR_Init();		
    TIM4_PWM_Init(100,500);				
    TIM_SetCompare1(TIM4,200/2);	//设置占空比为50%=arr/2
	GPIO_SetBits(GPIOA,GPIO_Pin_0);
}

void DIR_Init(void)		//DIR——PA0初始化
{	
 GPIO_InitTypeDef  GPIO_InitStructure;
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;				 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 
 GPIO_Init(GPIOA, &GPIO_InitStructure);					 
						 				
}

void TIM4_PWM_Init(u16 arr,u16 psc)
{  
    //结构体
	NVIC_InitTypeDef NVIC_InitStructure;
	GPIO_InitTypeDef GPIO_InitStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	//使能时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  
	  
 
   //设置该引脚为复用输出功能,输出TIM4 CH1的PWM脉冲波形	GPIOB.6
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
    
    //设置定时器参数
    TIM_TimeBaseStructure.TIM_Period = arr; 
	TIM_TimeBaseStructure.TIM_Prescaler =psc; 
	TIM_TimeBaseStructure.TIM_ClockDivision = 0; 
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
	TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); 
    
    //中断设置
	TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE ); 
	NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;  
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
	NVIC_Init(&NVIC_InitStructure);  
	
	//初始化TIM4 Channel1 
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
 	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
	TIM_OC1Init(TIM4, &TIM_OCInitStructure);  

	TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  
    TIM_Cmd(TIM4, ENABLE);  //使能TIM4
}
//定时器4中断服务程序
void TIM4_IRQHandler(void)   
{
	if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 
	{
		TIM_ClearITPendingBit(TIM4, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源 

	}
}

2.接线效果

如下图示例:使用共阴极接线法。2跟白线接GND

在这里插入图片描述

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:

例如:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/196435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习与排序模型发展

8.3 深度学习与排序模型发展 学习目标 目标 了解深度学习排序模型的发展应用 无 8.3.1 模型发展 CTR/CVR预估经历了从传统机器学习模型到深度学习模型的过渡。下面先简单介绍下传统机器学习模型(GBDT、LR、到深度模型及应用,然后再详细介绍在深度学习…

基于遗传算法的配电网重构研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Android MVVM 开发新姿势 一

Android MVVM 开发新姿势 一 1. 前言 网上有不少关于Android架构的讨论,如MVC, MVP,MVVM,最近还有MVI,emmm…不得不感慨时代变化太快。MVVM出来也有一段很长的时间了,接触时间不长,写一篇文章…

快速入门pandas进行数据挖掘数据分析[多维度排序、数据筛选、分组计算、透视表](一)

1. 快速入门python&#xff0c;python基本语法 Python使用缩进(tab或者空格)来组织代码&#xff0c;而不是像其 他语言比如R、C、Java和Perl那样用大括号。考虑使用for循 环来实现排序算法: for x in list_values:if x < 10:small.append(x)else:bigger.append(x)标量类型 …

uni-app中vant-Weapp组件库的使用

先创建一个基础的uni-app目录从github下载vant包&#xff0c;zip格式的https://github.com/youzan/vant-weapp/releases项目根目录下创建wxcomponents文件夹把我们下好的文件vant-weapp里面只留下dist其余的可以全部删掉&#xff0c;然后把vant-weapp放到 wxcomponents里面App.…

在CentOS-6.9配置apache服务(2)---虚拟目录配置

文章目录一 需求二 系统环境三 基于Alias普通别名3.1 配置个人主页3.2 编写虚拟目录配置文件3.3 测试四 基于ScriptAlias脚本别名4.1 编写主配置文件4.2 创建测试主页4.3 测试一 需求 基于用户个人主页的身份验证&#xff0c;在浏览器输入 10.0.0.100/~a 可以得到用户a的个人网…

Linux:CPU频率调节模式以及降频方法简介

概述 cpufreq的核心功能&#xff0c;是通过调整CPU的电压和频率&#xff0c;来兼顾系统的性能和功耗。在不需要高性能时&#xff0c;降低电压和频率&#xff0c;以降低功耗&#xff1b;在需要高性能时&#xff0c;提高电压和频率&#xff0c;以提高性能。 cpufreq 是一个动态调…

拉伯证券|机构看好中国经济 人民币资产吸引力持续增强

2023年人民币汇率以及A股强势开局。1月以来人民币对美元中心价已累计增值超3%&#xff0c;接连3个月增值。到1月末&#xff0c;北向资金累计净买入额达1311.46亿元&#xff0c;刷新了沪深股通单月净买入新高。 在“真金白银”加仓布局人民币财物的一起&#xff0c;外资组织也纷…

CSS实现9宫格布局的4种方法:flex、float、grid、table布局

一、实现效果及html代码 1、实现效果 2、html代码 <body><div class"container"><div style"background-color: red">1</div><div style"background-color: blue">2</div><div style"background-…

十二、树结构的实际应用—赫夫曼树

1、赫夫曼树 1.1 基本介绍 给定 n 个权值作为 n 个叶子节点&#xff0c;构造一棵二叉树&#xff0c;若该树的带权路径长度&#xff08;wpl&#xff09;达到最小&#xff0c;称这样的二叉树为最优二叉树&#xff0c;也称哈夫曼树&#xff08;Huffman Tree&#xff09;&#xf…

Java工厂模式

定义&#xff1a;将创建对象的权利交给工厂类实现&#xff0c;解耦对象使用者和对象创建过程。 工厂模式有三种&#xff1a; 1、简单工厂模式 2、工厂方法模式 3、抽象工厂模式 使用工厂模式作用&#xff1a; 1、客户类和对象之间的耦合关系转移到了工厂方法和对象之间 …

pl/sql篇之變量的定義

簡述本篇文章主要介紹pl/sql的變量的簡單數據類型&#xff0c;複雜數據類型定義和調用方法&#xff0c;希望能對讀者有些許作用數據類型介紹變量的定義和調用在pl/sql中&#xff0c;定義的變量在聲明之後&#xff0c;可以直接在後續的sql調用&#xff0c;使用上非常方便簡單數據…

图解 MySQL MVCC 实现原理

文章目录MVCC 产生背景InnoDB 引擎表的隐藏列Undo 回滚版本链一致性视图MVCC 实现原理举例说明 MVCC 实现过程MVCC 产生背景 最早的数据库系统,只有读读之间可以并发,读写,写读,写写之间都要阻塞。而 MVCC (Muti Version Concurrency Control) , 是一种多版本并发控制机制。在…

Pandas+Pyecharts | 全国吃穿住行消费排行榜,最‘抠门’的地区居然是北京!!!

文章目录&#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 计算各项占比&#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 全国各地区人均收入、消费支出排行榜3.2 全国各地区人均可支配收入地图3.3 全国…

HCIA之ARP协议

ARP协议1、原理2、ARP工作过程3、ARP分类1、原理 根据已知的地址来获取与其对应的另一种地址 2、ARP工作过程 目标MAC全F&#xff0c;对于交换机&#xff0c;会洪泛&#xff1b;对于所有主机&#xff0c;都会以为是找自己的。 发送者PC1&#xff1a;发出广播帧&#xff0c;源I…

大型CRM客户管理系统带小程序、H5 java源码(spring boot 后台 前端vue)

功能介绍 1、系统管理&#xff1a;员工管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、日志管理 2、系统监控&#xff1a;在线用户、定时任务、数据监控、服务监控 3、系统工具&#xff1a;表单构建、代码生成、系统接口 4、平台配置&#xff1a;配置…

python - 密码加密与解密

Python之密码加密与解密 - 对称算法一、对称加密1.1 安装第三方库 - PyCrypto1.2 加密实现二、非对称加密三、摘要算法3.1 md5加密3.2 sha1加密3.3 sha256加密3.4 sha384加密3.5 sha512加密3.6 “加盐”加密由于计算机软件的非法复制&#xff0c;通信的泄密、数据安全受到威胁。…

车载音频系统方案的组合设计

现代数学可以分为两大类:一类是研究连续对象的,如分析学、方程等,另一类就是研究离散对象的数学。 有人认为广义的组合数学就是离散数学,也有人认为离散数学是狭义的组合数学和图论、代数结构、数理逻辑等的总称。但这只是不同学者在叫法上的区别,随着计算机科学的日益发…

实现支付宝网站登录

不推荐使用沙箱环境&#xff0c;因为问题太多&#xff0c;如果使用沙箱环境请注意一下几点 alipay.user.info.auth&#xff08;用户登录授权接口&#xff09;的 return_url 必传&#xff0c;建议检查是否设置 return_url。return_url 与应用中的授权回调地址一致。再换沙箱环境…

图解最常用的 10 个机器学习算法

在机器学习领域&#xff0c;有种说法叫做“世上没有免费的午餐”&#xff0c;简而言之&#xff0c;它是指没有任何一种算法能在每个问题上都能有最好的效果&#xff0c;这个理论在监督学习方面体现得尤为重要。 举个例子来说&#xff0c;你不能说神经网络永远比决策树好&#…