CODE 5.14 | 버튼으로 방향 전환 자동차 만들기
| 01 | // 모터 제어 핀 설정 |
| 02 | int rightMotor1 = 5; |
| 03 | int rightMotor2 = 6; |
| 04 | int leftMotor1 = 9; |
| 05 | int leftMotor2 = 10; |
| 06 | |
| 07 | // 버튼 핀 설정 |
| 08 | int btnLeft = 2; // 좌회전 버튼 |
| 09 | int btnForward = 3; // 전진 버튼 |
| 10 | int btnRight = 4; // 우회전 버튼 |
| 11 | |
| 12 | void 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 | |
| 25 | void 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 | } |
댓글 없음:
댓글 쓰기