<< Chapter < Page Chapter >> Page >

Calibration

Like anything in the real world, your sensors and devices won't necessarily work perfectly all the time. Many analog semiconductor devices are light, temperature, and pressure sensitive, so your actual readings can vary depending on outside conditions. Also, while sensors are usually manufactured to within pretty tight tolerances, every sensor has some finite error that you will need to account for to get maximum performance.

Some kind of calibration routine can help alleviate many of these concerns. By calibrating your sensors against a trusted source, you can correct a lot of the skew caused by outside conditions. Calibration will also eliminate any steady state error caused by the device itself.

A calibration routine collects a set of known data points and scales the input signal to fit the calibration data. Since we are calibrating a fairly linear device, we only need two data points to determine its operating curve. To get the most out of the calibration, you should use two data points that are as far from each other as possible. In the case of our light sensor, that will be darkness, and a reference value that is very bright . You can either download a free smartphone LUX meter to measure a reference source to use to calibrate your board, or use an approximation from the computer monitors in the lab. The monitors are about 620 lux when showing white at full brightness with the measurement device held within a few inches of the monitor.

Calibration routine pseudocode (not in c syntax)

flag=0; interrupt function: calibrate()returns: lowMeasured, highMeasured {if flag=0: set low and set flag=1if flag=1: set highreturn }

Interrupts in c

Code Composer Studio has a special way of handling interrupts in C. It uses "compiler directives" (special instructions to the compiler, assembler, and linker) to specify which functions should go in the interrupt vector table. ISRs in C are written like any other function, except that they can take and return no values. This fits with the convention that ISRs don't interfere with or depend on the code around them.

Formatting an interrupt in code composer c

#pragma vector=PORT3_VECTOR //compiler directive saying that this function should correspond with the port3 interrupt vector__interrupt void interruptHandle() {//your ISR CODE }void main() {... all setup __enable_interrupt();//Enables general maskable interrupts ... the rest of your program}

Other concerns

Even though interrupts should work in isolation, you often need to get or modify data inside them. This can be done using volatile global variables. A global variable simply means a variable that any function in your code can see and modify. Using global variables is generally discouraged (they can be easily abused and lead to problems if you repeat common variable names), but in this case they allow you to interface with your ISR. Volatile is a directive that tells the processor to never cache the variable's value. When dealing with ISRs, cached variables could lead to problems if the ISR updates the cached data while another function is using it. Be careful using the volatile keyword excessively though-- the lack of caching slows down performance.

Full range light meter assignment details

Using Code Composer Studio 5, write a C language program to drive a simple 3 digit lux meter. Use the ADC to read the voltage and display back the actual lux value. Write a calibration routine for your lux meter and an output routine that will allow you to display each of the output digits.

    Your program should include:

  • A setup section to setup the GPIO, configure the ADC, and enable interrupts
  • An ISR that runs the calibration routine and keeps track of what has been calibrated so far (so it will only run once)
  • A main loop that continuously samples, filters, and scales the ADC input to the output range as determined by your calibration.

Questions & Answers

A golfer on a fairway is 70 m away from the green, which sits below the level of the fairway by 20 m. If the golfer hits the ball at an angle of 40° with an initial speed of 20 m/s, how close to the green does she come?
Aislinn Reply
cm
tijani
what is titration
John Reply
what is physics
Siyaka Reply
A mouse of mass 200 g falls 100 m down a vertical mine shaft and lands at the bottom with a speed of 8.0 m/s. During its fall, how much work is done on the mouse by air resistance
Jude Reply
Can you compute that for me. Ty
Jude
what is the dimension formula of energy?
David Reply
what is viscosity?
David
what is inorganic
emma Reply
what is chemistry
Youesf Reply
what is inorganic
emma
Chemistry is a branch of science that deals with the study of matter,it composition,it structure and the changes it undergoes
Adjei
please, I'm a physics student and I need help in physics
Adjanou
chemistry could also be understood like the sexual attraction/repulsion of the male and female elements. the reaction varies depending on the energy differences of each given gender. + masculine -female.
Pedro
A ball is thrown straight up.it passes a 2.0m high window 7.50 m off the ground on it path up and takes 1.30 s to go past the window.what was the ball initial velocity
Krampah Reply
2. A sled plus passenger with total mass 50 kg is pulled 20 m across the snow (0.20) at constant velocity by a force directed 25° above the horizontal. Calculate (a) the work of the applied force, (b) the work of friction, and (c) the total work.
Sahid Reply
you have been hired as an espert witness in a court case involving an automobile accident. the accident involved car A of mass 1500kg which crashed into stationary car B of mass 1100kg. the driver of car A applied his brakes 15 m before he skidded and crashed into car B. after the collision, car A s
Samuel Reply
can someone explain to me, an ignorant high school student, why the trend of the graph doesn't follow the fact that the higher frequency a sound wave is, the more power it is, hence, making me think the phons output would follow this general trend?
Joseph Reply
Nevermind i just realied that the graph is the phons output for a person with normal hearing and not just the phons output of the sound waves power, I should read the entire thing next time
Joseph
Follow up question, does anyone know where I can find a graph that accuretly depicts the actual relative "power" output of sound over its frequency instead of just humans hearing
Joseph
"Generation of electrical energy from sound energy | IEEE Conference Publication | IEEE Xplore" ***ieeexplore.ieee.org/document/7150687?reload=true
Ryan
what's motion
Maurice Reply
what are the types of wave
Maurice
answer
Magreth
progressive wave
Magreth
hello friend how are you
Muhammad Reply
fine, how about you?
Mohammed
hi
Mujahid
A string is 3.00 m long with a mass of 5.00 g. The string is held taut with a tension of 500.00 N applied to the string. A pulse is sent down the string. How long does it take the pulse to travel the 3.00 m of the string?
yasuo Reply
Who can show me the full solution in this problem?
Reofrir Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Elec 220 lab course (escape). OpenStax CNX. Apr 07, 2013 Download for free at http://cnx.org/content/col11513/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Elec 220 lab course (escape)' conversation and receive update notifications?

Ask