首页 理论教育 自定义函数控制参考程序优化

自定义函数控制参考程序优化

时间:2023-06-24 理论教育 版权反馈
【摘要】:在程序编写过程中,如果每条命令都是直接书写的话,程序会非常冗余,维护及阅读均会比较困难。C语言是一种面向过程的编程方法,可以让重复的命令放在一个函数中。在程序的运行过程中,只调用一下函数即可完成各种工作,这会使得代码更简洁,编程也更加方便。moveRobot()就是一个让小曼进行跑步的函数。moveSpeed在定义时给了默认值255,因此,在调用该函数时,如果不填moveSpeed的值,小曼机器人会以最快速度运动。

自定义函数控制参考程序优化

在程序编写过程中,如果每条命令都是直接书写的话,程序会非常冗余,维护及阅读均会比较困难。

C语言是一种面向过程的编程方法,可以让重复的命令放在一个函数中。在程序的运行过程中,只调用一下函数即可完成各种工作,这会使得代码更简洁,编程也更加方便。

moveRobot()就是一个让小曼进行跑步的函数。其中dir、moveSpeed为moveRobot()函数的两个入口参数,dir代表机器人运动方向,moveSpeed代表机器人的运动速度。

dir可取数值为0、1、2、3、4,分别代表停止、前进、后退、左转、右转。

moveSpeed在定义时给了默认值255,因此,在调用该函数时,如果不填moveSpeed的值,小曼机器人会以最快速度运动。

void moveRobot(int dir,int moveSpeed=255) {

//参数说明[dir:方向(0:停止;1:前进;2:后退;3:左转;4:右转);

moveSpeed:速度(175—255),默认值为255]

  if(dir==0){           //停止

    //左电机停止转动

    analogWrite(myMotorL[0],0);

    analogWrite(myMotorL[1],0);

    //右电机停止转动

    analogWrite(myMotorR[0],0);

    analogWrite(myMotorR[1],0);

  }

  else if(dir==1){        //前进

    //左电机逆时针旋转

    analogWrite(myMotorL[0],0);

    analogWrite(myMotorL[1],moveSpeed);

    //右电机顺时针旋转

    analogWrite(myMotorR[0],0);

    analogWrite(myMotorR[1],moveSpeed);

  }

  else if(dir==2){        //后退

    //左电机顺时针旋转

    analogWrite(myMotorL[0],moveSpeed);

    analogWrite(myMotorL[1],0);

    //右电机逆时针旋转

    analogWrite(myMotorR[0],moveSpeed);(www.xing528.com)

    analogWrite(myMotorR[1],0);

  }

 else if(dir==3){         //左转

  //左电机顺时针旋转

  analogWrite(myMotorL[0],moveSpeed);

  analogWrite(myMotorL[1],0);

  //右电机顺时针旋转

  analogWrite(myMotorR[0],0);

  analogWrite(myMotorR[1],moveSpeed);

 }

 else if(dir==4){         //右转

  //左电机逆时针旋转

  analogWrite(myMotorL[0],0);

  analogWrite(myMotorL[1],moveSpeed);

  //右电机逆时针旋转

  analogWrite(myMotorR[0],moveSpeed);

  analogWrite(myMotorR[1],0);

 }

}

定义了moveRobot()函数后,在编写控制机器人运动的程序时会非常方便,例如要控制机器人前进,只需要调用moveRobot()函数,并传入方向、速度参数,

moveRobot(1,255);

如下程序,机器人前进3秒,后退3秒,最后停止,

moveRobot(1,255); //前进

delay(3000);

moveRobot(2,255); //后退

delay(3000);

moveRobot(0);   //停止

这就是直流电机的魅力,有了它,小曼步法敏捷,无论是加速跑还是减速缓行,亦或是前进后退,能都“信足拈来”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈