protoboard-iso · live circuits
Breadboard circuits drawn, checked and simulated by protoboard-iso. Each page is the one the kit writes for a lesson: tap a part to see its voltages and currents (a model, not a measurement), press Current to see it flow, turn the board around.
Leer en español
Recipes
Lesson circuits the kit lays out by name, with their default values.
- LED with a series resistorThe resistor sets the LED current: I = (V − Vf) / R
- Voltage dividerVout = Vin · R2 / (R1 + R2), measured where the two resistors meet
- NPN transistor switchA small base current switches a larger collector current (press S1)
- Potentiometer dimming an LEDThe wiper is an adjustable divider: its voltage goes from 0 to the supply
- MOSFET switchThe gate takes voltage, not current; the pull-down R2 discharges it when S1 is released
- Button with a pull-up resistorReleased, R1 pulls the output up (LED on); pressed, S1 takes it to ground (LED off)
- Button with a pull-down resistorReleased, R1 holds the output at ground (LED off); pressed, S1 takes it to the supply (LED on)
- RC circuit with a square waveC1 charges and discharges with τ = R·C; compare it with the period of G1
- 555 astable blinking an LEDC1 charges through R1 + R2 and discharges through R2: f ≈ 1.44 / ((R1 + 2·R2) · C1)
- 7805 regulator with a pilot LEDA fixed output from a higher input; the difference is lost as heat in U1
- AMS1117 module with an LEDA low-dropout regulator: 3.3 V out from 5 V in
- Bridge rectifier with a filter capacitorBoth half-waves come out positive; C1 fills the gaps between peaks (ripple)
- Zener regulatorReversed, the Zener holds its voltage; R1 takes the rest of the supply
- ESP32 blinking an LEDA GPIO pin as an output: digitalWrite(13, HIGH) lights D1, delay() sets the rhythm
- ESP32 reading a buttonA GPIO pin as an input with the internal pull-up: digitalRead(27) reads LOW while S1 is pressed
- Op-amp comparatorWithout feedback the output saturates: high when V+ > V−, low when V+ < V−
- LM393 comparator (open collector)The output only pulls down: the LED, fed from the supply, lights while V− > V+
- Op-amp voltage follower (buffer)With the output on V−, the output copies V+: the potentiometer gives a voltage, the op-amp gives the current
- Non-inverting amplifierGain = 1 + R2/R1: the output is the input times 3, in phase
- Inverting amplifierGain = −R2/R1 around the reference on V+: the output is twice the input, upside down
- Arduino UNO blinking an LEDA pin as an output at 5 V: digitalWrite(13, HIGH) lights D1, delay() sets the rhythm
- Arduino UNO: a button lights an LEDA pin as an input with the internal pull-up: it reads LOW while S1 is pressed, and the program decides the LED
- Arduino UNO: a potentiometer dims an LED (ADC and PWM)analogRead turns a voltage into 0…1023; analogWrite turns 0…255 into the share of time the pin is high
- ESP32-C3 SuperMini blinking an LEDA GPIO as an output at 3.3 V: digitalWrite(3, HIGH) lights D1
- ESP32-C3: a potentiometer dims an LED (ADC and PWM)analogRead turns a voltage into 0…4095 (12 bits, up to about 2.5 V); analogWrite sets the share of time the pin is high
- Arduino UNO: an RGB LED mixes colours (PWM)Three LEDs in one dome, each with its own resistor: their brightness, set by PWM, adds up to the colour the eye sees
- Arduino UNO: a 7-segment display counts 0 to 9Seven LEDs to one common pin, each with its own resistor: a digit is the set of segments the program lights
- Slide switch picks an LEDA changeover (SPDT): its middle pin is joined to one end or the other, so one switch sends the current down one of two paths
- Tilt switch alarmUpright, the closed switch takes the resistor's current past the LED; tilted, it opens and the LED gets it
- Arduino UNO: LM35 thermometerThe LM35 turns temperature into 10 mV per °C; the ADC turns that voltage into a number, and the program back into degrees
- Relay with an NPN and a flyback diodeA small base current lets the coil's 71 mA flow; the coil pulls the contact over and the LED lights. Released, the diode takes the coil's current (without it, its voltage would jump far past the supply)
- DC motor speed with a transistorStarted, the motor draws nearly its stall current and speeds up with a time constant of its inertia; turning, its back-EMF rises with the speed until it nearly balances the supply, and the current falls
- Night light with a photoresistorIn the dark the photoresistor's resistance is high, the divider's voltage rises and the transistor switches the LED on; with light it falls and the LED goes out
- Light comparator with a photoresistorThe photoresistor's divider is compared with a reference you set: below it (dark) the output pulls down and the LED lights; above it (light) the output is released
- Temperature alarm with an LM35 and a comparatorThe LM35 gives 10 mV per °C; the comparator releases its output when that voltage passes the reference from the divider (about 42 °C) and the LED lights
- NTC thermistor divider with a followerA thermistor divider turns temperature into a voltage; the follower copies it to a load without loading the divider
- Arduino UNO: NTC thermistor thermometerThe thermistor and a resistor make a divider; the ADC turns its voltage into a number, and the B equation turns the resistance into degrees
- PIR motion sensor lights a lampA PIR module holds OUT high for its delay after motion and then rests; OUT is too weak for a lamp, so it drives a transistor that carries the LED's current
- Arduino UNO: PIR motion detectorA PIR's OUT is a plain digital level: the program watches for its rising edge and prints the time of each new motion with millis()
- Touch module toggles an LEDIn toggle mode each touch flips the TTP223's output; its pin can drive a small LED directly, if the resistor keeps the current under the 4 mA its high level is guaranteed at
- Arduino UNO: touch sensorThe TTP223 gives a clean digital level that follows the finger, 60 to 220 ms late; the program prints each change; on the UNO's 3.3 V its output is 3.3 V, enough for a HIGH
- Rain alarm with an MH-RD moduleWater bridges the comb, AO falls under Vref and DO goes low: the LED on the board lights and DO pulls the PNP's base down, which switches the buzzer on
- Soil moisture LED with a YL-69 moduleThe damper the soil, the lower the fork's resistance and AO; past the trimmer's Vref DO goes low and sinks the LED's current
- Light switch with an LDR-LM393 moduleThe module turns light into yes or no: DO goes low past about 18 lx with the trimmer in the middle, and the LED lights; the trimmer moves that point
- Arduino UNO: TCRT5000 line followerWhite paper sends the infrared back and the phototransistor pulls AO low, so DO reads LOW; black ink absorbs it, AO rises and DO reads HIGH: the program prints LINE
- Obstacle alarm with an FC-51 moduleThe nearer the object, the more infrared comes back and the lower AO; past Vref OUT goes low and the PNP lets the active buzzer's current through. The trimmer sets the distance: about 4.5 cm with it at 25 %, 9 cm at 50 % and 28 cm at 90 % (white paper)
- Arduino UNO: KY-024 magnet counterThe Hall switch turns on at 160 G and off under 105 G (hysteresis), so a magnet that wobbles near the threshold counts once; the program counts each fall of DO
- Arduino UNO: KY-040 rotary encoder counterA rotary encoder gives two square waves a quarter of a cycle apart: at each fall of CLK, DT high means clockwise and DT low counter-clockwise; the sketch must poll faster than 12.5 ms to miss no click
- Arduino UNO: dimmer with a KY-040 rotary encoderThe encoder counts clicks in either direction and the sketch turns the count into a PWM duty (12 per click, 240 at most: analogWrite takes up to 255), held between 0 and 20 clicks with constrain(): clockwise brightens the LED, counter-clockwise dims it, the button turns it off
- Laser tripwire with a KY-008 and an LDR-LM393 moduleThe laser's light adds to the room's for the light sensor; cut the beam and only the room is left: DO goes high, the transistor conducts and the LED lights
- Arduino UNO: a laser and a light sensorA pin switches the laser through a transistor (straight from a UNO pin it gets about 20 mA, under its 22 mA threshold, so it would only glow); its light adds to the room's at the photoresistor, so the reading on A0 rises while it is on and falls back when it is off
- Arduino UNO: HC-SR04 distance meterTRIG starts a ping; ECHO stays high for the round trip of the sound, and pulseIn measures it: microseconds ÷ 58 is centimetres
- ESP32 with an HC-SR04 (ECHO through a divider)The HC-SR04 needs 5 V and its ECHO is 5 V; a 3.3 V board's pin takes it through 1 kΩ / 2 kΩ, which leaves 3.33 V, while TRIG at 3.3 V is enough for the module
- Arduino UNO: LED alarm under 15 cm (HC-SR04)The program compares the distance it measured with a limit and lights an LED; pulseIn returns 0 when no echo comes, which is not "close"
- Arduino UNO: KY-035 gaussmeterThe linear Hall sensor is ratiometric: its output is half the supply plus 1.4 mV per gauss, so the ADC reads 2.5 V with no magnet and the program turns the difference back into gauss
- Arduino UNO: voltmeter with a voltage sensor moduleThe module is a 30 kΩ and 7.5 kΩ divider: S carries a fifth of the voltage at its terminal, so a 25 V input still fits the 5 V ADC, and the program multiplies the reading by five
- Arduino UNO: clap switch with a KY-037 sound moduleThe microphone's signal is tiny: DO falls only when its peak beats the gap between the bias and the trimmer's Vref, about 98 dB with the trimmer set 15 mV under the bias. The program toggles the LED at each fall of DO
- Sound level LED with a KY-037 moduleThe microphone's signal rides on a steady bias; when its peak is larger than the gap between the bias and the trimmer's Vref DO goes low and sinks the LED's current. A louder sound is a bigger peak, so the trimmer picks the level
- Arduino UNO: temperature and humidity with a DHT11A sensor read through its library: the DHT11 answers on one data pin, in whole degrees and whole %RH, at most every 2 s; isnan() tells a failed read
- ESP32 with a BME280: temperature, pressure, humidityAn I2C sensor answers at its address on the board's SDA and SCL: begin(0x76) finds the usual board; readPressure() is in Pa, ÷ 100 is hPa; the altitude comes from the pressure
- Arduino UNO: altitude with a BMP280 (on 3.3 V)The usual BMP280 board has no regulator: it goes on the UNO's 3.3 V pin, not 5 V (over its 4.25 V maximum). Wire then turns on the UNO's own pull-ups to 5 V, so SDA and SCL idle at about 3.68 V, a little over the chip's 3.6 V: it works, a level shifter keeps them inside. Lower pressure, higher altitude
Examples
Circuit files from examples/ that can be simulated (layout-…: laid out from examples/layout/).
- 9 V battery, 7805 regulator and an LED
- Arduino UNO counting the clicks of a rotary encoderThe encoder-uno recipe as laid out, with a tour: a KY-040 rotary encoder on a UNO, whose sketch counts the clicks from CLK and DT and prints the count. Turn the angle in the page (or see how it works in the menu); the push switch sets the count to zero.
- The environment in a cycle: day and nightThe environment example with the light in a slow cycle (a sine from 5 to 2000 lx every 8 s): the LED lights while it is dark. Pause and Resume in the panel.
- The environment: light and temperatureA light-sensitive switch (a photoresistor divider into an LM393 comparator lights the LED when it gets dark) and two temperature sensors (an NTC divider and an LM35), all reading the shared environment: change light and temperature in the panel.
- ESP32 driving a 7.5" e-paper panel through the DESPI-C02 adapter
- ESP32 DevKit lighting an LED from D13
- ESP32 DevKit across two breadboardsAn ESP32 DevKit with nets on both pin headers: on one breadboard it would cover a whole strip of one header, so layout put it on two boards side by side (board double), across the joint, with a free strip under each header. D4 lights the LED, D15 reads the button, D34 the potentiometer.
- Half-wave rectifier with a filter capacitor (signal generator, 50 Hz)
- LED with a current-limiting resistor
- More parts: trimmer, Zener, inductor, sensors, buzzer, header, chips, lithium cells
- NPN transistor switchThe npn-switch recipe as laid out, with a tour: See how it works in the menu.
- PIR motion sensor lights a lampThe pir-lamp recipe as laid out, with a tour: a PIR module holds OUT high for its delay after motion and a transistor lights a lamp from it. Move the motion switch in the page (or see how it works in the menu). The module's warm-up is skipped so it reacts at once.
- RC with a square wave: the time constant against the period
- Bridge rectifier, filter capacitor, 5 W load and an LED
- Switches off the board
- Touch module toggles an LEDThe touch-toggle-led recipe as laid out, with a tour: a touch module in toggle mode flips an LED at each touch, straight from its I/O pin at 3.3 V. Touch it in the page (or see how it works in the menu).
- Arduino UNO lighting an LED from D13
- Voltage divider, two 10 kΩ resistors
- ESP32 DevKit with nets on both pin headers
- Two LM358 stages in series: non-inverting, then inverting, on one supply
- 5 V regulator with a pilot LED
- Two-rail supply (12 V → 5 V → 3.3 V)
- Arduino UNO with an LED, a button with pull-up, a potentiometer and a second LED