2025년 7월 9일 수요일

7. 프로젝트 활동 - T자코스

 

소스 코드 예시
#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 setup() {
  pinMode(MA1, OUTPUT);
  pinMode(MA2, OUTPUT);
  pinMode(MB1, OUTPUT);
  pinMode(MB2, OUTPUT);
 
  forward(1000);   // 1번 : 1초 전진
  right(600);      // 2번 : 90도 우회전
  forward(500);    // 3번 : 0.5초 전진
  right(1100);     // 4번 : 180도 회전
  forward(1000);   // 5번 : 1초 전진
  right(1100);     // 6번 : 180도 회전
  forward(500);    // 7번 : 0.5초 전진
  right(600);      // 8번 : 90도 우회전
  forward(1000);   // 9번 : 1초 전진
  stop2();         // 정지
}
 
void loop() {
  // 반복 없음
}


소스 코드 예시 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(500);       // 0.1초 정지
  left(600);        // 좌회전
  stop3(500);       // 0.1초 정지
  forward(1000);    // 1초 전진
  stop2();          // 정지
}
 
void loop() {
  // 반복 없음
}




댓글 없음:

댓글 쓰기