This project is going to implement a simple oscilloscope using an Arduino Mega 2560. The oscilloscope samples up to 8 ADC channels and streams the data to a PC for visualization.
- Timed sampling of up to 8 channels on the ADC
- Configurable sampling frequency
- Continuous sampling mode
- Buffered sampling mode with trigger conditions
- Asynchronous serial communication using UART interrupts
- Arduino Mega 2560
- Whatever sensor to test the oscilloscope (simple wires are also ok)
- Arduino/: Contains the Arduino code for the oscilloscope.
- Linux/: Contains the PC client code for controlling the oscilloscope and visualizing the data.
-
linux
sudo apt-get install arduino gnuplot make
-
arch
sudo pacman -S arduino gnuplot make
The following command works both in main directory (arduino_oscilloscope
) to compile both Arduino and Linux, and in the single directories (Linux
or Arduino
) to compile the single part of the project.
-
Compilation only
make build
-
Clean only
make clean
-
Clean + Build + Run
make
-
Run with default attributes:
make run
or just:
make // clean + build + run
Default attributes are:
- device: /dev/ttyUSB0
- baudrate: 9600
- blocking: true
-
Run with specific attributes:
make run <device> <baudrate> [blocking]