首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用脉宽调制PSoC实现直流电机的速度和方向

用脉宽调制PSoC实现直流电机的速度和方向
EN

Stack Overflow用户
提问于 2020-04-06 19:50:28
回答 1查看 328关注 0票数 0

我需要能够改变方向和速度的小型直流电动机使用PSoC LP5和L293D。所使用的马达就是其中之一:https://www.elecrow.com/dc-toy-hobby-motor-130-size-p-265.html。我可以通过改变输入来改变方向而不用PWM,这给了我下表。

但后来我也不得不改变速度。这个项目的原理图见下文。PWM周期已设置为1000。

我的代码如下所示:

代码语言:javascript
复制
int main(void)
{
    PWM_1_Start();
    for(;;)
    {   

        DIRECTION_Write(0);
        PWM_1_WriteCompare(400);
        CyDelay(2000);
        // 2 seconds clockwise low speed
        PWM_1_WriteCompare(0);
        CyDelay(2000);
        // 1 second nothing
        DIRECTION_Write(1);
        PWM_1_WriteCompare(400);
        CyDelay(2000);
        // 2 seconds counter-clockwise low speed
        PWM_1_WriteCompare(0);
        CyDelay(2000);
        // 1 second nothing
    }
}

电机现在只逆时针旋转,然后停止5秒,再次做同样的事情。我尝试过其他组合,例如也使用SPEED_Write,但没有得到我想要的结果。

如有任何帮助,请提前表示感谢:)

EN

回答 1

Stack Overflow用户

发布于 2022-05-01 23:43:58

我对L298做了精确的处理,我认为这与L293完全相同。切换EN引脚是最简单的,而不是IN#引脚。将你的脉宽调制移到EN1,然后用IN1和IN2控制方向。当IN1为0,IN2为1时,电机移动。当引脚被反转时,它向相反的方向移动。使用PSoC5,您可以用1信号控制两个IN#引脚。添加一个1位控制寄存器到您的原理图,并连接到2引脚组件,然后在第二个Gpio和控制寄存器之间放置一个非门。然后,您可以写入控制寄存器,两个Gpios将在同一时间切换,但始终是相反的对方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61067848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档