#주제 2 : 아두이노 자동차 만들기
- 아두이노 > 적용(A) > #20.F > #2
- AA.20.F.2.6
A, B바퀴 제어(5,6,8,9번핀)
기본 주행 방법 확인(전진, 후진, 좌회전, 우회전)
#define MA1 5
#define MA2 6
#define MB1 8
#define MB2 9
void setup() {
pinMode(MA1, OUTPUT);
pinMode(MA2, OUTPUT);
pinMode(MB1, OUTPUT);
pinMode(MB2, OUTPUT);
digitalWrite(MA1, 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() {
}
// 다음과 같은 코드를 넣으면 자동차가 전진하게 됨.
digitalWrite(MA1, 1);
digitalWrite(MA2, 0);
digitalWrite(MB1, 1);
digitalWrite(MB2, 0);
----------------------------------------------------------
// 다음과 같은 코드를 넣으면 자동차가 후진하게 됨
digitalWrite(MA1, 0);
digitalWrite(MA2, 1);
digitalWrite(MB1, 0);
digitalWrite(MB2, 1);
----------------------------------------------------------
// 다음과 같은 코드를 넣으면 A, B 바퀴의 방향이 반대 이므로, 방향을 전환하게 됨
(#1번 : 좌회전)
digitalWrite(MA1, 1);
digitalWrite(MA2, 0);
digitalWrite(MB1, 0);
digitalWrite(MB2, 1);
delay(600); // 여기에서 방향을 전환하는 시간을 조절해 주면 됨
(#2번 : 우회전)
digitalWrite(MA1, 0);
digitalWrite(MA2, 1);
digitalWrite(MB1, 1);
digitalWrite(MB2, 0);
delay(600); // 여기에서 방향을 전환하는 시간을 조절해 주면 됨
----------------------------------------------------------
// 다음과 같은 코드를 넣으면 자동차는 정지하게 됨
(#1번)
digitalWrite(MA1, 0);
digitalWrite(MA2, 0);
digitalWrite(MB1, 0);
digitalWrite(MB2, 0);
(#2번)
digitalWrite(MA1, 1);
digitalWrite(MA2, 1);
digitalWrite(MB1, 1);
digitalWrite(MB2, 1);
자동차를 1초간 후진시키기 위해서는 활동 1의 코드를 어떻게 수정하면 될까요?
#define MA1 5
#define MA2 6
#define MB1 8
#define MB2 9
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() {
}
#define MA1 5
#define MA2 6
#define MB1 8
#define MB2 9
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, 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() {
}