3.3 디지털 신호와 아날로그 신호
Last updated
Last updated
이제 디지털(Digital)은 우리에게 너무 익숙한 단어가 되어 버렸고, 0(다른 말로 LOW) 또는 1(다른 말로 HIGH, 또는 1byte=8bits 즉, 으로 표현할 수 있는 최대값 255) 의 단, 2가지의 값으로만 표현되는 신호를 의미합니다. 다시 말해 0 과 1 사이의 0.1, 0.5, 0.09 등의 사이 값은 존재하지 않는다는 것입니다.
아두이노에서 디지털은 동작전압(Voltage)으로 표현하는데 0v(다른 말로 LOW) 와 5v(다른 말로 HIGH)로 표현합다. 0값을 표현하고 싶으면 0v 즉 전압출력을 안하면 되는 것이고, 1값을 표현하고 싶으면 5v를 외부로 출력하면 되는 것입니다.
참고로 엔트리 블록에서 이를 끄기(0v) / 켜기(5v) 라는 표현을 사용합니다. 따라서, 아래 코드는 디지털 2번 핀*에 5v(켜기)를 출력하는 것입니다.
핀(Pin) 또는 포트(Port): 보드에서 디지털/아날로그 신호를 내보내거나/받아드리거나 하는 다른 주변장치와의 소통을 위한 입출력 통로를 의미한다. 다음 장의 아두이노 보드의 기본에서 아두이노는 어떤 종류의 핀을 몇 개 갖고 있는지 자세히 설명한다.
아날로그(Analog)는 연속적인 값. 즉 디지털 처럼 딱 2가지 값만 있는게 아니라, 특정 범위에 있어 모든 사이값이 존재한다고 할 수 있습니다. 그렇다고 그 수많은(거의 무한대의) 연속적인 값을 다 사용할 수 있는가? 실제로는 그렇지는 않고, 이도 디지털화해서 사용하는데 예를 들어 아두이노에서는 아날로그 값을 외부로 출력할 때는 0v(0) ~ 5v(255)를 256 단계(왜 256인지 하단에서 설명)의 값으로 표현해 사용합니다. 엔트리의 블록에서는 아래와 같은 블록으로 표현되고, 블록에 아날로그 핀이라고 쓰지 않고, 디지털 핀이라고 표현했는데 이는 좀전에 언급된 내부적으로 아날로그의 디지털화된 방식으로 적용하기 때문에 그래서 결국 이도 최종적으로는 디지털이라 이렇게 표현한 것이라 할 수 있습니다.
그러나, 이 부분은 초보자 입장에서는 위에 언급된 내용(아날로그의 디지털화)을 잘 모를 때는 블록에 기술된 디지털 핀이란 표현이 헷갈려 잘못 코딩하는 실수가 나오기 때문에 엔트리 정식버전이 왜 이렇게 표현했는지는 이해는 되나 저자가 이 블록을 우즈베키스탄어로 번역할 때는 사용자가 헷갈리지 않도록 의도적으로 아두이노 보드상에 적혀있는 PWM(Pulse Width Modulation) 핀이라고 번역했음을 첨언으로 남겨둡니다.
PWM은 아날로그를 디지털화하는 방법의 일종으로 이름 그대로 펄스 폭을(Pulse Width)를 이용해 변조(Modulation)하는 방법으로 아두이노 우노에서는 1bytes=8bits, 2진수로 =256개의 값으로 표현하고 있습니다. PWM 변조방식을 자세히 설명드릴 수 있으나, 본 서는 최대한 쉽게 하드웨어 코딩교육을 하는 것을 목표하고 있어, 자세한 설명은 생략하기로 하고, 그럼에도 PWM에 대해 자세히 이해하고 싶으신 분들을 위해 에니메이션으로 쉽게 설명한 유투브 링크를 남기오니, 이를 확인하시어 추가로 이해하시면 되겠습니다.