CODE 5.1 | 불 대수를 이용한 간소화 실습 – 간소화 전
| 01 | void setup() { |
| 02 | pinMode(13, OUTPUT); |
| 03 | pinMode(2, INPUT_PULLUP); // X 입력 |
| 04 | pinMode(3, INPUT_PULLUP); // Y 입력 |
| 05 | pinMode(4, INPUT_PULLUP); // Z 입력 |
| 06 | } |
| 07 | |
| 08 | void loop() { |
| 09 | // 버튼이 눌린 상태(LOW)를 논리 참(1)으로 정의한다. |
| 10 | int X = (digitalRead(2) == LOW); |
| 11 | int Y = (digitalRead(3) == LOW); |
| 12 | int Z = (digitalRead(4) == LOW); |
| 13 | // [간소화 전 논리식: F = XYZ + !XY + XY!Z] |
| 14 | if ((X && Y && Z) || (!X && Y) || (X && Y && !Z)) { |
| 15 | digitalWrite(13, HIGH); |
| 16 | } else { |
| 17 | digitalWrite(13, LOW); |
| 18 | } |
| 19 | } |
CODE 5.2 | 불 대수를 이용한 간소화 실습 – 간소화 후
| 01 | void setup() { |
| 02 | pinMode(13, OUTPUT); |
| 03 | pinMode(3, INPUT_PULLUP); // Y 입력만 사용 |
| 04 | } |
| 05 | |
| 06 | void loop() { |
| 07 | // [간소화 후 논리식: F = Y] |
| 08 | if (digitalRead(3) == LOW) { |
| 09 | digitalWrite(13, HIGH); |
| 10 | } else { |
| 11 | digitalWrite(13, LOW); |
| 12 | } |
| 13 | } |
댓글 없음:
댓글 쓰기