Download MIT-240 Lab#7 - Analog to Digital

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Electrical ballast wikipedia , lookup

Three-phase electric power wikipedia , lookup

Power inverter wikipedia , lookup

Signal-flow graph wikipedia , lookup

Pulse-width modulation wikipedia , lookup

History of electric power transmission wikipedia , lookup

Islanding wikipedia , lookup

Electrical substation wikipedia , lookup

Immunity-aware programming wikipedia , lookup

Variable-frequency drive wikipedia , lookup

Distribution management system wikipedia , lookup

Triode wikipedia , lookup

Potentiometer wikipedia , lookup

Current source wikipedia , lookup

Rectifier wikipedia , lookup

Power MOSFET wikipedia , lookup

Multimeter wikipedia , lookup

Surge protector wikipedia , lookup

Alternating current wikipedia , lookup

Power electronics wikipedia , lookup

Stray voltage wikipedia , lookup

Resistive opto-isolator wikipedia , lookup

Integrating ADC wikipedia , lookup

Ohm's law wikipedia , lookup

Voltage regulator wikipedia , lookup

Metadyne wikipedia , lookup

Voltage optimisation wikipedia , lookup

Analog-to-digital converter wikipedia , lookup

Current mirror wikipedia , lookup

Schmitt trigger wikipedia , lookup

Switched-mode power supply wikipedia , lookup

Mains electricity wikipedia , lookup

Buck converter wikipedia , lookup

Opto-isolator wikipedia , lookup

Transcript
Community College of Allegheny County
Unit 7
Page #1
Analog to Digital
"Engineers can't focus just on technology; they need to develop
their professional skills-things like presenting yourself,
speaking in front of a large group and working within a
technology team."
β€”Laura Harmon, recent grad & system engineer at Lockhead Martin
(eeTimes 8/14/99)
Revised: Dan Wolf, 4/07/2017
Community College of Allegheny County
Unit 7
Page #2
OBJECTIVES:
ο‚· Understanding of A/D Resolution, offset and slope.
ο‚· Experience and understanding of the AD590 temperature
sensor.
ο‚· Use of the Arduino analog inputs.
DELIVERABLES THAT YOU MUST SUBMIT
1. Experiment #1 Graph and Table #1
2. Experiment #2 Graph and Table #2
On-Line Reading Material:
Required:
a) http://www.eetimes.com/document.asp?doc_id=1276974
b) Explanation for three types of ADC:
http://hyperphysics.phyastr.gsu.edu/hbase/Electronic/adc.html#c1
Optional:
a) Everything you wanted to know about A-D Convertors:
http://www.delftek.com/wpcontent/uploads/2012/04/National_ABCs_of_ADCs.pdf
b) https://learn.sparkfun.com/tutorials/analog-to-digitalconversion
c) http://www.allaboutcircuits.com/textbook/digital/chpt13/practical-considerations-adc-circuits/
INTRODUCTION TO THE ARDUINO ANALOG TO DIGITAL CONVERTOR:
The Arduino has six different Analog Inputs, numbered A0 to A5.
Each has a 10-bit converter with a +5V reference voltage so the
resolution is:
π‘‰π‘œπ‘™π‘‘π‘…π‘’π‘ π‘œπ‘™π‘’π‘‘π‘–π‘œπ‘› =
5π‘‰π‘œπ‘™π‘‘
10
2
or
π‘‰π‘œπ‘™π‘‘π‘…π‘’π‘ π‘œπ‘™π‘’π‘‘π‘–π‘œπ‘› =
5π‘‰π‘œπ‘™π‘‘
1023
= 4.88π‘šπ‘‰
This means that an analog voltage between 0 and +5V will be
measured in 1023 steps of 4.88mV. It takes about 100mS (0.0001
second) to read an analog input, so the maximum sample rate is
about 10K times per second.
Community College of Allegheny County
Unit 7
Page #3
INTRODUCTION TO THE ADC590 TEMPERATURE SENSOR:
The AD590 is a 2-terminal integrated circuit temperature
transducer that produces an output current proportional to
absolute temperature. For supply voltages between 4 V and 30 V,
the device acts as a high impedance, constant current regulator
passing 1ΞΌA per degree K.
In order to convert the (1ΞΌA per degree K) constant current to a
voltage for the ADC, we will add a 1K resister as follows:
1uA / degK
+5V
AD590
Temperature sensor
1mV / degK
1K ohm
77degF = 25degC = 298uA
70degF = 21degC = 294.15uA
è 298mV @ 1K ohm load
70degF = 21degC = 294.15mV
Outputs 1mV per °C
At 25°C (298°K or 77°F), the ADC590 sensor will output 298uA
though the 1K resister. According to ohm’s law, 298uA though a
1K ohm resister provides a voltage of:
π‘‰π‘œπ‘™π‘‘π‘Žπ‘”π‘’ = 𝐼 βˆ— 𝑅 = 0.000298 βˆ— 1000 π‘œβ„Žπ‘šπ‘  = 0.298𝑉 = 298π‘šπ‘‰
And each additional °K increase or decrease will result in a
corresponding 1uA change in output current from the ADC590
producing a corresponding 1mV change in voltage. Note that a
single degree Kelvin is equal in magnitude to a degree Celsius
so we can also say β€œfor each degree Celsius we will see a 1mV
change in output voltage”. Figure #3 shows some key values of
temperature, voltage and current for this circuit.
Community College of Allegheny County
Unit 7
Page #4
Experiment #1 – A/D Verification:
1. Figure #1 shows an Arduino microcontroller connected to a
10Kohm, 10-turn potentiometer. This will allow us to vary
the Arduino analog input voltage from zero to 10 Volts
while monitoring the conversion process on the computer
monitor.
2. Using your class notes, design the interfaces between the
different components and create a detailed (and neat)
schematic which includes everything needed to build the
circuit.
3. Construct the circuit and attach a voltmeter or
Oscilloscope to monitor the analog input voltage. Use a
fixed +5V power supply and set the potentiometer to a midpoint. When complete, ask the instructor to review your
schematic before applying power.
4. See Figure #4. Upload the Arduino with the program named:
AnalogInput_CCAC.ino
5. Start the Arduino Serial Monitor: Tools | Serial Monitor so
that you can monitor the output of the Arduino A/D
conversion.
Note: Make sure that you do not apply more than 5.0V
to the Analog input of the Arduino. An excess voltage
will damage the Arduino.
6. Apply power and test the circuit. Set the potentiometer so
that the analog input is just about 4.88mV. The Serial
Monitor should indicate a RAW A/D count of 1 and a voltage
level of 4.88mV. If necessary, adjust the potentiometer so
that the Serial Monitor shows a RAW A/D value of 1 and an
output voltage of 4.88mV (Vin may not equal Voutput). Record
the data on Table #1.
7. Complete the rest of Table #1. Pick your own values for
the rows with blank RAW A/D cells. After each voltage
change, observe how constant the output voltage is. Does
it drift? Why? When you are done, use Excel to graph the
data with the RAW A/D value on the X-axis and the input
voltage on the Y-axis. Compute and record the slope of
this data (Y=MX+B) on the back of the graph.
Community College of Allegheny County
Unit 7
Page #5
8. On the same graph, plot the line for the perfect A/D
conversion where:
X = RAW A/D Value = 1
and Y = 4.88mV
X = RAW A/D Value = 1023
and Y = 5.000 Volts
Compute and record the slope of this data (Y=MX+B) on the
back of the graph. The offset and slope of these two plots
may not be equal. What does this mean?
9. If you were reading a wheatstone bridge/strain gauge, how
would the Arduino offset and slope error affect the strain
gauge measurements?
10. Submit your graph and Table #1 as your documentation for
this experiment.
Table #1
Voltmeter /
Oscilloscope
Serial Monitor
Input Voltage
Vin
RAW A/D Value
0
0
1
2
3
511
1023
Output in
mV
Voutput
(Offset Error)
Voltage Difference
Vin – Voutput
Community College of Allegheny County
Unit 7
Page #6
Experiment #2 – Temperature Measurement:
1. Figure #2 uses an AD590 temperature sensor as the input to
the Arduino. The AD590 generates 298uA through the 1K
resister at 25°C (77°F) resulting in 298mV applied to the
Arduino input. Every °C above or below will result in a
1mV increase or decrease in voltage. Figure #3 shows a
group of useful values.
2. Based on the 1K ohm resister value, the equation to convert
the AD590 output (in mV) to degrees F is:
π‘Œ = 𝑀𝑋 + 𝐡
𝑑𝑒𝑔𝐹 = 1.8 βˆ— π‘šπ‘‰ βˆ’ 459.67
3. Modify the circuit to include the ADC590 as per Figure #2
and ask the instructor to review it before you apply power.
4. Test with a couple of different temperatures and record the
results in Table #2. Plot them on an Excel graph and see
how close them are to the equation provided above.
Remember that you may have experienced an A/D converter
offset in the experiment above and the offset may still
exist.
Table #2
Voltmeter /
Oscilloscope
Input
Voltage Vin
Serial Monitor
RAW A/D
Value
Output
in mV
Voutput
Actual
Temperature
°F
Computed
Temperature
TF = 1.8 * Voutput
– 459.67
Community College of Allegheny County
Unit 7
Page #7
Optional Experiment #1:
1. Remove the wire to the Arduino analog input so the input is
left β€œfloating”. Observe the values on the Serial Monitor.
What is happening?
Optional Experiment #2:
1. The equation for the AD590 output-to-°F calculation is
given above, including the values for the slope and offset
(M and B). Calculate the values for the slope and offset
and show all of your calculations. You may find that
building a voltage (°K versus °F versus °C versus mV) table
first in MS-Excel might clarify the concepts and
calculations.
Note that the AD590 data sheet specifies that it outputs
1uA per °K so you have to switch the units to °C and °F in
order to explain the full equation.
Community College of Allegheny County
Unit 7
Figure #1 – Arduino Analog-to-Digital
+5V
10K 10-turn
Potentiometer
Arduino
MicroController
Analog In
A0
Gnd
USB
Laptop
Page #8
Community College of Allegheny County
Unit 7
Page #9
Figure #2 – AD590 Temperature Sensor
+5V
AD590
Temperature sensor
Arduino
MicroController
Analog In
A0
1K ohm
Gnd
77degF = 25degC = 298uA
70degF = 21degC = 294.15uA
è 298mV @ 1K ohm load
70degF = 21degC = 294.15mV
Outputs 1mV per °C
USB
Laptop
AD590
Community College of Allegheny County
Unit 7
Page #10
Figure #3 – AD590 Temperature Table
AD590
Output
Current
in Amps
AD590 mV
output
with 1K
ohm
Resister
Degree
Celsius
Degree
Fahrenheit
Degree
Kelvin
Calculated °F
= 1.8(mV)459.67
0.00027315
273.15
0
32
273.15
32
0.00029415
0.00029515
0.00029615
0.00029715
0.00029815
0.00029915
0.00030015
294.15
295.15
296.15
297.15
298.15
299.15
300.15
21
22
23
24
25
26
27
69.8
71.6
73.4
75.2
77
78.8
80.6
294.15
295.15
296.15
297.15
298.15
299.15
300.15
69.8
71.6
73.4
75.2
77
78.8
80.6
0.00037315
373.15
100
212
373.15
212
Community College of Allegheny County
Unit 7
Page #11
Figure #4 – Arduino Software
/*
Analog Input - Demonstrates analog input by reading an analog value
analog pin 0
on
The circuit:
Potentiometer attached to analog input 0
center pin of the potentiometer to the analog pin
one side pin (either one) to ground
the other side pin to +5V
Created by Dan Wolf, Updated on 1/21/2017
*/
int sensorPin = A0;
int sensorValue = 0;
// select the input pin for the potentiometer
// variable to store the value coming from the sensor
const byte numChar_in_Load = 10;
char AD_Reading_Str[numChar_in_Load];
char AD_Voltage_Str[numChar_in_Load];
float fAD_Voltage;
void setup() {
Serial.begin(9600);
// set up Serial library at 9600 bps
Serial.println("\n Arduino Analog-to_Digital - vJan_20_2017");
Serial.println("Uses analog input A0 \n");
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
fAD_Voltage = sensorValue * 0.00488; //convert to volt
dtostrf(sensorValue, 5, 0, AD_Reading_Str);
dtostrf(fAD_Voltage, 7, 5, AD_Voltage_Str);
(5V/1023=0.00488)
// convert to a string
// convert to a string
Serial.print("Raw A-D Value: ");
Serial.print(AD_Reading_Str); // display the RAW A-D Value
Serial.print("
");
Serial.print("A-D Voltage: ");
Serial.print(AD_Voltage_Str); // display the analog input voltage
Serial.print(" Volts \n");
delay(2000);
}
Community College of Allegheny County
Unit 7
Page #12
PRACTICE PROBLEMS:
1. You are working with a 0 to +10volt, 14-bit ADC.
a. What is the smallest voltage that it will be able to
measure?
b. What will be the RAW A-D output value when a 15mV signal
is applied to the input?
2. Refer to the Linear Technology LTC1604 ADC Converter datasheet
that is on the course website and answer the following
questions:
a. How many bits is this converter?
b. What is its’ input voltage range?
c. How many samples per second can it accept?
3. We have an RPM sensor that must be connected to the Arduino
10-bit ADC. The RPM sensor has a range of 0 to 8K RPM via a
voltage range of 0 to +5volts.
a. What is the expected input voltage to the ADC at 3K RPM?
b. What is the RPM resolution for this application?