概述
主控板: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-电机测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复