아두이노 디지털 핀의 HIGH LOW 로직(Logic) 전압 레벨 측정
아두이노 우노의 핀 배열은 6개의 아날로그 입력과 13개의 디지털 입출력이 데이터 핀들로 구성 된다. 디지털 핀 사용에 있어서 중요한 명령은 pinMode(핀 번호, 입출력 상태) 와 digitalWrite(핀 번호, 로직 ) 이다.입 출력 상태는 INPUT 또는 OUTPUT 의 설정이며 HIGH 또는 LOW를 나타내는 로직은 디지털 핀의 전압 레벨을 지정하는 것이다.
대개 USB 로부터 공급 받는 아두이노의 전압은 5V 가 기준이며 TTL 규격에서는 ∓10% 오차 범위를 허용한다. 그렇다면 과연 아두이노 디지털 핀의 상태가 입력 즉 INPUT 으로 설정 되어 있을 때 0V에서 3V 이상까지 전압 변동을 서서히 가한 상태에서 HIGH 와 LOW를 구분하는 전압의 경계가 어디인지 코딩 실험을 통해 확인해 보도록 하자.
TTL 이론에 의하면 LOW 는 전압 레벨 0.8V 이하를 뜻하면 HIGH 는 2.5V 또는 2.7V 이상으로 규정된다. 따라서 이 실험을 위해서는 0V에서 3.3V 범위까지의 전압이 서서히 변하는 실험 장치를 구성하여 아날로그 채널A0에서 전압을 모니터링 해보는 것이다.
이러한 장치는 이미 블로그에 소개했던 220μF 커패시터와 100K옴 저항으로 구성되는 충전 전압 모니터링 회로이다. 이회로를 사용하여 양단에 3.3V 를 가한
상태에서 전하가 저장되고 있는 커패시터의 전압은 아날로그 채널 여긱서는 A0를 이용하여 전압 측정이 가능하다.
한편 이 전압이 입력으로 설정 된 디지털 핀을 통해 로직을 읽었을 때 HIGH 인지 LOW 인지는 측정한 아날로그 전압과 디지털 핀의 로직 상태를 함께 시리얼 모니터에서 출력해 보면 알 수 있을 것이다. 또는 시리얼 플로터 기능을 사용하여 그래픽을 통해서도 쉽게 알 수 있다.
시리얼 모니터에서 출력 결과에 의하면 12.5V 선에서 로직이 LOW에서 HIGH 로 바뀜을 알 수 있다.
이와 같은 전압 상승에 따른 로직의 변동을 시리얼 플로터 기능을 사용하여 비쥬얼 하게 관찰해 보도록 하자.
커패시터가 충전되어 전압이 상승함에 따라 2.5V에서 로직 출력이 0에서 1로 수직 상승함을 볼 수 있다.