페이지

2026년 6월 15일 월요일

5.3.8. 버튼으로 방향을 전환하는 자동차 만들기





CODE 5.14 | 버튼으로 방향 전환 자동차 만들기
01// 모터 제어 핀 설정
02int rightMotor1 = 5;
03int rightMotor2 = 6;
04int leftMotor1 = 9;
05int leftMotor2 = 10;
06 
07// 버튼 핀 설정
08int btnLeft = 2; // 좌회전 버튼
09int btnForward = 3; // 전진 버튼
10int btnRight = 4; // 우회전 버튼
11 
12void setup() {
13  // 모터 핀을 출력 모드로 설정
14  pinMode(rightMotor1, OUTPUT);
15  pinMode(rightMotor2, OUTPUT);
16  pinMode(leftMotor1, OUTPUT);
17  pinMode(leftMotor2, OUTPUT);
18  
19  // 버튼 핀에 내부 풀업 저항 사용
20  pinMode(btnLeft, INPUT_PULLUP);
21  pinMode(btnForward, INPUT_PULLUP);
22  pinMode(btnRight, INPUT_PULLUP);
23}
24 
25void loop() {
26  // 전진 버튼이 눌리면 LOW 신호가 입력됨
27  if (digitalRead(btnForward) == LOW) {
28    digitalWrite(rightMotor1, HIGH);
29    digitalWrite(rightMotor2, LOW);
30    digitalWrite(leftMotor1, HIGH);
31    digitalWrite(leftMotor2, LOW);
32  }
33  // 좌회전 버튼이 눌리면 LOW 신호가 입력됨
34  else if (digitalRead(btnLeft) == LOW) {
35    digitalWrite(rightMotor1, HIGH);
36    digitalWrite(rightMotor2, LOW);
37    digitalWrite(leftMotor1, LOW);
38    digitalWrite(leftMotor2, LOW);
39  }
40  // 우회전 버튼이 눌리면 LOW 신호가 입력됨
41  else if (digitalRead(btnRight) == LOW) {
42    digitalWrite(rightMotor1, LOW);
43    digitalWrite(rightMotor2, LOW);
44    digitalWrite(leftMotor1, HIGH);
45    digitalWrite(leftMotor2, LOW);
46  }
47  // 아무 버튼도 누르지 않으면 정지 (HIGH 신호 입력)
48  else {
49    digitalWrite(rightMotor1, LOW);
50    digitalWrite(rightMotor2, LOW);
51    digitalWrite(leftMotor1, LOW);
52    digitalWrite(leftMotor2, LOW);
53  }
54}



 

댓글 없음:

댓글 쓰기