找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2530|回复: 6
收起左侧

关于循迹小车的若干疑问

[复制链接]
ID:245521 发表于 2017-12-17 14:45 | 显示全部楼层 |阅读模式
   本人在制作循迹小车,目前已经到代码阶段。对于小车转弯有不理解,一开始是左右轮给高低电平来实现转弯现在想用pwm来实现,只是自己水平不高所以请教一下大家,谢谢!!

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

pwm

pwm
回复

使用道具 举报

ID:245521 发表于 2017-12-17 14:46 | 显示全部楼层
请问是T设置时间不够吗?或者用定时器中断?
回复

使用道具 举报

ID:245521 发表于 2017-12-17 19:18 | 显示全部楼层
请问谁可以帮我看看吗
回复

使用道具 举报

ID:162229 发表于 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的讲解,随便一搜就搜得到。



评分

参与人数 1黑币 +90 收起 理由
admin + 90 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:245521 发表于 2017-12-18 12:09 | 显示全部楼层
fx283 发表于 2017-12-17 21:02
你这写的不是pwm的程序,使用pwm至少得给个定时器吧,还要有中断服务函数。
给个例子:
这是初始化pwm的 ...

我是按照占空比来的啊没错吧
回复

使用道具 举报

ID:262559 发表于 2017-12-18 16:52 来自手机 | 显示全部楼层
好难的这个  我是新手
回复

使用道具 举报

ID:245521 发表于 2017-12-18 19:05 | 显示全部楼层
可可分享 发表于 2017-12-18 16:52
好难的这个  我是新手

really
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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