如何使用PWM调节小车电机转速?

本人刚开始学单片机,程序最好附上解释(>3<)... 本人刚开始学单片机,程序最好附上解释(>3<) 展开
 我来答
百度网友9fe3aa0
推荐于2016-12-02 · TA获得超过1466个赞
知道答主
回答量:41
采纳率:0%
帮助的人:78.5万
展开全部
楼上的我就盗取你的成果了,看这问题,程序最好附上解释就知道您也是初学者了。我来解释下楼上的程序。

PWM 是一个从做功的这么一个说法吧 //PWN脉冲宽度调制
同频率方波 占空比越大(正信号占整个周期信号 时间上的比值) 所做功越大 可以想象了吧

/*就是说,比如你全输出高电平,功率肯定是最大了,一半高一半低,就是中间功率了,全是低电平,功率就最小了。我调节高电平的时长,功率就会变化,说起来很高深,其实也就这么样了
*/

我来写个最简单的 //这真的很简单了
sbit qudong=P*^*
/*都说了要控制电平的高低了,所以至少要一个引脚出来吧,P*^*的意思是,你想哪个脚都行,P0^0,到P4^7,随便你了*/
void delay(unsigned char k)//这个是延时函数
{
unsigned char i;j;
for (i=0;i<k;i++)
for(j=0;j<110;j++);//所谓的延时,因为单片机运行指令要时间,你运行多少个指令,不就过去
//了多少个指令周期过去了么,具体时间是多少,和你的单片机型号和晶
//振有关
}
main() //di第一个
{ qudong=0;//这里拉低电平,关闭电流,作为初始化,你不能一开机机器就转啊转啊,多不好,
while(1)//这里就是程序了,一直运行括号里的东西,直到天荒地老,或者停电。
{ delay(10);//刚刚不是拉低了么,这里延时10,就是低了10的delay的时间过去了。
qudong=1;//现在拉高,后面跟的时间就是高电平的时间了
delay(40);//同理,这里延时40,就是高了40的delay的时间过去了。
qudong=0;//高电平结束,现在又拉低了。
}
//总的来说,这是一个高40,低10的方波,占空比80%。但是有个问题,就是到高电平结束,又拉低了后,会进行一个while(1)的判断,所以不是完整的80%,会有偏差。

当然了 这是个最简单的了 要精确 可以用定时器作为时间延时的函数
//好吧,其实我有一个定时器做延时函数的,但是我不想打字了。。。。上了一天的班,头都是疼的,也不想算计数器初始化的设置参数了,什么TH0 TL0乱七八糟的
void t1(void) interrupt 1 //这就是12M晶振,1秒的定时,时长随便你定,我头疼。
{
TR0=1;//搞个计数器中断
TH0=0x3c;//重新初始化
TL0=0xb0;//这是12M晶振的
timecount++; //中断一次,记个数

main()
{
TMOD = 0x01; //选择计数器0的模式
EA=1; // 打开总中断
ET0=1;TR0=1;//开0计时器
TH0=0x3c;//重新初始化
TL0=0xb0;//这是12M晶振的
这里加点代码,
while(1)
{
if(timecount==几)拉高,
else if(timecount==几)拉低。
else if(timecount==几)timecount=0;//丫的,给我重数
}
追问
谢谢这么用心的指导,上面的解释基本明白,问题已经解决,不过用的是12c5a的PCA的PWM功能直接调节。
追答
其实语言只是一种工具,只要你弄懂了PWM的原理,用什么方式实现,都是一样的!好好努力吧!
一周逗比秀1K
推荐于2018-02-09 · TA获得超过408个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:238万
展开全部
PWM 是一个从做功的这么一个说法吧
同频率方波 占空比越大(正信号占整个周期信号 时间上的比值) 所做功越大 可以想象了吧
我来写个最简单的
sbit qudong=P*^*
void delay(unsigned char k)
{
unsigned char i;j;
for (i=0;i<k;i++)
for(j=0;j<110;j++);

}
main() //di第一个
{ qudong=0;
while(1)
{ delay(10);
qudong=1;
delay(40);
qudong=0;
}

main() //di第二个
{ qudong=0;
while(1)
{ delay(45);
qudong=1;
delay(5);
qudong=0;
}
你搞个电机转一下或者仿真一下 就可以明显看出来 下面一个要慢很多
当然了 这是个最简单的了 要精确 可以用定时器作为时间延时的函数

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
victory_gao521
2011-07-27
知道答主
回答量:26
采纳率:0%
帮助的人:23.3万
展开全部
通过不同的占空比对电机控制芯片(比如298、33886、TPS7350)等的使能进行控制,高电平持续时间越长,则转速越高,越短则转速越低
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式