Introduction: Arduino Oscilloscope Under 5 $ - 3 Channel

Oscilloscopes are used by electronics enthusiasts , hobbyists and it is one of the common tools on a workbench . But buying one can get expensive so finally i decided that why not to make one using an arduino. So this basic project will help you increase your skill and in the end you will end up having a nice DIY tool for you bench which will make some things easy for you .

Arduinos are great , they use 8-bit microcontroller which has digital inputs outputs , SPI , I2C lines , Serial Communication , ADC etc . So using arduino for this project would be a nice idea .

Step 1: Materials Required

As i would like to keep things simple and cheap all you need is :

A laptop x1

An Arduino x 1 (UNO,PRO MINI anyone would work i used NANO ) Except MEGA

Jumper Cables x 2

Breadboard x 1

Alligator Clips x 2

Male to Male 3.5 mm cable x 1

An audio source or a signal source of whose waveform you want to see.

Step 2: The Code and the Oscilloscope Program

After you have plugged in the arduino just upload the provided Code in the zip file .

What code does is it just simply reads the analouge voltage on arduino's analouge pin A0 to A5 or A7 (depending upon the board) and then covert that analogue voltage into a value ranging between 0-1023 and then that value is sent to the computer through the usb port .

Pins A0 - A5 or A7(depending upon the board) acts as 6 or 8 channels of the oscilloscope but the software is designed to display only 3 channels at once .

Then when you open up the oscilloscope program after uploading the sketch select the baud rate and COM port then just open up the channels

The oscilloscope program is designed to take the values form the arduino and plot it on a graph and just join those points with a line which gives you a nice looking waveform just like an oscilloscope .

Step 3: Code of Conduct

Step 1 : Plug in your arduino

Step 2 : Upload the code

Step 3 : Put the signal through arduino's pin A0 - A5 or A7 (depending upon the board) in my case i choosed an audio signal coming out from my phone via male to male 3.5mm jack .

Its one end was connected to the phone and on the other end i connected its ground to arduino's ground and the other alligator clip was connected to one of the audio channels (in my case the right channel of the audio signal) .

Step 4 : Open up the oscilloscope program

Step 5 : Select the COM port and select the baud rate

Step 6 : Open up the channels and THERE U GO !!!!!

"REFER THE VIDEO BELOW FOR MORE ..."

Step 4: Features:

Features:

This oscilloscope has a resolution of about : .0049 volts (4.9 mV) per unit.

Refresh Rate - 1Khz

Baud Rate :115200

Voltage Range : 0 - 5v DC

It can display 3 channels at a time

NOTE : Do not exceed the 5v limit on the oscilloscope or else you will fry the arduino .

Limitations:

1. Voltage range cannot be exceeded its lies between 0-5V DC ONLY

2. Any signal above 1kHz would not be detected by the arduino or either it will show garbage values

3. Don't try to measure the AC signals as Analouge pins of arduino are not designed to do so , so at the end you will end up by either damaging the arduino or either it will only show the positive half of the arduino.

Step 5: Well There You Have It !!

So i think that was pretty simple how we can make a simple arduino based Ocillosocpe as this was my first experience with arduino oscilloscopes let me know if i did a mistake . Hope you like it . If you guys have any question post it in the comments section down below .Now you can easily hack into small electronics and can easily find out what kind of wave is going at what voltage level in short you've got a great tool

Have Fun ! and do consider voting me ....

Comments

author
mcstarcoin made it!(author)2017-05-10

I got the code loaded onto my Uno, however when I connected gnd from the board to gnd on the aux cable and A0 to the tip of the aux cable nothing showed up in Serial Oscilloscope. It was set to the correct com port and baud 9600 with the channels set to 1,2,3 just like in the video and it still didn't work. I don't know what I'm doing wrong, and I would love it if you could tell me what I'm doing wrong.

author
jonaameelgaar14 made it!(author)2017-03-04

can you show me the block diagram of this project?

please I really need that .

author
jonaameelgaar14 made it!(author)2017-03-04

What if I want to do this on tablet? Is it possible ? my project is tablet-interfaced arduino based oscilloscope. And I need to know the correct block diagram of my project? please help me.

author
CarlosV190 made it!(author)2017-02-10

Hello my friend, I have a question, how do you setup arduino code and hardware to use more than one channel at time?

author
PedroM31 made it!(author)2016-07-10

Will it work for waves with both positive and negative values?

author
amansinghaljpr made it!(author)2016-07-13

No it only work for positive values .

author
ajmal+hassan made it!(author)2016-06-26

How to increase the range to 12 volt?

author
amansinghaljpr made it!(author)2016-06-27

I'll update you about that very soon

author
LeroyD6 made it!(author)2016-06-23

hi

when i try to use the SERIAL OSCILLOSCOPE.EXE program it opens a window and says that "serial oscilloscope has stoped working. windows is collecting more information about the problem.this might take several minutes..."

do you know how can i fix this?

author
LeroyD6 made it!(author)2016-06-23

nevermind i fixed it.

but i wanted to ask if there is a way to make the arduino an order to set a digital pin to HIGE or LOW whenever the oscilloscope program triggerd?

i mean to make the oscilloscope send or write information to the arduino and by that make the arduino do stuff automaticlly like move a stepper motor or turn on a LED.

thanks.

author
amansinghaljpr made it!(author)2016-06-23

Yes of course there is a method for it . All you need to do is edit the code in such a way that whenever a particular value hits the analog pin a particular digital pin goes high . Please inbox me or write an email on amansinghaljpr@gmail.com if you are not able to do it .

author
ThomasB239 made it!(author)2016-06-09

not usable with os X

author
amansinghaljpr made it!(author)2016-06-11

I am really sorry for that ill try to make it OSx compatible if i could get my hands on a MacBook

author
Syedhamzaali made it!(author)2016-05-08

Why you excluded arduino mega???

author
amansinghaljpr made it!(author)2016-05-08

I never had my hands on an arduino mega so i am not sure that i will work with it in that manner or not . As far as my knowledge goes it should work with it too

author
farzanadinie made it!(author)2016-05-03

I cant upload your codinggg ...why...pls help me

try.PNG
author
amansinghaljpr made it!(author)2016-05-03

you have a general problem ..it is not related to code . Just try reinstalling the arduino drivers while your is board is already connected . Then choose the correct board , correct COM port and it will work perfectly fine . After all this try uploading the code again ... if still there is a problem please do let me know I'll help u out

author
farzanadinie made it!(author)2016-04-28

Hi . Its an interesting n awesome work . Such a very good achievement ! I would like to apply this diy oscilloscope into my ecg project . Do i need to upload any app in my laptop before proceed to this diy?

author
amansinghaljpr made it!(author)2016-04-29

My friend all you need is an oscilloscope application which is provided in the zip file nothing else. The code and necessary application is there is the zip file so no need to install anything else so just have fun making the project and enjoy

author
mohkaz made it!(author)2016-04-25

Congrats

author
amansinghaljpr made it!(author)2016-04-26

For what ?

author
Abdelali2 made it!(author)2016-04-22

Congrats

author
amansinghaljpr made it!(author)2016-04-22

Thank you :)

author
Abdelali2 made it!(author)2016-04-22

hi . can we made it with an arduino uno card ?

author
amansinghaljpr made it!(author)2016-04-22

Yes of course you can use arduino uno code and all the steps will be same . The only difference is arduino uno has 6 analog pins so they will act as 6 channels of arduino .

author
Raphango made it!(author)2016-04-21

Awesome!! Congrats!!

author
amansinghaljpr made it!(author)2016-04-22

Thank you :)

author
igel1 made it!(author)2016-04-20

Can you make an oscilloscope program to run on mac?

author
amansinghaljpr made it!(author)2016-04-21

i am so sorry about that . I never got a chance to get my hands on a mac so i don't know weather this code will work on mac or not but yes if it would be possible for me to make this code run on a mac i'll let u know.
And please do vote for me ;) have a nice day.

author
Yonatan24 made it!(author)2016-04-20

Hi, I've added your project to the "Make Your Own Oscilloscope!" Collection

This is the link If you are interested:

https://www.instructables.com/id/Make-Your-Own-Osci...

author
amansinghaljpr made it!(author)2016-04-20

Hey thanks a lot for adding my instructable to your collection .. and do consider voting me . :) ;)

About This Instructable

24,442views

127favorites

License:

Bio: Hi , folks i am Aman and i like to make electronics projects and robots. I also like to make aero models like a plane and ... More »
More by amansinghaljpr: Arduino Oscilloscope Under 5 $ - 3 Channel Graphene Battery : Battery of FutureUltimate Guide For Making a LED CUBE
Add instructable to: