Difference between revisions of "EGR 103/DAQ 2"

From PrattWiki
Jump to navigation Jump to search
m
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page contains pictures and graphs related to DAQ 2 for [[EGR 53]].  It has been updated for Fall, 2011.
+
<h1>This is the old page</h1>
 +
You probably want [[Python:DAQ 2]]
  
== Note About DAQ Cards==
+
<!--
* DAQ 2-3: After you add two channels, you may receive the following:
+
This page contains pictures and graphs related to DAQ 2 for [[EGR 103]]. It has been updated for Spring 2018.
<source lang="text">Warning: This hardware could not support the requested value of 1000.00 for  
 
SampleRate. SampleRate has been set to 500.00. </source>
 
  
Your program will still work, just slowerThis is an issue with the drivers on some of the computers and does not represent a problem for this lab.
+
==Notes ==
 +
 
 +
* As before, if the system seems to not recognize Dev1, try Dev2 instead.
 +
* Here is the web page for MATLAB default plot colors: [https://www.mathworks.com/help/matlab/graphics_transition/why-are-plot-lines-different-colors.html Link]
 +
* [[MATLAB:Flexible Programming]]
 +
 
 +
=== Pauses ===
 +
There are <code>pause</code> commands in the code which will cause the program to...pause - specifically when the program first runs to check the lights.  You will need to hit a key to un-pause the programThe way to see if the program is paused is to look at the bottom left corner of your MATLAB window - it will tell you if it is paused.
 +
 
 +
=== Graph Labels ===
 +
For this assignment, you do not need labels or titles for graphs.  In a later assignment, you will add them.
  
 
== Circuit for BasicAOutput ==
 
== Circuit for BasicAOutput ==
Circuit layout for BasicAOutput.
+
Circuit layout for BasicAOutput - '''You only need the left-most circuit, however'''
 
<center>
 
<center>
 
[[Image:Circuit1.jpg|400px]]
 
[[Image:Circuit1.jpg|400px]]
 
</center>
 
</center>
 
== Circuit for BasicAIO ==
 
== Circuit for BasicAIO ==
Circuit layout for BasicAIO (two measurements).
+
Circuit layout for BasicAIO - '''You only need the left-most circuit, however'''
 
<center>
 
<center>
 
[[Image:Circuit2.jpg|400px]]
 
[[Image:Circuit2.jpg|400px]]
Line 20: Line 29:
  
 
== Graph from BasicAIO ==
 
== Graph from BasicAIO ==
Graph showing outputs when
+
Graph showing output when
 
<source lang="matlab">
 
<source lang="matlab">
Vout0 = 2.5+2.5*sin(2*pi*k/100);
+
Vout = 2.5+2.5*sin(2*pi*k/100);
Vout1 = 2.5+2.5*cos(2*pi*k/100);
 
 
</source>
 
</source>
 
That is,
 
That is,
Line 29: Line 37:
 
<math>
 
<math>
 
\begin{align}
 
\begin{align}
V_{out,\,0}=2.5+2.5\sin\left(\frac{2\pi k}{100}\right)\\
+
V_{out}=2.5+2.5\sin\left(\frac{2\pi k}{100}\right)
V_{out,\,1}=2.5+2.5\cos\left(\frac{2\pi k}{100}\right)
 
 
\end{align}
 
\end{align}
 
</math>
 
</math>
 
</center>
 
</center>
 
<center>
 
<center>
[[Image:Circuit2Plot.png|500px]]
+
[[Image:Circuit2PlotX.png|500px]]
 
</center>
 
</center>
  
 
== Circuit for AIO ==
 
== Circuit for AIO ==
Circuit layout for AIO (six measurements).
+
Circuit layout for AIO - '''You only need the left-most circuit, however'''
 
<center>
 
<center>
 
[[Image:Circuit3.jpg|400px]]
 
[[Image:Circuit3.jpg|400px]]
 
</center>
 
</center>
 
== Graph from AIO ==
 
== Graph from AIO ==
Graph showing outputs from six measurement channels.
+
Graph showing outputs from three measurement channels. Note at the far left that they all start at either exactly -1 V or 0 V!
 
<center>
 
<center>
[[Image:VoltagesFigure.png|500 px]]
+
New Colors: Blue Orange Yellow Purple Green Cyan<br>
 +
[[Image:VoltagesFigureRed.png|300 px]]<br>
 
</center>
 
</center>
  
 
== Codes ==
 
== Codes ==
 
Pasting codes from PDF files is...a bad idea.  Here are the text versions of some of the codes in the assignment.
 
Pasting codes from PDF files is...a bad idea.  Here are the text versions of some of the codes in the assignment.
=== Example Commands to Parse Data Set for Small Green and Red LEDs ===
+
 
 +
=== BasicAOutput.m===
 
<source lang="matlab">
 
<source lang="matlab">
load SmallData
+
% Initialize workspace and graph
SmallGreenTotal = SmallVoltages(:,1);
+
clear; format short e; figure(1); clf; daqreset;
SmallGreenRes  = SmallVoltages(:,2);
+
 
SmallGreenLED  = SmallVoltages(:,3);
+
% Create a session
SmallRedTotal  = SmallVoltages(:,4);
+
s = daq.createSession('ni');
SmallRedRes     = SmallVoltages(:,5);
+
 
SmallRedLED     = SmallVoltages(:,6);
+
% set sample rate
 +
SampleRate = 1000;
 +
s.Rate = SampleRate;
 +
 
 +
% Add channel 0 to output
 +
chO = addAnalogOutputChannel(s,'Dev1',[0],'Voltage');  
 +
 
 +
% Review card information
 +
s
 +
chO
 +
 +
% Write values to output channel
 +
outputSingleScan(s, [5]);  
 +
fprintf('Press return to continue\n');
 +
pause
 +
outputSingleScan(s, [0]);
 +
 
 +
% Use loop to set several different voltages
 +
for k=1:300
 +
     % Calculate voltages for each channel
 +
    Vout = 2.5+2.5*sin(2*pi*k/100);
 +
    % Put voltage to output channel
 +
    outputSingleScan(s, [Vout])
 +
     pause(0.02)
 +
end
 +
 
 +
% Turn output off
 +
outputSingleScan(s, [0]);
 
</source>
 
</source>
  
=== Subplot Structure for Plotting Code===
+
===BasicAIO.m===
The code below includes the commands for the small green LED assuming the variable names given in the code above.
 
 
<source lang="matlab">
 
<source lang="matlab">
subplot(3,2,1)
+
% Initialize workspace and graph
% small green plotting commands
+
clear; format short e; figure(1); clf; daqreset;
plot(SmallGreenTotal, SmallGreenTotal, 'k-',...
+
 
     SmallGreenTotal, SmallGreenRes, 'k:',...
+
% Create a session
     SmallGreenTotal, SmallGreenLED, 'k--')  
+
s = daq.createSession('ni');
title('Small Green LED')
+
 
 +
% set sample rate
 +
SampleRate = 1000;
 +
s.Rate = SampleRate;
 +
 
 +
% Add channel 0 to output
 +
chO = addAnalogOutputChannel(s,'Dev1',[0],'Voltage');
 +
% Add channels 0-3 to input
 +
chI = addAnalogInputChannel(s,'Dev1',[0],'Voltage');
 +
 
 +
% Review card information
 +
s
 +
chO
 +
chI
 +
 
 +
% Write values to output channel
 +
outputSingleScan(s, [5]);
 +
fprintf('Press return to continue\n');
 +
pause
 +
outputSingleScan(s, [0]); 
 +
 
 +
% Use loop to set several different voltages
 +
for k=1:300
 +
    % Calculate voltages for each channel
 +
    Vout = 2.5+2.5*sin(2*pi*k/100);
 +
    % Put voltage to output channel
 +
    outputSingleScan(s, [Vout])
 +
    % Read voltage from input channel
 +
    Voltages(k,:) = inputSingleScan(s);
 +
    pause(0.02)
 +
end
 +
 
 +
% Turn output off
 +
outputSingleScan(s, [0]); 
 +
 
 +
% Plot voltage versus index
 +
n = 1:k;
 +
Vtotal  = Voltages(:,1);
 +
plot(n, Vtotal, 'r')
 +
legend('Total Voltage', 'Location', 'Best')
 +
 
 +
</source>
 +
-->
 +
<!--
 +
=== Function to Plot Curves ===
 +
<source lang="matlab">
 +
function CurvePlotter(Vin, MyAdjective)
 +
subplot(1, 2, 1)
 +
plot(Vin(:,1), Vin(:,1), 'k-',...
 +
     Vin(:,1), Vin(:,2), 'b-',...
 +
     Vin(:,1), Vin(:,3), 'g-')
 +
axis([-1 5 -1 5])
 +
grid on
 +
title(sprintf('%s Green', MyAdjective))
 +
subplot(1, 2, 2)
 +
plot(Vin(:,4), Vin(:,4), 'k-',...
 +
    Vin(:,4), Vin(:,5), 'm-',...
 +
    Vin(:,4), Vin(:,6), 'r-')
 +
axis([-1 5 -1 5])
 
grid on  
 
grid on  
 +
title(sprintf('%s Red', MyAdjective))
 +
</source>
  
subplot(3,2,2)
+
=== Script to Plot All Three Figures ===
% small red plotting commands
 
  
subplot(3,2,3)
+
<source lang="matlab">
% large green plotting commands
+
clear
  
subplot(3,2,4)
+
% Small LEDs
% large red plotting commands
+
load SmallData
 +
figure(1); clf
 +
CurvePlotter(Voltages, 'Small')
 +
print -dpng SmallPlot % This will make SmallPlot.png
  
subplot(3,2,5)
+
% Large LEDs
% rect green plotting commands
+
%% your code here
  
subplot(3,2,6)
+
% Rectangular LEDs
% rect red plotting commands
+
%% your code here
 
</source>
 
</source>
 +
-->
  
 
== Questions ==
 
== Questions ==
Line 97: Line 195:
 
<references />
 
<references />
  
[[Category:EGR 53]]
+
[[Category:EGR 103]]

Latest revision as of 16:09, 3 April 2019

This is the old page

You probably want Python:DAQ 2


Questions

Post your questions by editing the discussion page of this article. Edit the page, then scroll to the bottom and add a question by putting in the characters *{{Q}}, followed by your question and finally your signature (with four tildes, i.e. ~~~~). Using the {{Q}} will automatically put the page in the category of pages with questions - other editors hoping to help out can then go to that category page to see where the questions are. See the page for Template:Q for details and examples.

External Links

References