通过2560驱动板实现电机驱动

文章描述了如何使用2560开发板控制电机正反转,通过修改电机驱动板的连接和ROS_arduino_bridge文件来调整电机行为。同时,利用编码器事件函数来跟踪电机转数,对encoder_driver.ino文件进行调整以修正计数错误。
摘要由CSDN通过智能技术生成

电机:M1: 电机电源+(和M2对调可以正反转 )

          GND: 编码器电源-

          C2(AB): 信号线

          C1(BA): 信号线

          VCC:编码器电源+

          M2: 电机电源-(和M1对调可以正反转)

M1是M2控制电机正反转

2560开发板与电机驱动板相接

左右电机M1,2分别接电机驱动板的MA,MB(正反转)

GND与5V接电机驱动板的地和5v

左右点击的AB分别接2560的21,20,18,19对应的引脚

电机驱动板与电池相接

因为没有2560的集成板,所以通过赵虚左老师的视频教程(上网可以学习修改)修改的ros_arduino_bridge文件会让蜂鸣器一直想,并没有实现电机的驱动。

我们需要对motor_driver.h文件进行修改

pwm和dir的引脚要改为10,11,12,13这几个数。

如果说电机反转,(M1是M2控制电机正反转)那就换M1,M2的连接。

后续的串口绘图器如果是负的或者二个一正一副,那就修改encoder_driver.ino文件

void leftEncoderEventA(){
    if(digitalRead(LEFT_A) == HIGH){
      if(digitalRead(LEFT_B) == HIGH){
        left_count++;
      } else {
        left_count--;
      }
    } else {
      if(digitalRead(LEFT_B) == LOW){
        left_count++;
      } else {
        left_count--;
      }
    }
  }
  void leftEncoderEventB(){
    if(digitalRead(LEFT_B) == HIGH){
      if(digitalRead(LEFT_A) == LOW){
        left_count++;
      } else {
        left_count--;
      }
    } else {
      if(digitalRead(LEFT_A) == HIGH){
        left_count++;
      } else {
        left_count--;
      }
    }
  }
  void rightEncoderEventA(){
    if(digitalRead(RIGHT_A) == HIGH){
      if(digitalRead(RIGHT_B) == HIGH){
        right_count++;
      } else {
        right_count--;
      }
    } else {
      if(digitalRead(RIGHT_B) == LOW){
        right_count++;
      } else {
        right_count--;
      }
    }  
  }
  void rightEncoderEventB(){
     if(digitalRead(RIGHT_B) == HIGH){
      if(digitalRead(RIGHT_A) == LOW){
        right_count++;
      } else {
        right_count--;
      }
    } else {
      if(digitalRead(RIGHT_A) == HIGH){
        right_count++;
      } else {
        right_count--;
      }
    }  
  }

left_count或者right_count二个后面的++与--(反过来)(那个轮子的不对就改那个)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值