3입력 - 1출력 형태 회로
AND / OR / NAND / NOR / XOR / XNOR 게이트
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
}
void loop() {
int btn1 = !(digitalRead(2));
int btn2 = !(digitalRead(3));
int btn3 = !(digitalRead(4));
if ( (btn1 || btn2 || btn3) == 1) {
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
}
}
pinMode(13, OUTPUT); → 13번 핀을 출력 모드로 설정하여 LED 제어용으로 사용.
pinMode(2, 3, 4, INPUT_PULLUP); → 2, 3, 4번 핀을 내부 풀업 저항이 활성화된 입력 모드로 설정.
버튼이 눌리지 않았을 때 HIGH, 눌렸을 때 LOW가 입력됨.
digitalRead(n)으로 읽은 값을 ! 연산자를 사용해 반전시킴:
버튼이 눌리면 btn1, btn2, btn3는 각각 HIGH(1)이 됨.
즉, 버튼이 눌린 상태를 HIGH로 표현함.
조건문:
if ((btn1 || btn2 || btn3) == 1) → 세 버튼 중 하나라도 눌리면 조건이 참.
digitalWrite(13, HIGH); → LED가 켜짐
세 버튼 모두 눌리지 않으면:
digitalWrite(13, LOW); → LED가 꺼짐
전체적으로 OR 게이트(논리합) 동작을 구현한 회로 및 코드이다.
세 버튼 중 하나 이상만 눌려도 LED가 켜짐
Copyright ⓒ Tech79 All right reserved