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변수 값을 출력.
}
7번 핀에 꽂은 상태에서 케이블을 5v에 연결하고 시리얼 모니터 창으로 확인해보니 1이 출력됩니다. 즉 5v인 상태인 거죠.
다음은 5v에서 gnd로 연결해서 확인해 봅니다.
이번엔 0이 뜨는 걸 확인할 수 있습니다. 즉 전기가 0v란 이야기가 되는 거죠.
이번엔 다른 방법으로 한번 확인해 볼까요?
택트버튼(스위치 / 푸시버튼)으로 digitalRead () 사용해 보기
준비물은 푸시버튼 1개 , 10k 옴 저항, 브레드보드, 아두이노보드, 케이블
푸시버튼(택트스위치)을 사용할 때 왜 저항을 사용하나요? 쉽게 표현해 아두이노 보드 내 칩을 보호하기 위함입니다.
위와 똑같은 코드를 아두이노에 업로드하고, 버튼을 눌러봅니다.
1
1
1
1
1
버튼을 떼니 다시
0
0
0
0
으로 바뀝니다.
푸시버튼이 아닌 다른 센서류 역시 디지털로 정보를 가지고 올 수 있고 (제조사마다 다름) 때로는 아날로그 디지털 둘 다 사용가능한 모듈들도 존재합니다.
'아두이노(arduino)' 카테고리의 다른 글
아두이노 서보모터란? 서보모터 제어하기 (0) | 2023.01.13 |
---|---|
아두이노 analogRead() 정보를 가져오자 #2 (0) | 2023.01.11 |
아두이노 Serial.read / Serial.available 시리얼 입력 (0) | 2023.01.06 |
아두이노 digitalWrite (디지털 출력) 와 delay로 led 제어 심화 (0) | 2023.01.03 |
아두이노 digitalWrite(디지털라이트), pinMode(핀모드), delay(딜레이) 함수 사용법 (0) | 2023.01.02 |