我是靠谱客的博主 动人钢笔,最近开发中收集的这篇文章主要介绍ROS小车-1-电机测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

主控板:Arduino nano

Arduino nano

设置端口时GPIO的序号参照紫色标号,每一路电机需要使用一个PWM端口和两个数字端口。左轮的PWM端口为5-D5,方向控制为4-D4,2-D2。右轮的PWM端口为9-D9,方向控制为7-D7,8-D8

代码实现逻辑
1.定义左电机和右电机的两个方向引脚和pwm引脚
2.在setup函数中将两个引脚都设置为 OUTPUT
3.在loop函数中写入具体的实现代码

/*
 * 电机转动控制
 * 1.定义接线中电机对应的引脚
 * 2.setup 中设置引脚为输出模式
 * 3.loop中控制电机转动
 * 
 */



//左电机
int DIRA_1 = 4;
int DIRA_2 = 2;
int PWMA = 5;
//左电机


//右电机
int DIRB_1 = 7;
int DIRB_2 = 8;
int PWMB = 9;
//右电机





void setup() {
  //两个引脚都设置为 OUTPUT
  pinMode(DIRA_1,OUTPUT);
  pinMode(DIRA_2,OUTPUT);
  pinMode(PWMA,OUTPUT);

  pinMode(DIRB_1,OUTPUT);
  pinMode(DIRB_2,OUTPUT);
  pinMode(PWMB,OUTPUT);


}

void loop() {
  //先正向转动3秒
  digitalWrite(DIRA_1,HIGH);
  digitalWrite(DIRA_2,LOW);

  digitalWrite(DIRB_1,LOW);
  digitalWrite(DIRB_2,HIGH);

  analogWrite(PWMA,100);
  analogWrite(PWMB,100);

  delay(3000);



  //停止3秒
  digitalWrite(DIRA_1,HIGH);
  digitalWrite(DIRA_2,HIGH);

  digitalWrite(DIRB_1,HIGH);
  digitalWrite(DIRB_2,HIGH);

  analogWrite(PWMA,0);
  analogWrite(PWMB,0);

  delay(3000);



  //再反向转动3秒
  digitalWrite(DIRA_1,LOW);
  digitalWrite(DIRA_2,HIGH);

  digitalWrite(DIRB_1,HIGH);
  digitalWrite(DIRB_2,LOW);


  analogWrite(PWMA,100);
  analogWrite(PWMB,100);
  delay(3000);




  //停止3秒
  digitalWrite(DIRA_1,HIGH);
  digitalWrite(DIRA_2,HIGH);

  digitalWrite(DIRB_1,HIGH);
  digitalWrite(DIRB_2,HIGH);

  analogWrite(PWMA,0);
  analogWrite(PWMB,0);

  delay(3000);
  /*
   * 注意: 
   * 1.可以通过将DIRA设置为HIGH或LOW来控制电机转向,但是哪个标志位正转或反转需要根据需求判断,转向是相对的。
   * 2.PWM的取值为 [0,255],该值可自己设置。
   * 
   */

}

最后

以上就是动人钢笔为你收集整理的ROS小车-1-电机测试的全部内容,希望文章能够帮你解决ROS小车-1-电机测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部