Skip to content

Communication🔗

A microcontroller rarely works alone. It reports to a computer, reads sensors that do their own measuring, and drives displays, all by sending bits one at a time down a wire or two. This topic covers how those conversations work at the level of the voltages on the wires, and how to wire and code them on an Arduino.

The articles assume Digital Pins and the serial monitor from arduino-cli.

Communication reading order, as a transit map One line through three stops. Point to point: Serial; Shared buses: I²C, SPI. Every stop is a link to its article. Click any stop to open its article Point to point Shared buses 1. Serial 1 Serial 2. I²C 2 I²C 3. SPI 3 SPI
The reading order as one line. Every stop is a link.

1. Point to Point🔗

  • Serial Communication — one bit at a time with no clock, only an agreed baud rate; framing, wiring TX to RX, and voltage levels

2. Shared Buses🔗

  • I²C — many devices on two wires: open-drain lines and pull-ups, a clock, addresses, and reading an MCP9808 sensor
  • SPI — fast, full-duplex transfers with a chip-select wire per device, clock modes, and reading an MCP3008 converter

Where to Start🔗

Start with Serial Communication: it's what the serial monitor already uses, and I²C and SPI are easiest to understand as two different answers to serial's limits.