Arduino程序上传-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1931|回复: 0

[未解决] Arduino程序上传

[复制链接]
发表于 2020-12-4 12:09 | 显示全部楼层 |阅读模式
Arduino入门,最近在网上下载了一个IRremote程序包,准备搞一个遥控车,编了一套程序,把这个程序通过IDE导入到UNO控制板中,连接遥控器接收器后,可以测到控制板输入,但是没有输出,是什么问题。程序如下:
#include <IRremote.h>
int RECV_PIN = A0;
int pinLB=4;                   //定义I1接口
int pinLF=5;                   //定义I2接口
int pinRB=7;                   //定义I3接口
int pinRF=6;                   //定义I4接口
int i=120;

//******红外控制按键定义部分********
long advance = 0xFF629D;
long back = 0xFFA857;
long stop = 0xFF02FD;
long left = 0xFF22DD;
long right = 0xFFC23D;
long anjian1 = 0xFF30CF;
long anjian2 = 0xFF18E7;
long anjian3 = 0xFF7A85;
long anjian4 = 0xFF10EF;
long anjian5 = 0xFF38C7;

IRrecv irrecv(RECV_PIN);//设置RECV_PIN(也就是A0引脚)为红外接收端
decode_results results;//定义results变量为红外结果存放位置

void setup()
{
  pinMode(RECV_PIN, INPUT);

  pinMode(pinLB,OUTPUT);
  pinMode(pinLF,OUTPUT);

  pinMode(pinRB,OUTPUT);
  pinMode(pinRF,OUTPUT);

  Serial.begin(9600);  //设定串口的连接速率
  irrecv.enableIRIn(); // Start the receiver 初始化红外接收器
}

void motor(char pin,char pwmpin,char state,int val)                                     //自定义函数motor
{
    pinMode(pin, OUTPUT);   
  if(state==1)                         //当state为1时正转
  {  
    analogWrite(pwmpin,val);      //val值对应转速
    digitalWrite(pin,1);
   }
else if(state==2)                     //当state为2时反转
{  
   analogWrite(pwmpin,val);         //val值对应转速
   digitalWrite(pin,0);
}
else if(state==0)                     //当state为0时停止
{
    analogWrite(pwmpin,0);
    digitalWrite(pin,0);
}
}                                                                                       //结束自定义函数部分


void loop()
{
  if (irrecv.decode(&results))//一开始还是先判断是否接收到红外码,并把接收到的数据存储在变量results中。
  {
     Serial.println( results.value);

     if( results.value == advance)  //向前
      {
          i=100;                    //此处原来是i=i-10
          motor(pinLB,pinLF,1,i);    //左电机向前转
          motor(pinRB,pinRF,1,i);    //右电机向前转

       }

   if(results.value == back)      //向后
  {
    motor(pinLB,pinLF,2,100);    //左电机向后转  转速100
    motor(pinRB,pinRF,2,100);    //右电机向后转  转速100
    i=120;                          //感觉这句程序没用
  }

  if(results.value == left)     //向左转
  {
    motor(pinLB,pinLF,0,100);    //左电机不转
    motor(pinRB,pinRF,1,100);   // 右电机向前转  转速100
    i=120;
  }

  if(results.value == right)    //向右转
  {
    motor(pinLB,pinLF,1,100);     //左电机向前转  转速100
    motor(pinRB,pinRF,0,100);     //右电机不转
    i=120;
  }

  if(results.value == 0xFF02FD)    //停止
  {
    motor(pinLB,pinLF,0,160);    //左电机不转
    motor(pinRB,pinRF,0,160);     //右电机不转
    i=120;
  }


//速度分档
  if(results.value == 0xFF30CF)    //按键一
  {
    motor(pinLB,pinLF,1,150);       //左电机向前转 转速为150
    motor(pinRB,pinRF,1,150);       //右电机向前转 转速为150
  }
  if(results.value == 0xFF18E7)         //按键二
  {
    motor(pinLB,pinLF,1,120);             //左电机向前转 转速为120
    motor(pinRB,pinRF,1,120);             //右电机向前转 转速为120
  }

  if(results.value == 0xFF7A85)          //按键三
  {
    motor(pinLB,pinLF,1,90);                 //左电机向前转 转速为90
    motor(pinRB,pinRF,1,90);            //右电机向前转 转速为90
  }

  if(results.value == 0xFF10EF)           //按键四
  {
    motor(pinLB,pinLF,1,60);                    //左电机向前转 转速为60
    motor(pinRB,pinRF,1,60);           //右电机向前转 转速为60
  }

  if(results.value == 0xFF38C7)            //按键五
  {
    motor(pinLB,pinLF,1,30);                       //左电机向前转 转速为30
    motor(pinRB,pinRF,1,30);          //右电机向前转 转速为30
  }




  /*转向
   *
   * 以下程序没有对应的按键
   */
  if(results.value == 0xFF42BD)         //对应0xFF42BD的按键
  {
    motor(pinLB,pinLF,2,205);    //左电机向后转,转速为205
    motor(pinRB,pinRF,1,50);        //右电机向前转,转速为50
  }

  if(results.value == 0xFF4AB5)         //对应0xFF4AB5的按键
  {
    motor(pinLB,pinLF,0,100);           //左右电机均不转
    motor(pinRB,pinRF,0,100);
  }

  if(results.value == 0xFF52ad)           //对应0xFF52ad的按键
  {
    motor(pinLB,pinLF,1,50);       //左电机向前转,转速为50
    motor(pinRB,pinRF,2,205);         //右电机向后转,转速为205
  }

  irrecv.resume(); // 接收下一个编码
  }
}


我感觉问题出现在头文件,我上传程序的时候不知道怎么上传头文件,只把上边程序上传了。

请大神指点,感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 18:37 , Processed in 0.230201 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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