
디지털 신호는 아날로그 신호와 달리 0, 1의 값만 가질 수 있는데 이를 보완하기 위한 것이 PWM이다.
0~255의 값을 줄 수 있다.

그렇다고 0, 1 이외의 값을 줄 수는 없고 신호를 주는 시간을 이용해서 아날로그를 흉내내는 것이다.
LED, 모터제어 등에 사용된다.
LED
우리의 눈은 밝기 지속시간이 짧으면 어두운 것으로 인식한다.
PWM을 이용해 0~255 사이의 값을 주면 어떤 숫자를 줘도 같은 밝기를 출력하지만, 주는 숫자가 낮아지면 0의 구간이 길어지면서 우리 눈은 밝기가 낮은 것으로 인식한다.
모터 제어
모터도 0에서 모터는 작동을 멈추고, 1일 때만 움직인다.
따라서 0의 구간이 길어지면 모터는 그 시간을 작동을 멈출 것이고 따라서 모터의 속도는 느려진다.

사용은 analogWrite(digital_pin, value) 로 사용하면 된다.