CODE 5.3 | 카르노 맵을 이용한 간소화 실습 – 간소화 전
| 01 | void setup() { |
| 02 | pinMode(13, OUTPUT); |
| 03 | pinMode(2, INPUT_PULLUP); // A 입력 |
| 04 | pinMode(3, INPUT_PULLUP); // B 입력 |
| 05 | } |
| 06 | |
| 07 | void loop() { |
| 08 | // 버튼을 누른 상태(LOW)를 논리 참(true)으로 정의한다. |
| 09 | int A = (digitalRead(2) == LOW); |
| 10 | int B = (digitalRead(3) == LOW); |
| 11 | // [간소화 전 논리식: F = !A!B + !AB + A!B] |
| 12 | if ((!A && !B) || (!A && B) || (A && !B)) { |
| 13 | digitalWrite(13, HIGH); |
| 14 | } else { |
| 15 | digitalWrite(13, LOW); |
| 16 | } |
| 17 | } |
CODE 5.4 | 카르노 맵을 이용한 간소화 실습 – 간소화 후
| 01 | void setup() { |
| 02 | pinMode(13, OUTPUT); |
| 03 | pinMode(2, INPUT_PULLUP); // A 입력 |
| 04 | pinMode(3, INPUT_PULLUP); // B 입력 |
| 05 | } |
| 06 | |
| 07 | void loop() { |
| 08 | int A = (digitalRead(2) == LOW); |
| 09 | int B = (digitalRead(3) == LOW); |
| 10 | // [간소화 후 논리식: F = !A + !B] |
| 11 | if (!A || !B) { |
| 12 | digitalWrite(13, HIGH); |
| 13 | } else { |
| 14 | digitalWrite(13, LOW); |
| 15 | } |
| 16 | } |
댓글 없음:
댓글 쓰기