Articles
One article per lesson, grouped by unit. Read the article for the why; do the lesson for the how. 42 articles, all paired.
Basics 3
Why blinking an LED is the most important program you'll write A blink is dismissed as the trivial hello-world of hardware. It's actually a complete computer system in three lines. read → Serial: the developer's flashlight in a dark room Hardware has no print statements. Except it does, and the protocol that runs them is the same one teletypes used in 1962. read → The hidden world of pull-up resistors You wire a button. Press it. Release it. The pin reads HIGH, then sometimes LOW, then random. The fix is one resistor. read →Digital I/O 4
What actually lives inside your Arduino Open an Uno. The big chip is the brain. What does that chip actually contain — and why is digitalWrite really just one register write? read → The Knight Rider scanner: arrays meet timing A row of LEDs sweeping back and forth is the cleanest possible introduction to indexed loops over hardware. read → Pot to serial: streaming an analog signal Reading a pot is half the picture. Streaming it over serial turns a static circuit into a live data feed. read → Traffic lights: state machines for embedded code A traffic light is the simplest computer program in the world. It's also a state machine — and once you see one, you start seeing them everywhere. read →Analog 5
Smooth PWM ramps: making digital pins fake analog PWM is a deception. The pin only knows HIGH and LOW — but by switching them fast and varying the ratio, you get something the eye reads as brightness. read → From sensor to pin: how a continuous signal becomes a number A potentiometer gives you "twelve o'clock." The chip reads 512. Where does that number come from? read → Pot dims LED: closing the analog loop A pot reads 0–1023. A PWM output writes 0–255. Connecting them is the simplest closed-loop control system you can build. read → RGB mixing: three PWM channels make any colour Your eye has three colour receptors. An RGB LED has three PWM-driven channels. Match the second to the first and you can make any colour. read → Building a voltage divider, and why it's everywhere Two resistors in series. One node between them. That's a voltage divider — and almost every analog sensor in your house works this way. read →Sensors 5
LDR night-light: when a resistor reads the world A photoresistor changes its resistance based on incident light. Wrap that in a divider and you have an analog light meter for free. read → Thermistors: temperature from resistance A bead of doped ceramic shifts resistance precisely with temperature. The conversion to °C goes through one beautiful equation. read → HC-SR04: distance from the time light couldn't reach Send a pulse of 40 kHz sound. Listen for the echo. Measure the microseconds. Multiply by 343 m/s and divide by two. Distance. read → Debouncing: why "one button press" is actually twenty A mechanical switch doesn't close cleanly. It bounces for a few milliseconds, faking dozens of press events. read → Wiring the HC-SR04: four pins, two signals VCC, GND, TRIG, ECHO. Two are power, two are logic. Routing them takes a minute and explains how sensor modules are designed. read →Communication 5
Serial echo: reading bytes back Sending text from a chip is easy. Receiving it — and doing something with it — is where most sketches stop. An echo loop is the smallest program that listens. read → On / Off: the smallest serial command parser Two strings. One newline-terminated line. A tiny if-else. Suddenly the chip listens, decides, and acts. read → CSV streams: structured telemetry from a tiny chip A serial line with one number per loop is debugging. A serial line with several comma-separated values is a data feed. read → Help menus: a small REPL for your sketch A "?" command that prints a list of available commands turns your sketch from a black box into something a user can poke at. read → Bare Uno + Serial: the smallest interesting circuit No LED. No resistor. No button. Just an Uno and the USB cable. You can still get useful work done. read →Display 4
How character LCDs talk: the HD44780 protocol A 16×2 LCD looks like a screen. It's actually a tiny computer with its own command set and 40 years of inertia behind it. read → Flicker-free counters: don't clear when you don't have to A counter that flashes between values means the screen is being cleared and rewritten every loop. Skip the clear; the flicker disappears. read → Live readouts: turn an LCD into a meter You've got a sensor. You've got a screen. Wire them together with a unit label and the device suddenly feels finished. read → Wiring an LCD: the six wires that matter A 16×2 LCD has 16 pins. Four are power and contrast. Six carry control + data. The others you don't connect unless you want to do something fancy. read →Drivers 4
Relays: when the chip can't drive enough current A microcontroller pin sources about 20 mA. A heater needs 8 amperes. A relay is the cheapest bridge between them. read → Servo sweep: hijacking PWM for position A hobby servo cares about pulse width, not duty cycle. The convention dates to model-aircraft radios from 1972, and you're still using it. read → Servo follows pot: composing input and output A pot drives a servo. The pot is a knob; the servo is a pointer. Connecting them in software is composition. read → The H-bridge: making a motor go backwards A motor with two wires can only spin one way per polarity. Reverse it with four switches and you have an H-bridge — the topology behind every cordless drill's reverse switch. read →Multi-Uno 3
Two boards, two clocks: the moment hardware feels real A single Uno is a computer. Two on the same canvas is something else — two independent CPUs, two independent clocks, two programs that never see each other. read → Independent control loops: two thermostats, one room Two Unos, two pots, two LEDs — and not a single wire between them. Each board has its own sense-think-act loop. read → When chips talk: why every interesting device is many chips A drone. A 3D printer. A car. Open any of them and you find a dozen small computers talking over short wires. The TX→RX bridge between two Unos is the smallest model of that whole world. read →Studio demos 9
NPN transistors: how one digital pin drives anything A microcontroller pin sources 20 mA. A solenoid wants 500 mA. The bridge is a single transistor and three resistors' worth of intuition. read → PNP transistors: switching the high side, inverted logic PNP is the mirror image of NPN. Same three pins, opposite polarities. Switching the V+ rail with an inverted-polarity logic pin. read → Capacitors block DC, pass AC — and why every circuit has them A capacitor lets nothing through at steady state, then forgets the rule entirely when the signal changes. The frequency-dependent component. read → Buzzers: pitch is just frequency, melody is just a sequence A piezo buzzer is a speaker with a one-octave imagination. Drive it with a square wave at any audible frequency and you get that pitch. read → Shift registers: trading three pins for eight outputs The Arduino Uno has 20 GPIO pins. Some projects need 32 LEDs. The 74HC595 is the cheap, ancient, beautiful trick that makes that possible. read → DHT11: a custom 1-wire protocol decoded in 40 pulses The $2 humidity-and-temperature sensor has its own bespoke timing protocol on a single data wire. A beautiful intro to bit-banged sensors. read → IR remotes: how the NEC protocol fits a TV channel into 4 ms Every TV remote flashes 38 kHz infrared in carefully timed bursts. The NEC protocol has been the de-facto standard since the 1980s. read → SSD1306 OLED: 128×64 pixels over two wires The blue half-inch OLED on every hacker's Arduino project speaks I²C. The protocol is straightforward — but the framebuffer dance is the interesting part. read → NeoPixels: 800 kHz one-wire, where every nanosecond matters WS2812 LEDs read color data off a single wire by measuring pulse widths down to the nanosecond. Too fast for the library — bit-banged in assembly. read →Looking for the lessons themselves? Browse all lessons →