Differences Between Analog and Digital

Objectives and Overview

This lesson covers the key differences between analog and digital output. You’ll be able to explain the key differences and how these outputs are represented in the Arduino.

Lesson Objectives

  • Understand and explain the differences between digital and analog.
  • Explain the key difference between digital output and analog output.
  • Understand what the HIGH and LOW states of the Arduino function digitalRead() represent.

Digital vs Analog

In previous projects, you’ve used digital output, but that’s not the only type of output. Arduino also supports analog output. Let’s look at the differences between digital and analog.

Digital output is binary, which means that it has two states — ON or OFF. These states correspond to the HIGH and LOW commands sent by the Arduino function digitalWrite().

If the voltage is flowing then the pin is ON. If the voltage isn’t flowing, then the pin is OFF. The HIGH state on an Arduino pin means that the pin is receiving voltage (typically 5V), and the LOW state is when the pin is receiving 0V.

In the Blink example, the LED turned ON when it received voltage (when it was sent a HIGH state) and then turned OFF when it didn’t have voltage (when it was sent a LOW state).

Analog output isn’t binary. Instead, it supports a range of output between ON and OFF. The difference is best shown using a light switch:

Diagram of a light switch set to 'On'

The light switch has two states: on and off. This results in two states: lights are on or lights are off. What happens if you want a switch that could control the brightness of a light and have a range of light? In order to do this, you need to use analog output.

If a typical light switch represents digital output, then a dimmer switch represents analog output:

Dimmer switch with a knob with a light on it

Analog output provides more control and flexibility because you’re able to output a range of values instead of ON or OFF. The key point to remember is that analog is a range and digital is either HIGH (ON) or LOW (OFF).

The next lesson is a deeper dive into more of the specifics of how the Arduino handles analog output.