본문 바로가기

아두이노(arduino)

아두이노 digitalRead() 정보를 가져오자 #1

digitalRead란 무엇인가?

디지털 리드 말 그대로 디지털 형태 (0 혹은 1)로 정보를 읽어오는 것입니다. 즉 어떠한 상태인지 확인하는 것이죠. 높은 전압을 우리는 HIGH (5v), 낮은 전압을 LOW(0v)로 표현하고, 스위치를 예로 들면 눌러진 상태와 눌러지지 않은 상태로 구분할 수 있습니다.

 

 

 

 

 

digitalRead 함수의 구조

 

digitalRead( pin) 에서 알 수 있듯이 (pin) 핀 번호를 뜻합니다. 몇 번 핀에 꽂았는지  확인 후 핀번호를 기입합니다. 핀을 통해 들어오는 정보는 0,1  둘 중 하나의 정보가 들어오게 됩니다. 

 

참고- digitalRead(핀번호)전에 pinMode(핀번호, 입출력) 설정이 먼저 되어있어야 합니다. 

 

실제로 5v에 연결했을때 1이 뜨는지 확인해 볼까요??

 

우선코드부터 작성하고요.

 

 

 void setup(){

 

Serial.begin(9600);     // 시리얼 모니터를 사용하기 위한 설정

pinMode(7, INTPUT);    // 7번 핀을 입력핀으로 사용하기 위한 설정

}

 

void loop(){

int read_pin7 = digitalRead(7);     // 7번 핀의 정보를 가져와 read_pin7이라는 변수에 대입

Serial.println(read_pin7);       // 시리얼 모니터에 read_pin7변수 값을 출력.

}

 

 

 

digitalRead 테스트

 

7번 핀에 꽂은 상태에서 케이블을 5v에 연결하고 시리얼 모니터 창으로 확인해보니 1이 출력됩니다. 즉 5v인 상태인 거죠.

 

 

 

 

 

다음은 5v에서 gnd로 연결해서 확인해 봅니다.

 

 

 

 

 

이번엔 0이 뜨는 걸 확인할 수 있습니다. 즉 전기가 0v란 이야기가 되는 거죠.

 

이번엔 다른 방법으로 한번 확인해 볼까요?

 

 

 

 

 

택트버튼(스위치 / 푸시버튼)으로 digitalRead () 사용해 보기

 

준비물은 푸시버튼 1개 , 10k 옴 저항, 브레드보드, 아두이노보드, 케이블

 

푸시버튼(택트스위치)을 사용할 때 왜 저항을 사용하나요?  쉽게 표현해 아두이노 보드 내 칩을 보호하기 위함입니다.

 

 

 

위와 똑같은 코드를 아두이노에 업로드하고, 버튼을 눌러봅니다.

 

 

 

1

1

1

1

1

 

버튼을 떼니 다시 

 

0

0

0

0

으로 바뀝니다.

 

 

푸시버튼이 아닌 다른 센서류 역시 디지털로 정보를 가지고 올 수 있고 (제조사마다 다름) 때로는 아날로그 디지털 둘 다 사용가능한 모듈들도 존재합니다.