MSP432使用步进电机

本文介绍了使用MSP432P401R微控制器配合DM542步进电机驱动器实现1分钟转一圈的步进电机控制。通过调整TIMER_A的PWM配置,计算出适当的脉冲数量和频率,以达到所需速度。代码示例展示了如何初始化定时器和设置角度输入。接线图显示了电机连接方式,并提到高速转动可能需要更高电压和电流。
摘要由CSDN通过智能技术生成

MSP432P401步进电机使用

其实是电赛练手题里有一个1分钟转一圈的要求,就算我把占空比改到最小,也无法办到,证明普通电机无法办到这一点,只好用到步进电机。同时我们还要一个步进电机驱动,就是之后图片的大黑盒子DM542,大概100大洋左右。

在这里插入图片描述

代码部分

设置TIMER_A输出pwm

Timer_A_PWMConfig TIM0_PwmConfig2 =
        {
                TIMER_A_CLOCKSOURCE_SMCLK,
                TIMER_A_CLOCKSOURCE_DIVIDER_16,
                7000,
                TIMER_A_CAPTURECOMPARE_REGISTER_2,
                TIMER_A_OUTPUTMODE_RESET_SET,
                3750,
        };

分析:细分数可以细分1/2/4/8/16/32,即每给一个脉冲转过角度(1.8/细分数)
如果要转360°,就要360/(1.8/细分数),假设细分数为32,就要给6400个脉冲转一圈,而一圈对应60s

时钟频12000000(在源程序中时钟源设置为12000000)/16(TIMER_A_CLOCKSOURCE_DIVIDER_16)/7500(之后会改)=100HZ
即0.01s内给一次脉冲,(6000个0.01s为1分钟)但实际上在这一分钟内给的是6400/6000=1.067个脉冲,修正后psc给7000比较合适,相当于缩短了周期6400/7000=0.91个脉冲

电机初始化
void TimerA0_Init()
{
       MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2,GPIO_PIN4,GPIO_PRIMARY_MODULE_FUNCTION);
       MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2,GPIO_PIN5,GPIO_PRIMARY_MODULE_FUNCTION);
       Timer_A_generatePWM(TIMER_A0_BASE, &TIM0_PwmConfig1);
       Timer_A_generatePWM(TIMER_A0_BASE, &TIM0_PwmConfig2);
}
直接角度输入
void set_Angle(float angle)`//这里我转化成角度来测试
{
    delay_us(angle*4000);
    MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN5);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN5);
}
主程序
void main(void)
{
	WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;		// stop watchdog timer
    TimerA0_Init();
//    set_Angle(90);
    while(1)
    {
    }
}

垃圾接线大家勉强看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jaqvmo6m-1629865611021)(C:\Users\26704\AppData\Roaming\Typora\typora-user-images\image-20210726221352590.png)]

EN+和-以及PUL-DIR-全部接地(共阴接法)

PUL+接pwm DIR+默认3.3V

A+A-接步进电机最左最右,B+B-接中间两个

VCC(接电源9-42V),咨询学长后知道,如果要转高速的话电压和电流也要增大,GND接电源GND

SW设置

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值