扫我~扫我~

获取更多资讯

    查看: 6045|回复: 7

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

    [复制链接]

    1

    主题

    5

    帖子

    40

    积分

    小松籽

    Rank: 1

    积分
    40
    发表于 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

    主题

    43

    帖子

    284

    积分

    小松塔

    Rank: 3Rank: 3

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

    使用道具 举报

    1

    主题

    5

    帖子

    40

    积分

    小松籽

    Rank: 1

    积分
    40
     楼主| 发表于 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
                    ^
    不知是不是跟编译软件版本有关,还请指点一二。多谢!
    回复 支持 反对

    使用道具 举报

    3

    主题

    74

    帖子

    374

    积分

    网站编辑

    Rank: 8Rank: 8

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

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

    使用道具 举报

    1

    主题

    5

    帖子

    40

    积分

    小松籽

    Rank: 1

    积分
    40
     楼主| 发表于 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是否可行?
    回复 支持 反对

    使用道具 举报

    1

    主题

    5

    帖子

    40

    积分

    小松籽

    Rank: 1

    积分
    40
     楼主| 发表于 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
    回复 支持 反对

    使用道具 举报

    10

    主题

    102

    帖子

    413

    积分

    小松鼠

    Rank: 7Rank: 7Rank: 7

    积分
    413
    发表于 2014-8-20 17:02 | 显示全部楼层
    cpmoving 发表于 2014-8-20 10:57
    arduino 官网上已经没有Arduino-0022版本的下载,而且arduino 1.0.5下载也出现问题,只能下载arduino 1.5 ...

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

    使用道具 举报

    2

    主题

    12

    帖子

    35

    积分

    小松籽

    Rank: 1

    积分
    35
    发表于 2015-7-27 17:50 | 显示全部楼层
    收益了!
    回复

    使用道具 举报

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

    本版积分规则

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