[디지털 신호 입력핀]
버튼을 누르면 두 접점이 연결된다.
스위치와 저항이 직렬 연결되어 있다.
스위치를 누르고 있는 동안 LED가 점등되고, 1: // 풀다운 저항을 이용한 디지털 신호의 입력 2: #define LED 12 3: #define SW 2 4: 5: void setup() { 6: pinMode(LED, OUTPUT); 7: pinMode(SW, INPUT); 8: } 9: 10: void loop() { 11: int sw_in; 12: sw_in = digitalRead(SW); //2번핀으로 디지털 신호 읽음 13: if(sw_in == HIGH) // 스위치 누르면 HIGH 14: { 15: digitalWrite(LED, HIGH); 16: delay(1000); 17: } 18: else 19: digitalWrite(LED, LOW); 20: }
저항이 Vcc와 연결되어 있다. 이런식으로 연결된 저항을 풀업 저항이라고 한다. 스위치가 눌러지지 않은 Normal한 경우 1이 입력된다.
1: // 풀업 저항을 이용한 디지털 신호의 입력 2: #define LED 12 3: #define SW 2 4: 5: void setup() { 6: pinMode(LED, OUTPUT); 7: pinMode(SW, INPUT); 8: } 9: 10: void loop() { 11: int sw_in; 12: sw_in = digitalRead(SW); //2번핀으로 디지털 신호 읽음 13: if(sw_in == LOW) //스위치를 누르면 LOW 14: { 15: digitalWrite(LED, HIGH); 16: delay(1000); 17: } 18: else 19: digitalWrite(LED, LOW); 20: } [내부 풀 업 저항을 이용한 디지털 입력]
1: // 내부 풀업 저항을 이용한 디지털 신호의 입력 2: #define LED 12 3: #define SW 2 4: 5: void setup() { 6: pinMode(LED, OUTPUT); 7: pinMode(SW, INPUT_PULLUP); // 내부 풀업저항 사용으로 설정 8: } 9: 10: void loop() { 11: int sw_in; 12: sw_in = digitalRead(SW); //2번핀으로 디지털 신호 읽음 13: if(sw_in == LOW) //스위치를 누르면 LOW 14: { 15: digitalWrite(LED, HIGH); 16: delay(1000); 17: } 18: else 19: digitalWrite(LED, LOW); 20: } 7행의 설정 - pinMode(SW, INPUT_PULLUP) : 내부 풀업저항으로 설정
1: // 두개의 스위치 중 먼저 눌러진 쪽의 LED가 2초가 점등 2: #define SW1 2 3: #define SW2 3 4: #define LED1 11 5: #define LED2 12 6: 7: void setup() { 8: pinMode(SW1, INPUT_PULLUP); 9: pinMode(SW2, INPUT_PULLUP); 10: pinMode(LED1, OUTPUT); 11: pinMode(LED2, OUTPUT); 12: } 13: 14: void loop() { 15: int sw1_in = LOW; 16: int sw2_in = LOW; 17: 18: digitalWrite(LED1, LOW); 19: digitalWrite(LED2, LOW); 20: 21: sw1_in = digitalRead(SW1); 22: sw2_in = digitalRead(SW2); 23: 24: if(sw1_in == LOW && sw2_in == HIGH) 25: { 26: digitalWrite(LED1, HIGH); 27: digitalWrite(LED2, LOW); 28: delay(2000); 29: } 30: else if(sw1_in == HIGH && sw2_in == LOW) 31: { 32: digitalWrite(LED1, LOW); 33: digitalWrite(LED2, HIGH); 34: delay(2000); 35: } 36: else 37: { 38: digitalWrite(LED1, LOW); 39: digitalWrite(LED2, LOW); 40: } 41: } |