前进和后退,左右两边的方向都朝前或朝后,速度一致;
原地顺时针旋转时,左边轮子前进,右边轮子后退,速度一致;
原地逆时针旋转时,左边轮子后退,右边轮子前进,速度一致;
偏左前进时,左右两边的方向都朝前,左轮速度比右轮速度慢一点;
偏右前进时,左右两边的方向都朝前,左轮速度比右轮速度快一点;
偏左后退时,左右两边的方向都朝后,左轮速度比右轮速度慢一点;
偏右后退时,左右两边的方向都朝后,左轮速度比右轮速度快一点;
(左边俩个轮子用一个电机,右边俩个轮子用一个电机)
//左边的电机控制引脚
#define leftMotor_1 6;
#define leftMotor 7;
#define leftMotor_2 8;
//右边的电机控制引脚
#define rightMotor_1 3;
#define rightMotor 4;
#define rightMotor_2 5;
void setup() {
// put your setup code here, to run once:
//设置控制电机的引脚为输出状态
pinMode(leftMotor_1, OUTPUT);
pinMode(leftMotor_2, OUTPUT);
pinMode(rightMotor_1, OUTPUT);
pinMode(rightMotor_2, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
//控制小车左转,左边电机停止,右边电机正转
void moveLeft(void)
{
analogWrite(leftMotor_1, LOW);
analogWrite(leftMotor, 0);
analogWrite(leftMotor_2, LOW);
analogWrite(rightMotor_1, LOW);
analogWrite(rightMotor, 80);
analogWrite(rightMotor_2, HIGH);
}
//控制小车右转,左边电机正转,右边电机停止
void moveRight(void)
{
analogWrite(leftMotor_1,LOW);
analogWrite(leftMotor, 80);
analogWrite(leftMotor_2, HIGH);
analogWrite(rightMotor_1, LOW);
analogWrite(rightMotor, 0);
analogWrite(rightMotor_2, LOW);
}
//控制小车前进,左边电机正转,右边电机正转
void moveForward(void)
{
analogWrite(leftMotor_1, LOW);
analogWrite(leftMotor, 150);
analogWrite(leftMotor_2, HIGH);
analogWrite(rightMotor_1, LOW);
analogWrite(rightMotor, 150);
analogWrite(rightMotor_2, HIGH);
}
//控制小车反转,左边电机反转,右边电机反转
void moveBackward(void)
{
analogWrite(leftMotor_1, HIGH);
analogWrite(leftMotor, 120);
analogWrite(leftMotor_2, LOW);
analogWrite(rightMotor_1, HIGH);
analogWrite(rightMotor, 120);
analogWrite(rightMotor_2, LOW);
}
//控制小车停止,左边电机停止,右边电机停止
void stopCar(void)
{
analogWrite(leftMotor_1, LOW);
analogWrite(leftMotor, 0);
analogWrite(leftMotor_2, LOW);
analogWrite(rightMotor_1, LOW);
analogWrite(rightMotor, 0);
analogWrite(rightMotor_2, LOW);
}
}