Operácie

MEMS cvičenie 2: Rozdiel medzi revíziami

Z SensorWiki

Riadok 72: Riadok 72:
 
* LCD zobrazovač. Klávesnica. <BR>[http://ap.urpi.fei.stuba.sk/mmp/prednaska02.pdf Obšírnejšie informácie o displejoch] (prednáška z predmetu MMP)
 
* LCD zobrazovač. Klávesnica. <BR>[http://ap.urpi.fei.stuba.sk/mmp/prednaska02.pdf Obšírnejšie informácie o displejoch] (prednáška z predmetu MMP)
  
 +
 +
<!--
  
 
=== LCD Modul ===
 
=== LCD Modul ===
Riadok 301: Riadok 303:
 
* Schema zapojenia Arduino https://www.arduino.cc/en/uploads/Main/Arduino-Pro-schematic.pdf
 
* Schema zapojenia Arduino https://www.arduino.cc/en/uploads/Main/Arduino-Pro-schematic.pdf
  
 +
 +
-->
 +
 +
 +
 +
== Linearizácia prevodovej charakteristiky ==
 +
 +
 +
 +
=== 1. Look-up table ===
 +
 +
 +
<source lang="cpp">
 +
#include <avr/pgmspace.h>
 +
 +
const PROGMEM int table[] = {11,12,15,...};
 +
 +
return( table[adcValue] );
 +
</source>
 +
 +
Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM
 +
 +
=== 2. Po častiach lineárna náhrada ===
 +
 +
<source lang="cpp">
 +
  /* segment 1 */
 +
if (adcValue > x0) && (adcValue <= x1)
 +
  y = k1 * adcValue + q1;
 +
 +
  /* segment 2 */
 +
if (adcValue > x1) && (adcValue <= x2)
 +
  y = k2 * adcValue + q2;
 +
 +
return(y)
 +
</source>
 +
 +
Dá sa použiť aj funkcia map v Arduine -  https://www.arduino.cc/reference/en/language/functions/math/map/
 +
 +
=== 3. Aproximácia funkcie ===
 +
 +
<source lang="cpp">
 +
  y = a2 * adcValue^2 + a1 * adcValue + a0;
 +
  return(y);
 +
</source>
 +
 +
 +
* http://terpconnect.umd.edu/~toh/spectrum/CurveFitting.html
 +
 +
* 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
  
  

Verzia zo dňa a času 12:30, 23. február 2021


Potenciometrické snímače

  1. Poskladajte si odporový senzor polohy so stupnicou (ak nemáte, použite senzor v TinkerCADe).
  2. Zmerajte prevodovú charakteristiku odporového senzora polohy pomocou ohmmetra (cvičenie 1).
  3. Senzor pripojte k A/D prevodníku mikropočítača a pomocou programu nižšie zmerajte prevodovú charakteristiku celého meracieho člena.
  4. Prevodovú charakteristiku zlinearizujte a doložte úspešnosť porovnaním metrologických parametrov.


Schéma zapojenia


#define positionSensor 0       // define your pin here

int adcValue;
float outputValue;

void setup()
{
 Serial.begin(9600);           // typical values are 9600 or 115200
}
 
void loop()
{
 adcValue = analogRead(positionSensor); // read ADC value

 /*  =======  replace this section with your code ===== */

 outputValue = adcValue;       

 /*  ================================================== */

 Serial.println( outputValue );  // prints value over serial

 delay(100);                     // delay in milliseconds

}


Pripojenie LCD a LED displeja a lokálne zobrazenie meranej veličiny

V tejto časti cvičenia zobrazíme meranú veličinu na miestnom LED alebo LCD displeji mikropočítača.




Programovateľný LCD displej



Linearizácia prevodovej charakteristiky

1. Look-up table

 #include <avr/pgmspace.h>

 const PROGMEM int table[] = {11,12,15,...};
 
 return( table[adcValue] );

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

2. Po častiach lineárna náhrada

  /* segment 1 */
 if (adcValue > x0) && (adcValue <= x1)
   y = k1 * adcValue + q1;

  /* segment 2 */
if (adcValue > x1) && (adcValue <= x2)
   y = k2 * adcValue + q2;

 return(y)

Dá sa použiť aj funkcia map v Arduine - https://www.arduino.cc/reference/en/language/functions/math/map/

3. Aproximácia funkcie

   y = a2 * adcValue^2 + a1 * adcValue + a0;
   return(y);




Úlohy

Úlohy, ktoré treba odovzdať:

  • Graf 1: prevodové charakteristiky
  • Chyby podľa EN 60 770
    • Nepresnosť
    • Meraná chyba
    • Nelinearita
    • Hysteréza
    • Neopakovateľnosť
  • Graf 2: chybové krivky (viď obr.)
  • Program pre mikroprocesor na linearizáciu

Example2-1.png

Hodnotenie: 5 bodOV

Deadline: 1. 3. 2021


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