SuperScope: Circuit Simulation through Arduino-Processing Interface

nto the program where you can physically manipulate them.
Arduino tests for the value of the component (a capacitor, inductor, resistor, or waveform of specific frequency) then sends the data to Processing.
Imported components can then be plugged into circuit schematics.
SuperScope builds upon the mission of Arduino, the interface between hardware and software, analog and digital.
SuperScope provides the user with three graphical representations of the circuit.
The first is the basic frequency-domain plot; graphing voltage vs. frequency.
The second is the vector diagram; depicting the phase and magnitude of the output.
The third is a phasor; a dynamic, analytical representation of the output’s phase and magnitude relative to the input’s.
Arduino SuperScope

Let’s get started on what you’ll need for this project.

Step 1: What You Will Need

*Arduino – Available @ RadioShack [Catalog #: 276-128]
*Resistors – Available @ RadioShack [Catalog #: 271-003]
*Capacitors – Available @ RadioShack [Catalog #: 272-802]
*Inductive Components (inductors, ferrite chokes, motors, transformers) – Available @ RadioShack [Catalog #: 273-102]
*SolderlessBreadBoard – Available @ RadioShack [Catalog #: 276-098]
*LM339 Comparator (probably my absolute favorite IC) – Available @ RadioShack [Catalog #: 276-1712]
*555 Timer (I recommend the TLC555) – Available @ RadioShack [Catalog #: 276-1718]

Step 2: Circuit Schematic

Wire it up like this.

If you are using an op-amp instead of the LM339 comparator you may need to add in the positive feed-back loop depicted in the schematic.
The component you are testing connects to the two open circles.

Step 3: 1523 lines of code on the wall…

The Processing Code:

The code is so large that instructables won’t let me upload it as text :p

A text file and the processing app file are attached.

Step 4: Whew… only 94 lines this time

//The Arduino Code:

#include <math.h>

byte chargePin = 9;
byte triggerPin = 8;
byte noninvertingPin = A0;
byte invertingPin = A1;
float constRes = 100;
unsigned long timeStart;
unsigned long timeEnd;
unsigned long timeDelta;
unsigned long capacitance;
unsigned long inductance;
unsigned long resistance;
unsigned long frequency;
String str;
char c;
void setup() {
pinMode(chargePin, OUTPUT);
pinMode(triggerPin, INPUT);
pinMode(noninvertingPin, INPUT);
pinMode(invertingPin, INPUT);
str = “”;
c = ‘\n’;

void loop() {
Schematic Arduino SuperScope
while((Serial.available() > 0)) {

c =;
if(!(c==’\n’)) {
str += c;
else {
if(str == “requestFarads”) {
else if(str == “requestHenrys”) {
else if(str == “requestOhms”) {
else if(str == “requestHertz”) {

Major Components in Project





For more detail: SuperScope: Circuit Simulation through Arduino-Processing Interface

We recommend EasyEDA for electronic circuit design.
From Schematic Drawing to PCB Production, Just Need One Tool
Cheap PCB Prototype: 10 pcs 2 layers only $10, quick delivery, 100% E-test

Clip to Evernote

Leave a Comment

(Spamcheck Enabled)

Read previous post:
Improved Simple Wing Shield using arduino
Improved Simple Wing Shield using arduino

Not too long ago, I made my own version of the popular Wing Shield out of some spare parts and...

Scroll to top