2025년 6월 28일 토요일

6. 프로젝트 활동 - ㄷ자 코스 주행



 
소스 코드 예시
#define MA1 5
#define MA2 6
#define MB1 9
#define MB2 10
 
void setup() {
  pinMode(MA1, OUTPUT);
  pinMode(MA2, OUTPUT);
  pinMode(MB1, OUTPUT);
  pinMode(MB2, OUTPUT);
 
  digitalWrite(MA1, 1);   // 1초 전진
  digitalWrite(MA2, 0);
  digitalWrite(MB1, 1);  
  digitalWrite(MB2, 0);  
  delay(1000);
  
  digitalWrite(MA1, 1);   // 좌회전
  digitalWrite(MA2, 0);
  digitalWrite(MB1, 0);  
  digitalWrite(MB2, 1);  
  delay(600);  // 시간은 적당히 조절해야 함
  digitalWrite(MA1, 1);   // 1초 전진
  digitalWrite(MA2, 0);
  digitalWrite(MB1, 1);  
  digitalWrite(MB2, 0);  
  delay(1000);
  
  digitalWrite(MA1, 0);
  digitalWrite(MA2, 0);
  digitalWrite(MB1, 0);  
  digitalWrite(MB2, 0); 
  }
 
void loop() {
}

프롬프트 예시
위 코드에서 좌회전 시간을 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() {
 // 반복 없음
}



댓글 없음:

댓글 쓰기