디지탈과 아날로그
디지탈과 아날로그의 개념은 아두이노나 마이크로비트에서 매우 중요한 개념이라서 알아 두어야 합니다.
아두이노에서 디지털과 아날로그는 다음과 같이 이해할 수 있습니다.
디지털: 0과 1로 이루어진 이산적인 값을 다루는 것을 말합니다. 아두이노에서 디지털 입출력 핀은 HIGH(1)/LOW(0) 두 가지 값만 다룰 수 있습니다. 실제 전기가 흐를때 0과 LOW는 전기가 흐르지 않는 0V 상태이며 1과 HIGH는 5V가 흘러가고 있는 것을 의미합니다. 따라서, 아두이노 디지털 핀을 이용하여 스위치, LED, 모터 등의 on/off 제어, 버튼 입력, 디지털 센서 값 읽기 등을 할 수 있습니다.
아날로그: 연속적인 값을 다루는 것을 말합니다. 예를들어 소리나 온도, 밝기등의 변화는 디지털과 다르게 연속적으로 변화하는 양입니다. 아두이노의 아날로그 입력 핀은 연속적으로 변화하는 전압 신호를 입력으로 받아 0V~5V 사이의 아날로그 값을 얻을 수 있습니다. 아날로그 값은 센서에서 측정한 온도, 밝기, 소리 등의 물리적인 크기를 나타내며, 이를 이용하여 온도 센서, 조도 센서, 마이크, 가변저항 등을 이용한 프로젝트를 할 수 있습니다.
아날로그 값을 디지털 값으로 변환하기 위해서는 ADC(Analog-to-Digital Converter)를 사용하며, 아날로그 값을 디지털 값으로 출력하기 위해서는 DAC(Digital-to-Analog Converter)를 사용합니다. 하지만, 아두이노 UNO보드는 내부적으로 10bit ADC를 내장하고 있어 아날로그 값을 쉽게 디지털 값으로 변환하여 읽을 수 있습니다. 아두이노 보드에 입력되는 아날로그 값도 아두이노 보드 내부에서는 디지탈 값으로 처리해야 하고 디지탈 값으로 외부로 내보내야 합니다. 따라서 아두이노 보드의 출력은 5V 건전지가 5V를 내보냈다가 0V로 전압을 안내보냈다가 하는 동작으로 생각하면 이해하기 쉽습니다. 이럴때 5V를 내보내는 시간 조절과 0V를 내보내는 시간조절과 이런것들의 주기적인 반복을 통해서 아날로그 효과를 내게 됩니다. 따라서 이런 동작을 통해서 모터의 속도조절, LED의 밝기조절, 부저에서 음표등을 소리로 표현할 수 있습니다.