上一篇文章讲了可以利用PWM脉冲来控制电机的转速, 并且占空比越高电机转速越快。 前面说的是利用按键来控制PWM脉冲信号的输出, 但是在实际小车中总不能一直跟着小车跑吧, 那样多没意思。 所以这次我用红外通信(遥控器)来进行对小车的控制。 外部中断0服务函数来对红外信号进行接收, 并且让小车作出相应的处理。 利用定时器T0来控制PWM脉冲信号的形成(即控制小车的转速), 我在利用定时器控制PWM脉冲形成时遇到了一个问题:我原本想的是用两个定时器来控制两个电机的转动, 但是因为优先级的原因一直没有成功, 在这里浪费了很多时间, 最后和其他人的讨论中发现用一个定时器也可以对两个电机进行控制, 让其独立的转动。 到现在 我的小车已经能准确的接收到遥控器接收的指令并按照指令进行相应的运动。 虽然在这个过程中出现了一些小插曲:比如昨天晚上51单片机烧了, 额, 连着开发板一块烧了 (捂脸), 还有实验室有多余的 (哈哈)。 到现在我的小车已经具备基本的功能了, 前进、后退、转弯等, 虽然精度很差(因为程序是自己写的), 但是也可以按照我的意愿跑了。 接下来应该会在这各个小车的基础上做一个寻迹的小车。 什么是在这个小车的基础上呢? 就是这个小车功能不会删除, 在加一个寻迹的功能; 然后可以在红外控制和寻迹之间自由切换; 想玩哪个就玩那个。
代码全部在附件里面。 由于附件不能添加.c文件, 所以代码时用的.doc。 需要的朋友请自己复制到编译器上面, 以免影响阅读
|