// 모터 핀 정의
const int rightMotor1Pin1 = 3; // 오른쪽 모터 1 제어 핀
const int rightMotor1Pin2 = 4; // 오른쪽 모터 1 반대 방향 핀
const int rightMotor2Pin1 = 5; // 오른쪽 모터 2 제어 핀
const int rightMotor2Pin2 = 6; // 오른쪽 모터 2 반대 방향 핀
const int leftMotor1Pin1 = 7; // 왼쪽 모터 1 제어 핀
const int leftMotor1Pin2 = 8; // 왼쪽 모터 1 반대 방향 핀
const int leftMotor2Pin1 = 9; // 왼쪽 모터 2 제어 핀
const int leftMotor2Pin2 = 10; // 왼쪽 모터 2 반대 방향 핀
const int rightMotor1SpeedPin = 11; // 오른쪽 모터 1 속도 제어 핀 (PWM)
const int rightMotor2SpeedPin = 12; // 오른쪽 모터 2 속도 제어 핀 (PWM)
const int leftMotor1SpeedPin = 13; // 왼쪽 모터 1 속도 제어 핀 (PWM)
const int leftMotor2SpeedPin = A0; // 왼쪽 모터 2 속도 제어 핀 (PWM)
void setup() {
// 핀 모드 설정
pinMode(rightMotor1Pin1, OUTPUT);
pinMode(rightMotor1Pin2, OUTPUT);
pinMode(rightMotor2Pin1, OUTPUT);
pinMode(rightMotor2Pin2, OUTPUT);
pinMode(leftMotor1Pin1, OUTPUT);
pinMode(leftMotor1Pin2, OUTPUT);
pinMode(leftMotor2Pin1, OUTPUT);
pinMode(leftMotor2Pin2, OUTPUT);
pinMode(rightMotor1SpeedPin, OUTPUT);
pinMode(rightMotor2SpeedPin, OUTPUT);
pinMode(leftMotor1SpeedPin, OUTPUT);
pinMode(leftMotor2SpeedPin, OUTPUT);
}
void loop() {
// 오른쪽 모터 앞으로 회전, 왼쪽 모터 뒤로 회전
moveRightMotorsForward(255); // 최대 속도
moveLeftMotorsBackward(255); // 최대 속도
delay(2000); // 2초 동안 회전
// 모든 모터 정지
stopAllMotors();
delay(1000); // 1초 정지
}
// 오른쪽 모터 두 개 앞으로 회전
void moveRightMotorsForward(int speed) {
digitalWrite(rightMotor1Pin1, HIGH);
digitalWrite(rightMotor1Pin2, LOW);
analogWrite(rightMotor1SpeedPin, speed);
digitalWrite(rightMotor2Pin1, HIGH);
digitalWrite(rightMotor2Pin2, LOW);
analogWrite(rightMotor2SpeedPin, speed);
}
// 왼쪽 모터 두 개 뒤로 회전
void moveLeftMotorsBackward(int speed) {
digitalWrite(leftMotor1Pin1, LOW);
digitalWrite(leftMotor1Pin2, HIGH);
analogWrite(leftMotor1SpeedPin, speed);
digitalWrite(leftMotor2Pin1, LOW);
digitalWrite(leftMotor2Pin2, HIGH);
analogWrite(leftMotor2SpeedPin, speed);
}
// 모든 모터 정지
void stopAllMotors() {
digitalWrite(rightMotor1Pin1, LOW);
digitalWrite(rightMotor1Pin2, LOW);
digitalWrite(rightMotor2Pin1, LOW);
digitalWrite(rightMotor2Pin2, LOW);
digitalWrite(leftMotor1Pin1, LOW);
digitalWrite(leftMotor1Pin2, LOW);
digitalWrite(leftMotor2Pin1, LOW);
digitalWrite(leftMotor2Pin2, LOW);
}