标题: 关于循迹小车的若干疑问 [打印本页]

作者: Afan的单片机    时间: 2017-12-17 14:45
标题: 关于循迹小车的若干疑问
   本人在制作循迹小车,目前已经到代码阶段。对于小车转弯有不理解,一开始是左右轮给高低电平来实现转弯现在想用pwm来实现,只是自己水平不高所以请教一下大家,谢谢!!

我将图中的pwm下载到单片机当中,照样是一个轮子动一个不动,然而我认为应该是左右轮转速不一样从而实现转弯的?请指教

1.png (10.98 KB, 下载次数: 51)

pwm

pwm

作者: Afan的单片机    时间: 2017-12-17 14:46
请问是T设置时间不够吗?或者用定时器中断?
作者: Afan的单片机    时间: 2017-12-17 19:18
请问谁可以帮我看看吗
作者: fx283    时间: 2017-12-17 21:02
你这写的不是pwm的程序,使用pwm至少得给个定时器吧,还要有中断服务函数。
给个例子:
这是初始化pwm的程序

  1. /**************************************************************
  2. /*函数作用:启动定时器T0,100us
  3. /**************************************************************/
  4. void Time0init()
  5. {
  6.         TMOD = 0x02;
  7.     TH0 = TL0 = 0x9C;
  8.     EA = 1;
  9.     ET0 = 1;
  10.     TR0 = 1;
  11. }
  12. /**************************************************************
  13. /*函数作用:定时器中断
  14. /**************************************************************/
  15. void Timer0Interrupt(void) interrupt 1
  16. {
  17.         pwm++;
  18.         if(pwm>=100) pwm=0;
  19. }
复制代码

可以在你的函数里这样使用:   
  1. void Turn_Left(u8 sudu)
  2. {
  3.         Right_Motor=1;
  4.         if(pwm<=sudu)
  5.                 Left_Motor=1;
  6.         else
  7.                 Left_Motor=0;
  8. }
复制代码
这样,小车要左转,就让它的左轮慢,就给左轮pwm调速调慢它,右轮一直是最大速度,这样就有差速了,实现转弯。

你的pwm不是那样产生的,论坛上有许多关于pwm的讲解,随便一搜就搜得到。




作者: Afan的单片机    时间: 2017-12-18 12:09
fx283 发表于 2017-12-17 21:02
你这写的不是pwm的程序,使用pwm至少得给个定时器吧,还要有中断服务函数。
给个例子:
这是初始化pwm的 ...

我是按照占空比来的啊没错吧
作者: 可可分享    时间: 2017-12-18 16:52
好难的这个  我是新手
作者: Afan的单片机    时间: 2017-12-18 19:05
可可分享 发表于 2017-12-18 16:52
好难的这个  我是新手

really




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1