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

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

我的代码如下所示:
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,但没有得到我想要的结果。
如有任何帮助,请提前表示感谢:)
发布于 2022-05-01 23:43:58
我对L298做了精确的处理,我认为这与L293完全相同。切换EN引脚是最简单的,而不是IN#引脚。将你的脉宽调制移到EN1,然后用IN1和IN2控制方向。当IN1为0,IN2为1时,电机移动。当引脚被反转时,它向相反的方向移动。使用PSoC5,您可以用1信号控制两个IN#引脚。添加一个1位控制寄存器到您的原理图,并连接到2引脚组件,然后在第二个Gpio和控制寄存器之间放置一个非门。然后,您可以写入控制寄存器,两个Gpios将在同一时间切换,但始终是相反的对方。
https://stackoverflow.com/questions/61067848
复制相似问题