Chapter 5
In the previous chapter, we made an LED blink using an Arduino pin.
You saw that setting a pin HIGH or LOW can turn a real component ON or OFF.
Now it’s time to understand what digital output actually means.
Not in code terms first — but in electrical terms.
🔌 What Is a Digital Output?
A digital output pin on Arduino can be in only two states:
HIGH → about 5V
LOW → about 0V (GND)
That’s it.
There is no in-between state here.
No half voltage. No gradual control.
Just ON or OFF.
🧠 Think of a Pin Like a Switch
A good mental model is this:
HIGH → switch connected to 5V
LOW → switch connected to GND
When you write code like this:digitalWrite(13, HIGH);
You are telling the microcontroller:
And when you write:digitalWrite(13, LOW);
You are saying:
That’s all that’s happening electrically.`
🔦 Why Did the LED Turn ON?
From Chapter 4, recall the circuit:
Pin 13 → Resistor → LED → GND
When pin 13 is HIGH:
5V appears at the pin
Current flows through the resistor
Then through the LED
Finally to GND
LED glows
When pin 13 is LOW:
Both sides of the LED are at GND
No current flows
LED turns OFF
Voltage difference causes current.
No difference → no current → no light.
⚙️ pinMode() — Why Is It Needed?
Before a pin can behave like an output, you must tell the Arduino what its role is.pinMode(13, OUTPUT);
This configures the internal circuitry of the microcontroller so that:
the pin can safely source or sink current
the pin is no longer “floating”
the pin obeys
digitalWrite()
Without pinMode(…, OUTPUT), the pin behaves unpredictably.
🔁 HIGH vs LOW (Important Detail)
HIGH does not mean “true”
LOW does not mean “false”
Those are programming interpretations.
Electrically:
HIGH = voltage present
LOW = voltage absent
This distinction becomes extremely important later when:
driving relays
using pull-ups
reading buttons
interfacing sensors
⚠️ How Much Can a Pin Handle?
This is critical.
An Arduino pin:
can supply ~20 mA safely
absolute max ~40 mA (do NOT aim for this)
That’s why:
LEDs need resistors
motors must never be connected directly
relays need drivers
high-power loads need external circuits
Pins control signals, not power.
This idea will save hardware later.
🧰 Common Beginner Mistakes
Assuming HIGH = “unlimited power”
Forgetting pinMode()
Connecting heavy loads directly to pins
Thinking code is wrong when wiring is wrong
Most Arduino “bugs” are electrical, not software.
📌 What Comes Next
Now that we understand digital output, the natural next step is the opposite:
👉 Digital Input
How does Arduino read the outside world?
How do buttons work?
Why do inputs sometimes behave randomly?
That’s exactly what we’ll cover next.