IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 步进电机与滚珠丝杆 -> 正文阅读

[嵌入式]步进电机与滚珠丝杆

步进电机

前言

在这里插入图片描述
滚珠丝杆在一些特定环境下可以很好的代替机械臂使用。使用滚珠丝杆你必须会用步进电机。

一、ATK-2MD4850驱动

在这里插入图片描述

ATK-2MD4850 是一款高性能细分型 2 相混合式步进电机驱动器,采用 12~48VDC 供电,输出峰值电流可达 5.0A,适合驱动常用的 42、57、86 两相混合式步进电机。此驱动器采用PWM 恒流控制和超小细分技术,使得电机转矩波动小,低速运行平稳以及极小振动和噪音。高速时输出力矩也大大高于其他两相驱动器,定位精度高。广泛适用于雕刻机、数控机床、包装机械等分辨率要求较高的设备上。该驱动器特点包括:
1, 采用先进的双极性 PWM 恒流驱动技术。
2, 高速大力矩输出,避免丢步(空载转速高达 240~300r/min),最高转速达 1200r/min。
3, 灵活的输出电流设定,适用不同型号的电机。
4, 自带自动半流功能,减小电机发热。
5, 支持各种常用的 16 种细分功能,最大支持 128 细分。
6, 直流 12~48V 供电,输出峰值电流高达 5.0A。
7, 支持欠压保护、过流保护、过热保护等功能。
在这里插入图片描述
注意:严禁在驱动器驱动电机转动过程中更改拨码开关!!!

二、使用驱动

1. 控制信号接口

  1. 使能信号接口 ENA+、ENA-
    使能信号 ENA:用驱动器的上下电进行电机通断电操作会使驱动器快速老化,为避免
    这种情况,本驱动器设计了使能信号(ENA)输入端口,也就是通常所说的脱机信号。用户
    可以随时控制此信号,当此信号有效时,驱动器将自动切断电机绕组电流,使电机处于自由
    状态(无保持转矩)。当此信号不连接时默认为无效状态,这时电机绕组通以电流,可正常
    工作。
  2. 方向输入接口 DIR+、DIR-
    方向电平信号 DIR:此信号决定电机的旋转方向。如果此信号有效时,电机顺时针旋转,
    则此信号无效时,电机逆时针旋转。驱动器工作于这种单脉冲模式。
  3. 脉冲输入接口 PUL+、PUL-
    步进脉冲接口 PUL:步进电机驱动器把控制器发出的脉冲信号转化为步进电机的角位
    移,驱动器每接受一个脉冲信号 PUL,就驱动步进电机旋转一个步距角,PUL 的频率和步
    进电机的转速成正比。对于最佳输入要求,此信号占空比最好 1:1,脉冲信号的频率不大于
    100KHz。

2.故障排除

在这里插入图片描述

3.硬件连接

在这里插入图片描述

三、实现代码

#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "key.h"
#include "led.h"	 
#include "usmart.h"	
#include "driver.h"

	 	 
#include "hc05.h" 	 
#include "usart3.h" 	 	 
#include "string.h"	
#include "timer.h"

	
int main(void)
{	 
	//
	u8 reclen=0;
	//
	u8 i;
	u8 keyval;
	
	//
	SystemInit();
	//
	
	delay_init();	    	 //延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(115200);	 	//串口初始化为115200
	usmart_dev.init(72); 	//初始化USMART	
	LED_Init();			     //LED端口初始化
	KEY_Init();					//初始化按键
	Driver_Init();			//驱动器初始化
	TIM8_OPM_RCR_Init(999,72-1); //1MHz计数频率  单脉冲+重复计数模?
	LED1=0;	

//
usmart_dev.init(72); 	//初始化USMART				 	
	HC05_Init();
	delay_ms(100);
	USART2_RX_STA=0;
//
	while(1) 
	{		 	
     
		keyval=KEY_Scan(0);
		if(keyval==WKUP_PRES)
		{
			Locate_Abs(0,500);//按下WKUP,回零点
		}else if(keyval==KEY0_PRES)
		{
			Locate_Rle(300,500,CW);//按下KEY0,以500Hz的频率 顺时针发200脉冲
		}else if(keyval==KEY1_PRES)
		{
			Locate_Rle(300,500,CCW);//按下KEY1,以500Hz的频率 逆时针发400脉冲
		}	

	 if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1))
	 {
	  
		 LED1=0;
	 }
	 else
		 LED1=1;

		delay_ms(10);
		i++;
		if(i==50)	
		{	
			i=0;
		}



if(USART2_RX_STA&0X8000)			//接收到一次数据了
		{
				reclen=USART2_RX_STA&0X7FFF;	//得到数据长度
		  	USART2_RX_BUF[reclen]=0;	 	//加入结束符
				if(reclen==1) 		//控制DS1检测
				{
					if(strcmp((const char*)USART2_RX_BUF,"0")==0) 
						Locate_Rle(300,500,CW);
					if(strcmp((const char*)USART2_RX_BUF,"1")==0) 
						Locate_Rle(300,500,CCW);
				}	
 			USART2_RX_STA=0;	 
		}
		
		
	}			
}


void Driver_Init(void);//驱动器初始化
void TIM8_OPM_RCR_Init(u16 arr, u16 psc);//TIM8_CH2 初始化 单脉冲+重复计数模式
void Locate_Rle(long num, u32 frequency, DIR_Type dir) //相对定位函数
void Locate_Abs(long num, u32 frequency);/绝对定位函数

  1. 驱动器初始化函数,主要就是初始化与驱动器 ENA+,DIR+相连的 2 个 IO为推挽输出;
  2. TIM8_CH2 初始化,此例程产生脉冲所使用的定时器均是 TIM8_CH2(PC7),定时器工
    作在单脉冲+重复计数模式,TIM8 中断频率可以通过 driver.h 下的 RCR_VAL 宏更改,RCR_VAL
    的范围 0~255,每计数 RCR_VAL+1 次中断一次,所以这个值越大,中断频率越低。需要注意
    的是定时器必须初始化为 1MHz 计数频率。
  3. 相对定位函数:在步进电机当前位置基础上顺时针(CW)或者逆时针(CCW)走 num 个脉 冲,此函数带方向控制,DIR_Type 是 driver.h 下声明的一个枚举类型,用于设置电机旋转方向,参数 dir=CW,电机顺时针旋转;dir=CCW,电机逆时针旋转,实验时,如果电机旋转方 向和设置方向相反,不用更改电机接线,只需要更改 driver.h 下的 CW=0,CCW=1;参数 num范围 0~2147483647;frequency 范围 20Hz~100KHz。
  4. 绝对定位函数:步进电机按设定频率转动到设置的绝对位置,开发板上电和复位时,
    当前位置为 0,电机的当前位置用一个 long 型变量 current_pos 指示。在 current_pos=0 的基
    础上顺时针转动后 current_pos 为正,否则为负。此函数不带方向控制,驱动器根据参数的
    正负自动设置电机旋转方向,转动到绝对位置。参数 num 范围-2147483648~2147483647;
    frequency 范围 20Hz~100KHz。
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:36:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:22:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码