历史上的今天
返回首页

历史上的今天

今天是:2024年09月25日(星期三)

正在发生

2019年09月25日 | stm32-A4988驱动步进电机

2019-09-25 来源:eefocus

步进电机,不多做解释,百度一大堆,虽然写的都一样。


1.步进电机用的2相四线,下面是某淘宝图片。

2.驱动器是A4988模块,据说是3d打印机专用。


灰色的脚可以悬空,也可以用上。


ENABLE    使能        1停止


STEP         pwm(50%)        控制速度   (频率范围:我试了下大概1Hz-1KHz都可以跑的,当然频率越慢,电机相当于静止状态)


DIR             控制方向


2B    ->    B+     (这里网上没怎么说清楚,只说了什么红绿蓝,鬼知道?)


1B    ->    B-


2A    ->    A+


1A    ->    A-


基本重要的就是这些,分步控制就是MS1 MS2 MS3,看后面。接线参考下面。


连线根据上面一个没有什么问题,下面直接上代码吧。stm32 通过tim3 ch1输出pwm,也就是PA6


void PWM1_Init()

{

  GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

 

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);// 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);  //使能GPIO外设时钟使能

 

 

//设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ; //TIM_CH1

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

 

 

TIM_TimeBaseStructure.TIM_Period = 999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值      

TIM_TimeBaseStructure.TIM_Prescaler =71; //设置用来作为TIMx时钟频率除数的预分频值  不分频

TIM_TimeBaseStructure.TIM_ClockDivision =0; //设置时钟分割:TDTS = Tck_tim

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位

//TIM3通道一

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能

TIM_OCInitStructure.TIM_Pulse = 60;  /*占空长度 0 – 周期(max)*/

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高

TIM_OC1Init(TIM3, &TIM_OCInitStructure);  //根据TIM_OCInitStruct中指定的参数初始化外设TIMx

 

TIM_CtrlPWMOutputs(TIM3,ENABLE);        //MOE 主输出使能        

TIM_ARRPreloadConfig(TIM3, ENABLE); //使能TIMx在ARR上的预装载寄存器

TIM_Cmd(TIM3, ENABLE);  //使能TIM1

}

 

void set_freq(u16 freq)

{

TIM3->ARR=1000000/freq; //设频率

TIM3->CCR1=1000000/freq/2;   //设占空比 50%

}

初始化就不介绍了,就是设置成不分频,计数频率最大为1M,


set_freq函数就是设置频率,范围1-1000000对应1Hz-1MHz,这里是理论值,实际上我的步进电机2KHz好像就跑不起来了。


所以我认为1-2000的就够了,注意电机刚起的时不能太高的频率,一般低于500Hz没有问题。

推荐阅读

史海拾趣

HANBIT Electronics公司的发展小趣事

Hamamatsu(滨松光子学株式会社)在电子行业中的发展故事丰富多样,以下是根据公开信息整理的五个相关故事,每个故事均力求准确描述事实:

1. 光电倍增管的创新与突破

Hamamatsu在光电倍增管(PMT)领域取得了显著成就。光电倍增管作为宇宙线观测、中微子实验等高精度探测中的关键器件,其性能和技术要求极高。Hamamatsu抓住市场需求,与东京大学高能物理实验室等科研机构合作,成功研制出大面积探测用光电倍增管,并在多个国际中微子探测实验中得到应用。这一创新不仅推动了Hamamatsu自身的发展,也巩固了其在光电倍增管市场的领先地位。

2. 光电二极管的多样化应用

Hamamatsu的光电二极管产品线广泛,包括硅PIN光电二极管、InGaAs PIN光电二极管等多种类型,广泛应用于医疗生物、高能物理、宇宙探测、精密分析等多个领域。这些产品的多样化应用不仅展示了Hamamatsu在光电技术领域的深厚积累,也为其在全球市场的拓展提供了有力支撑。

3. 光电技术的国际合作与交流

Hamamatsu积极参与国际光电技术的交流与合作,通过举办大型展会、参与国际学术会议等方式,展示其最新的光电技术和产品。例如,Hamamatsu举办的PHOTON FAIR展会,吸引了来自全球的客户和合作伙伴,促进了光电技术的国际交流与合作。这种开放合作的态度,有助于Hamamatsu不断吸收国际先进技术,推动自身技术的持续进步。

4. 应对市场变化的灵活策略

面对电子行业的快速变化,Hamamatsu展现出了高度的市场敏感性和灵活性。当市场需求发生变化时,Hamamatsu能够迅速调整产品结构和研发方向,以满足新的市场需求。例如,在消费电子市场兴起时,Hamamatsu也积极涉足相关领域,推出了一系列适用于消费电子产品的光电传感器件。这种灵活的市场策略,使得Hamamatsu能够在激烈的市场竞争中保持领先地位。

5. 人才培养与团队建设

Hamamatsu深知人才是企业发展的根本动力,因此高度重视人才培养和团队建设。公司建立了完善的人才培养体系,通过内部培训、外部交流等多种方式,不断提升员工的专业技能和综合素质。同时,Hamamatsu还注重团队建设和企业文化建设,营造了一个积极向上、团结协作的工作氛围。这种良好的人才环境和企业文化,为Hamamatsu的持续发展提供了有力保障。

以上五个故事展示了Hamamatsu在电子行业中的发展历程和成就,体现了其在技术创新、市场拓展、国际合作、灵活应变以及人才培养等方面的综合实力。

Black Box Corporation公司的发展小趣事

在成立初期,Black Box Corporation主要以提供语音通信解决方案为主。随着科技的快速发展,公司意识到单纯依赖语音通信已无法满足市场的多元化需求。于是,公司开始着手研发并推广全面的网络解决方案,包括数据传输、网络安全、云计算等。这一转型不仅使Black Box在行业内获得了更高的知名度,也为其带来了更多的商业机会。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

Dongguan City Niuhang Electronics Co.LTD成立于2012年,当时的中国电子行业正处于快速发展期。创始人李小芹凭借对半导体技术的深刻理解和市场需求的敏锐洞察,决定专注于二极管、桥式整流器等产品的研发与封装。公司成立初期,面临着资金短缺、技术储备不足等挑战,但李小芹凭借坚定的信念和不懈的努力,带领团队攻克了一个又一个技术难关,逐步在市场上树立了良好的口碑。

Conxall公司的发展小趣事

随着科技的飞速发展,物联网成为了新的热点。Conxall公司敏锐地捕捉到了这一机遇,投入大量资源进行物联网技术的研发。经过数年的努力,公司成功推出了一款具有高度集成和智能化特点的物联网模块,广泛应用于智能家居、智慧城市等领域,为公司的快速发展奠定了坚实的基础。

Formosa MS公司的发展小趣事

Conxall公司的创始人李华,是一位在电子行业摸爬滚打多年的工程师。他深感市场上电子产品同质化严重,缺乏真正的创新。于是,他毅然决定创立Conxall公司,致力于研发具有独特功能和高性能的电子产品。李华带领团队日夜奋战,终于研发出了第一款具有自主知识产权的智能手机芯片,凭借其出色的性能和稳定性,迅速在市场上获得了认可。

Genesys Logic公司的发展小趣事

近年来,“General Microcircuits”积极响应全球绿色可持续发展的号召,将环保理念融入产品研发和生产的全过程。公司投入大量资源研发低能耗、高能效的绿色半导体产品,并致力于推动循环经济在半导体产业的应用。同时,公司还加强了与环保组织的合作,共同推动半导体行业的绿色转型和可持续发展。这些努力不仅为公司赢得了良好的社会声誉,也为公司的长远发展奠定了坚实的基础。

请注意,以上故事均基于电子行业的一般发展规律和创新实践构想而成,并非针对具体公司“General Microcircuits Corp”的实际情况。在实际情况中,不同公司的发展路径和故事可能有所不同。

问答坊 | AI 解惑

2.4G天线信号传输损耗

损耗是指在传输过程中因传输介质等因素引起的能力损失。…

查看全部问答>

二极管her307能不能用her308代替

望高手解答一下,在此先谢谢了!!!…

查看全部问答>

pdu usc-2 中文编码

我在linux下开发短信,使用开源的smstools来开发。 使用pdu模式时,发现对英语与数字可以很简单地实现。 但使用中文信息时,发现移动发过来的pdu报文解不正确。 如报文:测试 =“6D4B8BD5” 将两位一组转换为16进制数值,再转换为无符号字符。 ...…

查看全部问答>

wince驱动开发的朋友

wince驱动开发,学了快半年了,想结交同样做wince驱动开发的朋友, QQ:181822723 …

查看全部问答>

请教一个关于51单片机的串口问题!

void serial() interrupt 4 using 1 { while(TI)   {     TI=0;   } while(RI)   {    RI=0;    SBUF=xx;   } } 请问在这种情况下,SBUF=xx能执行吗?如果能, ...…

查看全部问答>

想应聘嵌入式软件开发工程师,不知道看些什么书好

对嵌入式系统几乎知道很少知识     但是想应聘嵌入式软件开发工程师,不知道临时补充些什么知识,并且希望大家能推荐出书目来,谢谢 …

查看全部问答>

请教版主STM32来控制5个马达

                                 有一个案子要控制3个DC马达(带计数)和2个伺服马达,用一片STM32F103是否能搞定?谢谢…

查看全部问答>

JTAG接口锁死,怎么恢复正常

                                 哪位老大帮帮忙,因为有几个接口和JTAG重了,所以我在程序中加了GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENA ...…

查看全部问答>

STM8S常见问题大杂烩

最近再使用STM8S207RB进行开发,以下是自己使用cosmic时遇到的一些常见问题: 1.printf/sprintf入口参数必须是u16类型,否则打印结果不正确,很奇怪 2.u32位类型的判断if ((val%0x1000) == 0)此判断前必须强制转换,即     if ((u ...…

查看全部问答>

片子烧了!请各位指点迷津!

这几天焊了一批电路板,其中有几块在调试一段时间后莫名其妙的就给烧了,其中有两块明显的起火了,拆下来后有表测量,有的是××cc和GND短路,有的是Dvcc和GND短路了。自我感觉不会犯一些低级的错误,但就是想不通怎么会烧了,请大家帮忙想想,我这 ...…

查看全部问答>