找回密码
 立即注册

QQ登录

Arduino uno R3+双H桥驱动板+红外遥控小车编程问题

来源: 已解决 cpmoving 2014-8-15 15:41 显示全部楼层 |阅读模式
#include <IRremote.h>
int receiverpin = 11;//红外接收信号引脚
int pinI1=8;//定义I1接口
int pinI2=9;//定义I2接口
int speedpin1=10;//定义EA(PWM调速)接口
int pinI3=4;//定义I3接口
int pinI4=5;//定义I4接口
int speedpin2=6;//定义EB(PWM调速)接口

//红外遥控逻辑代码
#define ADVAN 0x1081F   //遥控器>>键
#define BAC   0xFF      //遥控器<<键
#define STO   0x147DF   //遥控器>|键
IRrecv irrecv(receiverpin);//初始化
decode_results results;//定义结构体类型

void setup()
{
  pinMode(pinI1,OUTPUT);//定义该接口为输出接口
  pinMode(pinI2,OUTPUT);
  pinMode(speedpin1,OUTPUT);
  pinMode(pinI3,OUTPUT);//定义该接口为输出接口
  pinMode(pinI4,OUTPUT);
  pinMode(speedpin2,OUTPUT);
  pinMode(receiverpin,INPUT);
  Serial,begin(9600);
  irrecv.enableIRIn();// 开始接收
}

void loop()
{
   if (irrecv.decode(&results))
   {
      Serial.println(results.value, HEX);
     switch(results.value)
     {
     case ADVAN://>>键前进
       goForward(100);
       break;
     case BAC://<<键后退
       goBackward(100);
       break;
     case STO://>|键停止
       stopa();
       break;         
    default:
       delay(600);
     }
     irrecv.resume(); // 接收下一个值
   }
   delay(600);
}

void goForward(int a)//前进
{
analogWrite(speedpin1,a);//输入模拟值进行设定速度  
analogWrite(speedpin2,a);
digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
digitalWrite(pinI2,HIGH);
digitalWrite(pinI3,LOW);//使直流电机(右)逆时针转
digitalWrite(pinI4,HIGH);
delay(2000);
}

void goBackward(int b)//后退
{
analogWrite(speedpin1,b);//输入模拟值进行设定速度  
analogWrite(speedpin2,b);
digitalWrite(pinI1,HIGH);//使直流电机(左)逆顺时针转
digitalWrite(pinI2,LOW);
digitalWrite(pinI3,HIGH);//使直流电机(右)顺时针转
digitalWrite(pinI4,LOW);
delay(2000);
}

void stopa()//停止
{   
digitalWrite(pinI1,HIGH);//使直流电机(左)制动  
digitalWrite(pinI2,HIGH);
digitalWrite(pinI3,HIGH);//使直流电机(右)制动
digitalWrite(pinI4,HIGH);   
delay(2000);
}

这是我的红外遥控小车(前进、后退和停止)的完整程序,不知道为什么Verify的时候出现
sketch_control_vehicle.ino: In function 'void setup()':
sketch_control_vehicle.ino:27:20: error: 'begin' was not declared in this scope
求大师指教,编程菜鸟,求详细回答,谢谢啦!
回复

使用道具 举报

大神点评7

Arduino77 2014-8-18 23:08 显示全部楼层
你写的是Serial,begin(9600);中间用的是逗号,应该写成Serial.begin(9600);中间应该用的英文输入法下的句号“.”
再使用较低版本的Arduino软件编译,例如0022版本,就可以编译成功了。
回复 支持 反对

使用道具 举报

cpmoving 2014-8-20 08:55 显示全部楼层
Arduino77 发表于 2014-8-18 23:08
你写的是Serial,begin(9600);中间用的是逗号,应该写成Serial.begin(9600);中间应该用的英文输入法下的句号 ...

你好,不好意思,因为各种原因现在才回复,我已将逗号改过了,但又出现以下问题:
C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
                ^
不知是不是跟编译软件版本有关,还请指点一二。多谢!
回复 支持 反对

使用道具 举报

奥松-Sam 2014-8-20 09:39 显示全部楼层
cpmoving 发表于 2014-8-20 08:55
你好,不好意思,因为各种原因现在才回复,我已将逗号改过了,但又出现以下问题:
C:\Program Files (x86 ...

更换一个低版本的Arduino IED 类似于Arduino 0022
回复 支持 反对

使用道具 举报

cpmoving 2014-8-20 09:53 显示全部楼层
奥松-Sam 发表于 2014-8-20 09:39
更换一个低版本的Arduino IED 类似于Arduino 0022

官网上只有Arduino 1.0.5和Arduino 1.5.7 BETA,没看到您所说的Arduino 0022,我用的是Arduino 1.5.7 BETA,不知改成Arduino 1.0.5是否可行?
回复 支持 反对

使用道具 举报

cpmoving 2014-8-20 10:57 显示全部楼层
奥松-Sam 发表于 2014-8-20 09:39
更换一个低版本的Arduino IED 类似于Arduino 0022

arduino 官网上已经没有Arduino-0022版本的下载,而且arduino 1.0.5下载也出现问题,只能下载arduino 1.5.7 BETA,能麻烦帮忙发我邮箱吗?谢谢!cpmoving@163.com
回复 支持 反对

使用道具 举报

cpmoving 发表于 2014-8-20 10:57
arduino 官网上已经没有Arduino-0022版本的下载,而且arduino 1.0.5下载也出现问题,只能下载arduino 1.5 ...

http://www.arduino.cc/en/Main/OldSoftwareReleases
回复 支持 反对

使用道具 举报

Simbad 2015-7-27 17:50 显示全部楼层
收益了!
回复

使用道具 举报

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