안녕하세요. 메카럽입니다.
이번 포스팅부터는 아두이노의 입출력과 스위치에 대해 알아보려합니다. 그에 앞서 디지털과 아날로그에 대해 알아보려 하는데 디지털과 아날로그의 뜻에 대해 모르시는 분들은 없으리라 생각합니다.
하지만 개념을 이해하고 넘어간다면 진행될 아두이노의 입출력과 스위치에 대해 좀 더 명확하게 이해하실 수 있을 것으로 생각합니다.
■ 디지털과 아날로그
아두이노를 활용하여 시제품을 만들기 위해 여러 가지 센서와 액추에이터를 사용합니다. 이 구성품들은 개발자가 원하는 신호를 아날로그 신호나 디지털 신호로 출력하며, 아두이노를 통해 이 신호들을 해석하고, 이후 어떤 동작을 만들어낼지 결정합니다. 이런 신호들을 읽거나 출력하기 위해서는 구성품, 부품별로 그 특성을 고려해서 설계해야하는데 가령 가변 저항이나 ADXL-355 가속도 센서와 같이 아날로그 출력을 발생시키는 부품들은 analog( ) 함수를 사용해야 하므로 아날로그 포트와 연결되어야 합니다. 택트 위치나 초음파 센서와 같이 디지털 출력을 발생시키는 부품들은 pinMode( )와 digitalRead( ) 함수를 사용하며, 모터 제어와 같이 정밀한 제어를 위해 사용되는 PWM 신호는 별도의 디지털 포트를 사용해야 합니다.
아날로그 부품 | 디지털 부품 | |
함 수 | analogRead | pinMode, digitalRead |
포 트 (우노 기준) | A0 ~ A5 | D0 ~ D13 |
아두이노 관련 서적이나 시제품 제작 관련 웹 포스트를 살펴보면 디지털, 아날로그 관련 이야기를 자주 접하게 됩니다. 아두이노의 핀 배열도 디지털 핀과 아날로그 핀으로 나누어져 있는 것을 보면 무엇인가 그 내용이 다르다는 것을 짐작하게 됩니다.
아두이노는 디지털 방식 또는 아날로그 방식으로 데이터 통신을 수행합니다. LED를 켜거나, 모터를 구동시키거나, GPS 신호를 받는 것 모두 여기에서 벗어나지 않습니다.
우리 주변에서 디지털 방식인 것을 찾는다면 손가락으로 수를 세는 것을 꼽을 수 있겠습니다. 손가락으로 수를 셀 때는 하나, 둘, 셋과 같이 손가락을 하나하나 굽혀 꼽는 행동을 하게 됩니다. 손가락으로 수를 셀 때, "0"과 "1"외에 그 사이에 있는 값을 계수하기가 쉽지 않고 보편적으로 손가락으로 수를 셀 때 그 상의 값을 가리키는 경우는 거의 없습니다.
시계는 디지털과 아날로그를 확연하게 표시하는 예시 중 하나입니다. 시침이 있는 시계와 숫자를 표시하는 디스플레이가 달린 시계를 생각해보겠습니다. 아래 그림은 10시 10분을 나타내고 있는 아날로그 시계와 디지털 시계입니다. 아날로그 시계는 시간의 흐름에 따라 초침과 분침, 시침이 함께 이동합니다. 시침과 분침은 10시 10분을 가리키고 있지만 시계가 지시하는 시간은 계속 이동합니다.
그러면 디지털 시계는 어떨까요? 시, 분, 초를 함께 디스플레이 하는 시계라고 하더라도 해당 시계가 가리키는 최소 시간 단위를 벗어난 범우에 대해서는 아날로그 시계와 같은 느낌을 받기가 힘듭니다. 디지털 시계는 그 변화가 아날로그 시계에 비해서 매우 불연속적이기 때문입니다.
디지털과 아날로그 개념을 아두이노로 옮겨와서 살표보겠습니다.
전자기기에서는 어떤 양이나 자료를 전기신호로 표현할 때는 대체로 전압의 높낮이를 사용합니다. 전압의 높낮이를 이야기할 때 디지털 방식이냐, 아날로그 방식이냐를 나눌 수 있습니다.
디지털 방식은 전압의 높낮이를 단 두 가지로 표현합니다. 마치 손가락을 펴면 "하나"를 세는 것, 굽히면 하나를 빼는 것과 마찬가지 의미입니다. 아날로그 방식은 전압의 높낮이를 정해진 단계로 나누어 표현합니다. 가령 아두이노는 0~5V를 1023개의 신호로 나누어 다루고 있습니다.
이 내용을 위 그래프를 사용하여 그려보겠습니다. 그래프의 가로축은 시간, 세로축은 전압입니다. 세로축의 범위는 0~5V로 나타내었습니다. 여기서 또 디지털과 아날로그가 다른 점은 시간 축(가로축) 또한 나누어져 있다는 것입니다. 다시 말해서 디지털은 불연속적인 시간을, 아날로그는 연속적인 시간을 사용한다고 보아도 무방합니다.
아날로그 신호는 초침이 연속적으로 흐르는 오토매틱 시계처럼 0~5V를 연속적인 흐름(세로축)으로 나타내고 있습니다. 반면 디지털 신호는 0(0V)과 1(5V) 두 가지 상태만을 갖고 불연속적으로(세로축) 나누어 보여주고 있습니다. 마치 분 이하의 단위는 보여주지 않는 분 단위만 나타내는 디지털 시계를 생각하면 될 것 같습니다.
아두이노의 디지털 핀과 아날로그 핀은 이러한 신호를 출력하는 전용 핀입니다.디지털 핀은 D2, D3, D4처럼 핀의 이름 첫 글자가 D로 시작하여 그 뒤에 번호가 붙게 됩니다. 아날로그 핀은 A0, A1, A2와 같이 첫 글자가 A로 시작하는 핀들입니다.
이렇게 아날로그와 디지털이 아두이노에서 어떤 방식으로 통용되는지 개념이 조금은 잡히셨을 것으로 생각합니다. 이를 토대로 다음 포스팅부터는 입출력과 스위치에 대해 알아보도록 하며 이만 포스팅을 마치겠습니다.
오늘 하루도 행복하세요.
'3D프린터와 아두이노 > 아두이노' 카테고리의 다른 글
아두이노 우노 아날로그 포트 및 전원, 접지 포트 (가변저항 실습) (2) | 2020.09.14 |
---|---|
아두이노 우노 디지털 포트(LED 램프 예제 실험) (2) | 2020.09.13 |
아두이노 IDE 라이브러리 (2) | 2020.09.11 |
반복문 : for문과 while문 (4) | 2020.09.10 |
제어문 - 조건문 : if문 (2) | 2020.09.09 |