MEMS cvičenie 2
Zo stránky SensorWiki
- Návod na cvičenia:
 
- Príklad na pripojenie analógového senzora: http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob007
 - Riadiaca doska Acrob http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob
 - Arduino homepage https://www.arduino.cc/
 
#define SerialSpeed 9600   //typical values are 9600 or 115200
#define SampFrequency 10   //sampling frequency in Hz (cycles per second)
#define positionSensor 5        //define your pin here
 
int mDelay;
int adcValue;
float outputValue;
void setup()
{
 Serial.begin(SerialSpeed);
 mDelay = 1000/SampFrequency; //calculate delay for proper sampling rate
}
 
void loop()
{
 adcValue = analogRead(positionSensor);
 /*  =============================================== */
 outputValue = adcValue;   // replace this line with your code 
 /*  =============================================== */
 Serial.print( outputValue ); //reads the analog port and prints value over serial
 Serial.print('\n');
 delay(mDelay); //delay in milliseconds
}
1. Look-up table
<source lang="cpp">
#include <avr/pgmspace.h>
const PROGMEM int table[] = {11,12,15,...};
<source lang="cpp">
Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM
2. Po častiach lineárna náhrada
<source lang="cpp">
if (adcValue > x1) && (adcValue <= x2) y = k2 & adcValue + q2;
return(y)
<source lang="cpp">
3. Aproximácia funkcie
- https://www.gnu.org/software/octave/doc/interpreter/Polynomial-Interpolation.html
 - http://octave.sourceforge.net/optim/function/leasqr.html
 - http://octave.sourceforge.net/optim/function/expfit.html
 - https://www.gnu.org/software/gsl/manual/html_node/Example-programs-for-Nonlinear-Least_002dSquares-Fitting.html
 - https://www.gnu.org/software/octave/doc/interpreter/One_002ddimensional-Interpolation.html#One_002ddimensional-Interpolation
 
Odovzdať:
- Chyby podľa EN 60 770
- Nepresnosť
 - Meraná chyba
 - Nelinearita
 - Hysteréza
 - Neopakovateľnosť
 
 - Graf 1: prevodová charakteristika
 - Graf 2: chybové krivky (viď obr.)
 - Program pre mikroprocesor