Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchSome links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Wokwi’s Serial Plotter can graph numbers your Arduino sketch sends over serial. To open it automatically, set "serialMonitor": { "display": "plotter" } in diagram.json, then print one numeric sample per line. Start with the runnable examples below, then adapt the linked community projects for analog inputs, multiple curves, waveforms and button-controlled signals.
Open the Wokwi Serial Plotter
Wokwi’s Serial Monitor can display text or a graph. The Serial Plotter is useful for visualizing analog readings, sensor values, generated functions and several variables sampled in a loop. Wokwi’s official Serial Monitor documentation lists auto, always, never, plotter and terminal as display modes; auto is the default.
- Open or create an Arduino Uno project in Wokwi.
- In
diagram.json, add this optional top-level setting alongside the other project properties:"serialMonitor": { "display": "plotter" } - Put one of the sketches below in the project’s Arduino source file, such as
sketch.ino. - Start the simulation. The plotter should open when the simulation starts; the sketch must still send serial output for a graph to appear.
The full Wokwi diagram format reference explains diagram.json, the file used for simulated components, connections and configuration. Some community projects point to a Tools > Serial Plotter menu, but menu placement can change; the configuration is a reproducible way to request the plotter at startup.
Start with a one-value plot
This repeating ramp is a simple check that the sketch runs and numeric serial output reaches the graph:
#1 Best Overall
- 35+ Guided Electronics Projects: Progress from LEDs and buttons to RFID access, real-time clocks, motion and distance sensing, environmental monitoring, motor control and interactive displays for STEM learning, coding clubs and maker projects
- More I/O and Memory for Larger Builds: The MEGA 2560 R3 provides 54 digital I/O pins, including 15 PWM outputs, 16 analog inputs, 4 hardware serial ports and 256 KB flash for projects that combine more sensors, controls and displays
- 200+ Components for Prototyping: Includes LCD1602, RC522 RFID, RTC, DHT11, HC-SR501 PIR, ultrasonic and water-level sensors, GY-521, MAX7219, keypad, joystick, rotary encoder, relay, SG90 servo, stepper motor, DC motor, breadboard and more
- Learn, Modify and Create: Follow 35+ guided lessons with example code, then adjust sensor thresholds, timing, display text, motor behavior and control logic to turn structured exercises into access systems, monitors, alarms and interactive projects
- Organized for Repeatable Learning: Pre-soldered modules, a solderless breadboard, storage case and small-parts box reduce setup time and keep sensors, LEDs, ICs, wires and other components easy to find between projects
void setup() {
Serial.begin(115200);
}
void loop() {
static int value = 0;
Serial.println(value);
value++;
if (value > 100) {
value = 0;
}
delay(50);
}
Serial.println(value) ends each sample with a newline, so the plotter receives a sequence of individual values. The delay makes the ramp easier to inspect; it is a readable starting point, not a universal sampling rate. Wokwi notes that the Serial Monitor appears only after the program produces output, so an initially absent panel does not by itself mean the simulator failed.
Plot a simulated potentiometer
Wire the component
- Connect the potentiometer’s
VCCpin to Arduino5V. - Connect
GNDto Arduino ground. - Connect
SIGtoA0.
Use this sketch to graph the reading:
const int inputPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(inputPin);
Serial.println(value);
delay(20);
}
Move the simulated potentiometer while the simulation runs. On Wokwi’s simulated Uno, A0 through A5 are analog-capable pins and analogRead() is supported; see the Uno reference. For a project with the component and code already assembled, try the community AnalogReadSerial project, which demonstrates a potentiometer and points to the Serial Plotter. The simulated input helps test code and basic circuit logic, but it does not reproduce contact noise, loading or imperfect physical wiring.
Plot more than one value
Send several values in a consistent order on the same line. Commas separate the values, and a newline ends the sample record:
void setup() {
Serial.begin(115200);
}
void loop() {
int a = analogRead(A0);
int b = analogRead(A1);
int c = analogRead(A2);
Serial.print("a:");
Serial.print(a);
Serial.print(",b:");
Serial.print(b);
Serial.print(",c:");
Serial.println(c);
delay(20);
}
Keep the readings together in one loop iteration so each line represents one sampling moment. Labels can make series easier to identify, but label parsing can differ across plotter implementations and Arduino IDE versions. If a labeled line does not render as expected, first verify one plain number per line, then add comma-separated series, and introduce labels one at a time. Avoid prose such as Temperature is 25 when you want a clean numeric graph.
Rank #2
- 30+ Guided Electronics Projects: Start with LEDs and build toward LCD1602 displays, RFID access, motion detection, distance sensing, motor control and environmental monitoring for STEM learning, coding clubs, classrooms and hobby projects
- 200+ Components Across 63 Types: Includes an ELEGOO UNO R3 controller, LCD1602, RC522 RFID, RTC, HC-SR501 PIR sensor, ultrasonic sensor, DHT11, GY-521, MAX7219, keypad, joystick, relay, SG90 servo, stepper motor, breadboard and more
- Begin Without Soldering: Pre-soldered modules, a solderless breadboard, organized storage case and small-parts box reduce setup time and help beginners move from lesson to lesson while keeping LEDs, ICs, wires and sensors easy to find
- Learn, Modify and Create: Program the ELEGOO UNO R3 board with Arduino IDE using the included PDF tutorial and example code, then adjust sensor thresholds, timing, display text and motor behavior to turn guided lessons into original projects
- Flexible Power and Project Setup: Includes a 9 V, 1 A power supply, breadboard power module, 9 V battery and USB cable to support controller, breadboard and module experiments without sourcing basic setup accessories separately
The community three-channel Serial_Plotter project demonstrates labeled, comma-separated analog values. Its label format is an example to test, not a guarantee that every plotter handles labels identically.
Generate waveforms without a sensor
Plot a sine wave
#include <math.h>
void setup() {
Serial.begin(9600);
}
void loop() {
for (float x = 0.0; x <= 2.0 * PI; x += 0.1) {
Serial.println(sin(x));
delay(20);
}
}
This generates a predictable curve for checking the plotter independently of an input component.
Compare three curves
To plot related signals together, calculate them in the same loop and print one consistent comma-separated record:
#include <math.h>
void setup() {
Serial.begin(115200);
}
void loop() {
float x = millis() / 1000.0;
Serial.print(sin(x));
Serial.print(",");
Serial.print(cos(x));
Serial.print(",");
Serial.println(0.5 * sin(3.0 * x));
delay(20);
}
The three values correspond to a sine, a cosine and a half-amplitude, higher-frequency sine. The community project 005 Serial Plotter with number display and waves demonstrates sine, cosine, sawtooth, square, triangle and combined waveforms. Its author notes that closing and reopening the plotter between runs may clear old data.
Rank #3
- The kit XY axis travel of this kit is 297×210mm, the same size as A4 paper. It is equipped with 42 step motor and MG90 servo.The recommended speed is 5000mm/minute.
- This kit uses the open source Arduino system, and can be used to write and draw on paper materials with related software. This kit requires the customer to assemble the test itself.
- This kit Support laser head expansion, provide firmware and source code.
- This kit has burned grbl0.9 version of writing and drawing firmware. Please burn the laser firmware yourself
- This kit is about 3kg, and the package size is 56 × 25 × 8cm
Use a lookup table
A lookup table offers a repeating sequence of integer values without calculating a trigonometric function at each step:
const int sineTable[] = {
128, 152, 176, 198, 218, 234, 245, 253,
255, 253, 245, 234, 218, 198, 176, 152,
128, 103, 79, 57, 37, 21, 10, 2,
0, 2, 10, 21, 37, 57, 79, 103
};
void setup() {
Serial.begin(115200);
}
void loop() {
static int index = 0;
Serial.println(sineTable[index]);
index++;
if (index >= 32) {
index = 0;
}
delay(10);
}
The community serial_plotter project uses a 32-entry sine table. This is an educational example of deterministic integer output; plotting the values does not turn them into an analog voltage or verify a physical waveform.
Plot a button-controlled state
A button can switch between two plotted levels while also controlling the built-in LED:
Free tools Windows power users keep installed
One-click scans. No signup required.
const int buttonPin = 2;
const int ledPin = LED_BUILTIN;
int lastButtonState = HIGH;
int mode = 0;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW && lastButtonState == HIGH) {
mode = !mode;
delay(30);
}
lastButtonState = buttonState;
int output = mode ? 1000 : 0;
digitalWrite(ledPin, mode);
Serial.println(output);
delay(20);
}
Wire a button between pin 2 and ground for the INPUT_PULLUP setup. The community Serial_Plotter project demonstrates a similar button-and-plotter pattern with a button on digital pin 2 and an LED on pin 13. It is a community project, rather than an official Wokwi reference implementation.
Rank #4
- TURN CODE INTO REAL-WORLD RESULTS — Follow 22+ guided lessons to make LEDs blink, read temperature and distance, move servo and stepper motors, control an LCD and respond to joystick or IR input; ideal for a family weekend build, homeschool unit, coding club or STEM classroom
- MORE PROJECT VARIETY IN ONE ORGANIZED KIT — Includes the UNO R3 controller, LCD1602 with pre-soldered header, breadboard power module, ultrasonic and DHT11 sensors, joystick, IR receiver and remote, SG90 servo, stepper motor, relay, DC motor, fan blade, displays, LEDs, buttons, resistors and jumper wires
- START WITHOUT SOLDERING — Plug-in modules, a solderless breadboard and the pre-soldered LCD help beginners focus on wiring, code and testing; the illustrated component list makes it easier to find each part and move from one lesson to the next
- LEARN THE LOGIC, THEN CREATE YOUR OWN — Use Arduino IDE and the included example code to understand digital input and output, analog sensing, timing, motor control and display functions, then change thresholds, speeds and sequences for alarms, environmental monitors, reaction games and motion projects
- CLEAR SETUP SUPPORT FOR FIRST-TIME BUILDERS — Download the latest tutorial and code, select the UNO board and correct computer port, check component polarity and breadboard rows, and keep power-module input at 9V or below; younger learners should work with an experienced adult
Community Wokwi plotter projects to explore
Wokwi’s official documentation covers simulator configuration, while these public projects are community examples. Use them as starting points, and check their code and parts before relying on a particular label convention or board-specific detail.
| Project | What it demonstrates | Useful for |
|---|---|---|
| Serial Plot basic | Arduino Uno, an A0 reading, a constant reference value and basic labeled output. |
First experiments with one or two series. |
| AnalogReadSerial | Uno, potentiometer wiring, analogRead(A0) and plotter visualization. |
Beginner analog-input practice. |
| Serial_Plotter | Three analog inputs, comma-separated readings, labels and a short sampling delay. | Multiple series and formatting. |
| 005 Serial Plotter with number display and waves | Generated sine, cosine, sawtooth, square, triangle and combined signals. | Waveform experiments; its author notes plot data may need clearing by reopening the window. |
| serial_plotter | A repeating 32-sample integer sine lookup table. | Deterministic, embedded-style waveform values. |
| Serial_Plotter | Button-controlled state plotted alongside an LED response. | Interactive digital input. |
| 003 Printing on Serial Plotter | Numeric output mixed with text. | Seeing why ordinary messages are not a clean measurement stream. |
| 004 Receive and Print on Serial Plotter | Serial input and echoed output. | Exploring serial interaction; arbitrary echoed text is not necessarily valid graph data. |
Troubleshoot a blank or confusing plot
Nothing appears
- Confirm the simulation is running and not paused before the first sample.
- Check that
setup()callsSerial.begin(...)and the loop callsSerial.print()orSerial.println(). - Make sure the sketch emits a newline, for example with
Serial.println(value). - Verify that the configuration value is exactly
"plotter", not a misspelled display mode. - Test with a known numeric ramp; ordinary prose is not a substitute for numeric plot data.
The graph is flat
- Check whether the simulated input is actually changing, such as by moving the potentiometer.
- Compare the plotted series’ scales; a small value can look flat beside a much larger one.
- Check whether a series is constant or values are being converted or constrained unexpectedly.
- Use a known ramp or sine wave to separate input wiring or component issues from plotting code.
Multiple curves are missing or malformed
Reduce the sketch to Serial.println(analogRead(A0));. Then test two plain values using Serial.print(analogRead(A0)); Serial.print(","); Serial.println(analogRead(A1));. If that works, add labels one at a time. This isolates value formatting from analog input and simulator problems.
Text appears instead of useful curves
A line such as Temperature = 25 C mixes prose and a number. Try plain numeric output first, then a label followed by a number, such as temperature:25. If the label is not parsed as expected, return to plain numbers or test another simple format.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesOld values remain or sampling is hard to read
If a previous run’s graph remains, try closing and reopening the plotter; the waveform project above reports this as a way to clear old data. To slow a stream, add a delay such as delay(20). For a non-blocking interval, track elapsed time with millis():
Best Value
- LEARN ELECTRONICS AND CODING FROM SCRATCH: Start your maker journey or enhance classroom learning with the Arduino Starter Kit R4 – no prior experience required. Includes a printed project book and all components for 13 hands-on tutorials, as well as access to a growing repository of projects that will be added over time.
- POWERED BY THE ARDUINO UNO R4 WIFI BOARD: Discover modern connectivity and performance with the Arduino UNO R4 WiFi, featuring built-in Wi-Fi and Bluetooth and full compatibility with the Arduino ecosystem.
- CERTIFICATION VOUCHER INCLUDED: Once you’ve mastered sensors, motors, displays, and logic through the projects, take the official Arduino Fundamentals certification exam with the voucher that comes with your kit.
- BONUS DIGITAL RESOURCES: Register your kit online to unlock extra projects, multilingual lessons (Italian, German, French), and exclusive online content designed by the Arduino team.
- DESIGNED FOR LEARNING AND TEACHING: Ideal for classrooms, labs, or self-learners. Combine hands-on experiments with clear explanations and an AI coding assistant to support you as you grow.
const unsigned long samplePeriod = 20;
unsigned long lastSample = 0;
void loop() {
unsigned long now = millis();
if (now - lastSample >= samplePeriod) {
lastSample = now;
Serial.println(analogRead(A0));
}
}
That 20 ms interval is only a readable starting point. Choose a rate appropriate to the signal and what you want to observe.
The sketch uses the wrong serial port
Wokwi automatically attaches the monitor to the hardware serial interface for Uno and Mega projects. A Mega sketch that sends data through Serial1, Serial2 or Serial3 needs the monitor connected to the relevant alternate port; see the Mega reference and Serial Monitor documentation. Board serial behavior is not interchangeable: Wokwi documents its ATtiny85 SoftwareSerial setup as requiring 115200 baud, whereas that is not a universal baud requirement for Uno or Mega hardware serial.
What a Wokwi plot can—and cannot—show
Wokwi describes itself as a browser-based simulator for Arduino, ESP32, STM32, Raspberry Pi Pico and other platforms; its overview and supported hardware list describe the available targets. A plot is useful for checking sketch logic, serial formatting and supported simulated components. It is not proof of how real electronics will behave.
Recommended Free Tools
- A simulated potentiometer does not establish real contact noise, loading or wiring quality.
- A generated sine wave does not test ADC linearity or analog output quality.
- A simulated sensor does not establish the accuracy of a physical sensor.
- A value derived from PWM code is not the same as viewing the electrical waveform on an oscilloscope.
For digital-signal inspection, Wokwi also offers a virtual logic analyzer, a separate tool from the Serial Plotter. Use real hardware and appropriate measurement equipment when electrical tolerances, physical sensor behavior, power conditions or timing under load matter.
When to use Wokwi, hardware or a local workflow
- Choose Wokwi in the browser to learn serial formatting, try supported circuits without components, share a public project or isolate basic code and wiring logic.
- Move to an Arduino and real components when the question depends on actual sensor behavior, electrical noise, ADC reference accuracy, power delivery or timing under physical load.
- Use Wokwi for VS Code if your project already lives in a local development workflow. Its VS Code documentation describes integrations with Arduino CLI, PlatformIO, ESP-IDF and other toolchains.
Wokwi’s pricing page describes a free Community plan for public projects and simulations; paid plans add features such as unlisted projects, custom libraries, faster builds and private IoT Gateway access, depending on plan. For the public plotter examples in this guide, start with the free workflow. Consider a paid plan only if you need a specific private-project or development feature; payment does not change what a plotted value proves about physical hardware.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

