Difference between revisions of "EGR 103/DAQ 1"

From PrattWiki
Jump to navigation Jump to search
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page contains pictures and graphs related to Data Acquisition Laboratory 1 (DAQ 1) of [[EGR 103]]. It has been updated for Fall, 2013.
+
 
 +
== '''Note:''' For Fall 2019 and after, you will want the [[Python:DAQ_1]] page. ==
 +
<!--
 +
== Introduction ==
 +
This page contains pictures and graphs related to Data Acquisition Laboratory 1 (DAQ 1) of [[EGR 103]]. It has been updated for Spring, 2018.  This page underwent a major revision in Fall of 2017 based on the DAQmx drivers and MATLAB's elimination of legacy toolbox codes.
  
 
== Supporting Pundit Pages ==
 
== Supporting Pundit Pages ==
 
*[[MATLAB:CB-68LP Pinout]]
 
*[[MATLAB:CB-68LP Pinout]]
 
*[[Resistor Color Codes]]
 
*[[Resistor Color Codes]]
*[[AFS_Course_Space#Transferring_Files]]
+
*[[Transferring_Files]]
  
 
== Typographical Errors / Clarifications ==
 
== Typographical Errors / Clarifications ==
* If your MATLAB needs an activation license, first make sure you are at a computer that has a DAQ card; if so, contact Dr. G.
+
* If the computer says your device is not found, try 'Dev2' instead of 'Dev1' in the
* If your Current Directory involces "Program Files" rather than what is in the lab manual, type
+
addDigitalChannel(s,'Dev1','Port0/Line0:2','OutputOnly')
  C:\Documents and Settings\mrglocal\My Documents\MATLAB
+
: line.
If your Current Directory is *close* to that - perhaps a -mrglocal or something similar somewhere, that is fine.
+
* Before running the program, the person at the DAQ machine will need to install the pydaqmx module:
 +
** Go to the Start button, find the Anaconda3 folder, and click the Anaconda prompt
 +
** In the Anaconda terminal that just opened, type
 +
  pip install pydaqmx
 +
** One it is done installing (or confirms that it is installed), close the Anaconda terminal
  
 
== Equipment Used ==
 
== Equipment Used ==
Line 46: Line 54:
 
[[Image:DAQ1LEDs.jpg|thumb|Several Light Emitting Diodes]]
 
[[Image:DAQ1LEDs.jpg|thumb|Several Light Emitting Diodes]]
 
[[Image:DAQ1LEDsClose.jpg|thumb|Closeup of two round LEDs]]
 
[[Image:DAQ1LEDsClose.jpg|thumb|Closeup of two round LEDs]]
[[File:LED, 5mm, green (en).svg|thumb|Drawing of LED from Wikipedia [http://en.wikipedia.org/wiki/Light-emitting_diode Light-emitting_diode] page]]
+
[[File:LED,_5mm,_green_(en).svg|thumb|Drawing of LED from Wikipedia [http://en.wikipedia.org/wiki/Light-emitting_diode Light-emitting_diode] page]]
 
A diode is an electrical element that generally only allows current to flow in one direction - and only after there is a sufficient voltage difference across the appropriate terminals.
 
A diode is an electrical element that generally only allows current to flow in one direction - and only after there is a sufficient voltage difference across the appropriate terminals.
 
LEDs - Light Emitting Diodes - are a special form of diode that emit light when current flows through them.
 
LEDs - Light Emitting Diodes - are a special form of diode that emit light when current flows through them.
Line 63: Line 71:
  
 
== Code ==
 
== Code ==
The following code listing is for <code>BasicDOutput.m</code>
+
The following code listing is for <code>ThreeBits.m</code>
 
<source lang="matlab">
 
<source lang="matlab">
% Prepare workspace
+
% Clear out workspace
clear; format short e
+
clear
  
% Clear out DAQ object
+
% Create a session
delete(daqfind)
+
s = daq.createSession('ni')
  
% Create Digital I/O Object
+
% Add output lines to session
DIO = digitalio('nidaq', 'Dev1')
+
addDigitalChannel(s,'Dev1','Port0/Line0:2','OutputOnly')
 
 
% Add output lines to Digital I/O Object
 
DOutputs = addline(DIO, 0:2, 'out')
 
  
 
% Writing values to output lines using binary
 
% Writing values to output lines using binary
putvalue(DOutputs, [1 1 1]);
+
outputSingleScan(s, [1 1 1]);
 
fprintf('Press return to continue\n');
 
fprintf('Press return to continue\n');
 
pause
 
pause
putvalue(DOutputs, [0 0 0]);
+
outputSingleScan(s, [0 0 0]);
  
 
% Writing values to output lines using base 10
 
% Writing values to output lines using base 10
 
MyVal = 0
 
MyVal = 0
 
while 0<=MyVal & MyVal<=7
 
while 0<=MyVal & MyVal<=7
     putvalue(DOutputs, MyVal)
+
     MyBinVal = decimalToBinaryVector(MyVal, 3, 'LSBFirst');
     fprintf('Displaying %0.0f as %c %c %c\n', ...
+
    outputSingleScan(s, MyBinVal);
         MyVal, dec2bin(MyVal, 3))
+
     fprintf('Displaying %d as %d %d %d\n', ...  
     MyVal = floor(input('Enter a number between 0 and 7: '));
+
         MyVal, MyBinVal(end:-1:1))                  
 +
     MyVal = floor(input('Enter a number between 0 and 7: '));  
 
end
 
end
  
 
% Turn all outputs off
 
% Turn all outputs off
putvalue(DOutputs, [0 0 0])
+
outputSingleScan(s, [0 0 0]);
 
</source>
 
</source>
 +
 +
== Other Resources ==
 +
* Landing Lights Animation:
 +
[[File:LLGifSmall.gif]]
  
 
== Questions ==
 
== Questions ==
Line 107: Line 117:
  
 
[[Category:EGR 103]]
 
[[Category:EGR 103]]
 +
-->

Latest revision as of 17:13, 7 October 2019

Note: For Fall 2019 and after, you will want the Python:DAQ_1 page.