红外的数据是不连续的,所以试着用315M无线模块做遥控。在有了红外小车的基础上,无线就很简单了,循环判断按键是否按下就行了。我买的这个遥控套件好像有点问题,有一个按键没反应。。。
而且我这个套件还有另外一个问题,有时候突然没信号,要把天线对准它用力按,然后又有信号了。。。 囧
51单片机程序
控制的方法是,按住1键左转,按住3键右转,同时按住1,3键前进,按住2就后退
/*
电机控制板接P1
IN1 > P10
IN2 > P11
IN3 > P12
IN4 > P13
*/
/*预处理命令*/
#include //包含单片机寄存器的头文件
#include //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
#define motor P1
/* 函数申明 ———————————————–*/
void delay(uchar x);
/* 变量定义 ———————————————–*/
/*无线数据线接P2*/
sbit key1=P2^4;
sbit key2=P2^5;
sbit key3=P2^6;
sbit key4=P2^7;
/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
********************************************************************************
*/
main()
{
motor=0;
while(1){
if(key1==1 && key3==1){
motor=0xf5;
}else if(key1==1){
motor=0xfd;
}else if(key3==1){
motor=0xf7;
}else if(key2==1){
motor=0xfa;
}else{
motor=0;
}
//delay(200);
}
}
/*
********************************************************************************
** 函数名称 : delay(uchar x)
** 函数功能 : 延时函数
********************************************************************************
*/
void delay(uchar x) //x*0.14MS
{
uchar i;
while(x–)
{
for(i=0;i<13;i++);
}
}