电机:M1: 电机电源+(和M2对调可以正反转 )
GND: 编码器电源-
C2(A或B): 信号线
C1(B或A): 信号线
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二个后面的++与--(反过来)(那个轮子的不对就改那个)