Operácie

MEMS cvičenie 2: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
Bez shrnutí editace
Riadok 40: Riadok 40:




1. Look-up table


== 1. Look-up table ==
<source lang="cpp">
  #include <avr/pgmspace.h>
  #include <avr/pgmspace.h>


  const PROGMEM int table[] = {11,12,15,...};
  const PROGMEM int table[] = {11,12,15,...};
<source lang="cpp">


Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM
Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM


2. Po častiach lineárna náhrada


== 2. Po častiach lineárna náhrada ==
<source lang="cpp">
  if (adcValue > x1) && (adcValue <= x2)
  if (adcValue > x1) && (adcValue <= x2)
   y = k2 & adcValue + q2;
   y = k2 & adcValue + q2;


  return(y)
  return(y)
<source lang="cpp">
== 3. Aproximácia funkcie ==


3. Aproximácia funkcie


* http://terpconnect.umd.edu/~toh/spectrum/CurveFitting.html
* http://terpconnect.umd.edu/~toh/spectrum/CurveFitting.html

Verzia z 10:42, 23. február 2017

  • Návod na cvičenia:



#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


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


Návrat na zoznam cvičení...