페이지

2026년 7월 22일 수요일

ㄷ자 코스 주행



 
소스 코드 예시
const int rightMotor1 = 5;
const int rightMotor2 = 6;

const int leftMotor1 = 9;
const int leftMotor2 = 10;

void setup() {
  pinMode(rightMotor1, OUTPUT);
  pinMode(rightMotor2, OUTPUT);
  pinMode(leftMotor1, OUTPUT);
  pinMode(leftMotor2, OUTPUT);

  // 1초간 전진
  forward();
  delay(1000);

  // 1초간 정지
  stopMotor();
  delay(1000);

  // 1초간 좌회전
  turnLeft();
  delay(1000);

  // 1초간 정지
  stopMotor();
  delay(1000);

  // 1초간 전진
  forward();
  delay(1000);

  // 1초간 정지
  stopMotor();
  delay(1000);

  // 1초간 좌회전
  turnLeft();
  delay(1000);

  // 1초간 정지
  stopMotor();
  delay(1000);

  // 1초간 전진
  forward();
  delay(1000);

  // 1초간 정지
  stopMotor();
  delay(1000);

  // 1초간 좌회전
  turnLeft();
  delay(1000);

  // 1초간 정지
  stopMotor();
  delay(1000);

  // 1초간 전진
  forward();
  delay(1000);

  // 정지
  stopMotor();
}

void loop() {
}

// 전진
void forward() {
  digitalWrite(rightMotor1, HIGH);
  digitalWrite(rightMotor2, LOW);

  digitalWrite(leftMotor1, HIGH);
  digitalWrite(leftMotor2, LOW);
}

// 정지
void stopMotor() {
  digitalWrite(rightMotor1, LOW);
  digitalWrite(rightMotor2, LOW);

  digitalWrite(leftMotor1, LOW);
  digitalWrite(leftMotor2, LOW);
}

// 좌회전 (양쪽 바퀴 반대 방향)
void turnLeft() {
  // 오른쪽 바퀴 앞으로
  digitalWrite(rightMotor1, HIGH);
  digitalWrite(rightMotor2, LOW);

  // 왼쪽 바퀴 뒤로
  digitalWrite(leftMotor1, LOW);
  digitalWrite(leftMotor2, HIGH);
}

프롬프트 예시
위 코드에서 좌회전 시간을 0.2초로 바꿔줘.

프롬프트 예시
위 코드에서 직진 한 후 1초간 멈추고, 좌회전 후 1초간 멈추는 등 멈추는 코드를 넣어줘.


소스 코드 예시 2
#define MA1 5
#define MA2 6
#define MB1 9
#define MB2 10
void forward(int a) {  // 전진 
 digitalWrite(MA1, 1);   
 digitalWrite(MA2, 0);
 digitalWrite(MB1, 1);  
 digitalWrite(MB2, 0);  
 delay(a);
}
void backward(int b) {  // 후진 
 digitalWrite(MA1, 0);   
 digitalWrite(MA2, 1);
 digitalWrite(MB1, 0);  
 digitalWrite(MB2, 1);  
 delay(b);
}
void left(int c) {  // 좌회전 
 digitalWrite(MA1, 1);   
 digitalWrite(MA2, 0);
 digitalWrite(MB1, 0);  
 digitalWrite(MB2, 1);  
 delay(c);
}
void right(int d) {  // 우회전 
 digitalWrite(MA1, 0);   
 digitalWrite(MA2, 1);
 digitalWrite(MB1, 1);  
 digitalWrite(MB2, 0);  
 delay(d); 
}
void stop2() {  // 정지
 digitalWrite(MA1, 0);   
 digitalWrite(MA2, 0);
 digitalWrite(MB1, 0);  
 digitalWrite(MB2, 0);  
}
void stop3(int e) {  // 정지
 digitalWrite(MA1, 0);   
 digitalWrite(MA2, 0);
 digitalWrite(MB1, 0);  
 digitalWrite(MB2, 0);  
 delay(e); 
}
void setup() {
 pinMode(MA1, OUTPUT);
 pinMode(MA2, OUTPUT);
 pinMode(MB1, OUTPUT);
 pinMode(MB2, OUTPUT);
 forward(1000);    // 1초 전진
 stop3(100);       // 0.1초 정지
 left(600);        // 좌회전 (원래 코드와 동일)
 stop3(100);       // 0.1초 정지
 forward(1000);    // 1초 전진
 left(600);        // 좌회전 (원래 코드와 동일)
 stop3(100);       // 0.1초 정지
 forward(1000);    // 1초 전진
 stop2();          // 정지
}
void loop() {
 // 반복 없음
}



댓글 없음:

댓글 쓰기