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.
Comments
Share your thoughts, questions, or corrections below. Be kind and keep it on-topic ✨