MEMS cvičenie 2: Rozdiel medzi revíziami
Z SensorWiki
(Vytvorená stránka „1. Look-up table #include <avr/pgmspace.h> const PROGMEM int table[] = {11,12,15,...}; Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM 2. Po častiach li...“) |
|||
Riadok 1: | Riadok 1: | ||
+ | * 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/ | ||
+ | |||
+ | <source lang="cpp"> | ||
+ | #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('\r'); | ||
+ | delay(mDelay); //delay in milliseconds | ||
+ | |||
+ | } | ||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
1. Look-up table | 1. Look-up table | ||
Verzia zo dňa a času 14:08, 13. február 2017
- 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('\r');
delay(mDelay); //delay in milliseconds
}
1. Look-up table
#include <avr/pgmspace.h>
const PROGMEM int table[] = {11,12,15,...};
Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM
2. Po častiach lineárna náhrada
if (adcValue > x1) && (adcValue <= x2) y = k2 & adcValue + q2;
return(y)
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