找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3307|回复: 2
打印 上一主题 下一主题
收起左侧

关于STM32,PWM控制电机的疑惑问题

[复制链接]
跳转到指定楼层
楼主
ID:127369 发表于 2016-6-24 12:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
        if (PWM_duty_left>0)                                                //电机1正转
        {         zz();
            if(PWM_duty_left>300) {PWM_duty_left=300;}
        TIM_SetCompare1(TIM3,PWM_duty_left+0);                //tm3 ch1
                               

        }
        else                                                                           //电机1反转
        {       
            if(PWM_duty_left<-300) PWM_duty_left=-300;       
                    PWM_duty_left=-PWM_duty_left;
                        fz();          
                TIM_SetCompare1(TIM3,PWM_duty_left+0);
        }
        if (PWM_duty_right>0)                                           //电机2正转
        {
            if(PWM_duty_right >300) PWM_duty_right =300;
                 zz();
            TIM_SetCompare2(TIM3,PWM_duty_right-0);
   
        }
        else                                                                                 //电机2反转
        {
            if(PWM_duty_right <-300) PWM_duty_right = -300;
                PWM_duty_right=-PWM_duty_right;
                fz();
            TIM_SetCompare2(TIM3,PWM_duty_right-0);
        }       
}
这个是平衡小车的两个电机控制程序,其中语句 TIM_SetCompare1(TIM3,PWM_duty_left+0);和TIM_SetCompare2(TIM3,PWM_duty_right-0); 就能实现电机的正反转,这是为什么?按这个语句的说法就是用TIM3的通道1 2 这个两个口来控制的电机的,但是我就搞不明白了 控制电机不是有IN 1-4吗  IN12控制一个电机 IN1和IN2的PWM差别越大不是速度越快吗?这样的话应该用四个通道(口)来控制两个电机,而他只用了两个通道(口)。顺便说一句我的电机是直流电机。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

板凳
ID:127999 发表于 2016-6-24 17:05 | 只看该作者
我是ST代理商,深圳市创智芯科的工作人员,如果你目前还需要解决该问题,我可以帮你咨询我们的技术人员,他们或许会给出建议或答复。
回复

使用道具 举报

沙发
ID:127369 发表于 2016-6-24 12:50 | 只看该作者
感觉描述不清楚述 上传了附件

自 (蓝牙) 4(好用) 改.zip

6.4 MB, 下载次数: 22

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表