Physics 37100
Advanced Physics Laboratory I
Lab #4
(PART II: Simple oscilloscope)
1)
Using the code
and circuit from part I and lab 3-II, create a sketch to:
a. establish communication with matlab
using ‘?’ and ‘K’;
b. wait to receive the character ‘g’ (for go);
c. take 512 points of time series data from photoresistor on A0 measuring the PWM pin 9 LED set to 128;
d. send the data to matlab
using Serial.println();
e. send the total acquisition time;
f.
loop to b.
2)
Modify to matlab script to:
a. establish communication with arduino
using ‘?’ and ‘K’;
b. send the character ‘g’ (for go);
c. loop over the serial data using fgetl()
and str2double() to store the data in an array;
d. read the acquisition time using fgetl()
and str2double();
e. plot the data using a time axis in μs;
f.
drawnow;
g. Loop to b.
3)
Move the wire
connected to A0 to other points in the circuit while the script is running to
see the data update.
4)
Change the
plotting to display the FFT of the data.
a. The horizontal axis should be in Hz. Include a nice plot of the FFT with x and y
axis labels in the report.
b. What is the frequency of the PWM light?
c. Is it consistent with the value in the description of
analogWrite on the arduino
site: https://www.arduino.cc/en/Reference/AnalogWrite.
d. Measure the frequency directly using the time series
data to measure the time from one peak to the next. Is it consistent?
5)
(Extra credit)
modify to allow matlab to set the value of the LED
output on each loop.