This passion-project is an attempt to use the Ardueno's analog pins as a (moderately) viable oscilloscope for studying electrical behavior. The program is built in two parts:
- A C++ library for operating the Arduino side of the program.
- A python client which communicates with the Arduino program and plots the data.
This program was built with an Arduino MEGA framework in mind, and so manual adjustment might be necessary depending on the circumstances. Note, this program is not an ideal replacement for an oscilloscope due to the limitations of the unspecialized hardware.
The python program is built under the following:
Here is a bare-minimum example of of how theArduinoOscilloscope.cpp
program should be incorporated into your ino file:
#include "./ArduinoOscilloscope.h"
ArduinoOscilloscope instance = InitalizeArduinoOscilloscope(9600,A14);
void setup() {
instance.establishConnection();
}
void loop()
{
instance.sendPinData();
}
Note this is just a copy of the ArduinoOscilloscope.ino
file in the project source. It remains an example of how to implament the library.
Once these basic methods are placed in their appropriate locations, the python program can be executed by running the ArduinoOscilloscope.py
script. Here's an example of the setup process and execution:
Admittedly, the program isn't perfect, and my lack of experience in writing low level code might be a limiting factor; but I'm eager to optimize the project over time so that I can complement my study of circuits, hardware, and general computer science. Consequently, if you have any questions or recommendations, please raise an issue and let me know if you have any thoughts.