CODE 6.3 | 인코더 실습
| 01 | void setup() { |
| 02 | // 출력 핀 설정: LED 연결 |
| 03 | pinMode(10, OUTPUT); // 상위 비트(Y1) 출력 |
| 04 | pinMode(11, OUTPUT); // 하위 비트(Y0) 출력 |
| 05 | |
| 06 | // 입력 핀 설정: 버튼 연결 (내부 풀업 저항 사용) |
| 07 | pinMode(2, INPUT_PULLUP); // 입력 D0 |
| 08 | pinMode(3, INPUT_PULLUP); // 입력 D1 |
| 09 | pinMode(4, INPUT_PULLUP); // 입력 D2 |
| 10 | pinMode(5, INPUT_PULLUP); // 입력 D3 |
| 11 | } |
| 12 | |
| 13 | void loop() { |
| 14 | // 버튼 입력을 논리 상태(눌림=1, 떼어짐=0)로 반전하여 읽기 |
| 15 | int D0 = (digitalRead(2) == LOW); |
| 16 | int D1 = (digitalRead(3) == LOW); |
| 17 | int D2 = (digitalRead(4) == LOW); |
| 18 | int D3 = (digitalRead(5) == LOW); |
| 19 | |
| 20 | // [인코더 논리 판별 과정] |
| 21 | // Y1은 D2 또는 D3가 입력되었을 때 1(HIGH)이 된다. |
| 22 | int Y1 = D2 || D3; |
| 23 | |
| 24 | // Y0은 D1 또는 D3가 입력되었을 때 1(HIGH)이 된다. |
| 25 | int Y0 = D1 || D3; |
| 26 | |
| 27 | // 결과 출력 |
| 28 | digitalWrite(10, Y1); |
| 29 | digitalWrite(11, Y0); |
| 30 | } |
댓글 없음:
댓글 쓰기