2015년 5월 22일 금요일

아두이노의 아날로그 핀을 디지털 핀으로 사용하기

 대부분의 아두이노에서 사용되는 ATmega 계열의 마이크로콘트롤러는 아날로그 입력을 받을 수 있는 A/D변환 핀이 있는데 A0, A1, A2, .. 와 같이 이름이 붙어 있다.  이 핀들은 일반적인 디지털 핀으로도 사용할 수 있다. 따라서 아두이노에서 사용자가 디지털 핀의 수가 부족해서 더 필요하다면 아날로그 핀을 디지털 핀으로 사용할 수 있다, 아래 그림에서 보듯이 아두이노 우노의 경우 A0 부터 A5 까지 6개의 아날로그핀이 있다


[그림 1] 아두이노의 아날로그 핀들

만약 A0핀을 디지털 출력핀으로 사용하고 싶다면 다음과 같이 A0 상수를 이용하여 pinMode()함수를 호출한다.

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH); 혹은  digitalWrite(A0, LOW);

다른 예로 A1핀을 디지털 입력핀으로 사용하고 싶다면 A1상수를 이용하면 된다. 입력으로 설정할 때 내부 풀업 저항도 연결할 수 있다.

pinMode(A1, INPUT);
pinMode(A1, INPUT_PULLUP);

그리고 digitalRead() 함수를 똑같이 사용할 수 있다.

int ia = digitalRead(A1);

이전 포스트에서 설명한 것 처럼 A0핀은 디지털 14번 핀으로 사용되는 것이다, A1은 15번 핀이고 A5는 19번 핀이다.

 만약 디지털 핀이 부족하다면 이와 같은 방법으로 아날로그 핀도 디지털 핀과 똑같이 사용할 수 있다.


댓글 1개:

  1. 14, 15, 16, 17, 18, 19 이렇게 써도 됩니다
    근데 20이라고 쓰면 어떻게 될까요?

    답글삭제