Operácie

MEMS cvičenie 2: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Balogh (diskusia | príspevky)
Riadok 21: Riadok 21:
<source lang="cpp">
<source lang="cpp">


#define positionSensor 0      // define your pin here
#define positionSensor 0      // define your pin here 0


int adcValue;
int adcValue;
Riadok 49: Riadok 49:


<html>
<html>
<iframe width="725" height="453" src="https://www.tinkercad.com/embed/iO56bA1E68T?editbtn=1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<iframe width="725" height="453" src="https://www.tinkercad.com/embed/6Pg8q4b7Kst?editbtn=1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</html>
</html>


 
Ak sa vám nezobrazuje vložený simulátor správne, použite prosím, [https://www.tinkercad.com/things/6Pg8q4b7Kst-misa-basicdemo/editel?sharecode=skOOqybTv7dIz26TpdC7Eigv5BGxx1k0V5tL7xRWX7k tento link].
<!-- Note to self: generovane linky z TinkerCADu expiruju po 336 hodinach - 14 dni -->


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

Verzia z 13:04, 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 0

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

}

Ak sa vám nezobrazuje vložený simulátor správne, použite prosím, tento link.

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.


Sedemsegmentový zobrazovač




Ak sa vám príklad nezobrazí správne priamo tu, použite tento odkaz.

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

Hodnotenie: 5 bodOV

Deadline: 1. 3. 2021


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