Operácie

MEMS cvičenie 2: Rozdiel medzi revíziami

Z SensorWiki

Riadok 1: Riadok 1:
  
 
== Potenciometrické snímače ==
 
== Potenciometrické snímače ==
 +
 +
 +
1. Zmerajte prevodovú charakteristiku odporového senzora polohy pomocou ohmmetra.
 +
 +
2. Senzor pripojte k A/D prevodníku mikropočítača a pomocou programu nižšie zmerajte
 +
prevodovú charakteristiku celého meracieho člena.
 +
 +
3. Prevodovú charakteristiku zlinearizujte a doložte úspešnosť porovnaním metrologických parametrov.
 +
  
  
Riadok 11: Riadok 20:
  
 
<source lang="cpp">
 
<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
#define positionSensor 5       //define your pin here
+
 
 
int mDelay;
 
 
int adcValue;
 
int adcValue;
 
float outputValue;
 
float outputValue;
Riadok 21: Riadok 28:
 
void setup()
 
void setup()
 
{
 
{
  Serial.begin(SerialSpeed);
+
  Serial.begin(9600);           // typical values are 9600 or 115200
  mDelay = 1000/SampFrequency; //calculate delay for proper sampling rate
+
  mDelay = 1000/SampFrequency; // calculate delay for proper sampling rate
 
}
 
}
 
   
 
   
 
void loop()
 
void loop()
 
{
 
{
  adcValue = analogRead(positionSensor);
+
  adcValue = analogRead(positionSensor); // read ADC value
  /*  =============================================== */
+
 
  outputValue = adcValue;   // replace this line with your code
+
  /*  ======= replace this section with your code ===== */
  /*  =============================================== */
+
 
  Serial.print( outputValue ); //reads the analog port and prints value over serial
+
  outputValue = adcValue;      
Serial.print('\n');
+
 
  delay(mDelay); //delay in milliseconds
+
  /*  ================================================== */
 +
 
 +
  Serial.println( outputValue ); // prints value over serial
 +
 
 +
  delay(100);                     // delay in milliseconds
  
 
}
 
}
Riadok 40: Riadok 51:
  
  
 +
 +
== Linearizácia prevodovej charakteristiky ==
  
  
  
== 1. Look-up table ==
+
=== 1. Look-up table ===
  
  
Riadok 55: Riadok 68:
  
  
== 2. Po častiach lineárna náhrada ==
+
=== 2. Po častiach lineárna náhrada ===
  
 
<source lang="cpp">
 
<source lang="cpp">
Riadok 66: Riadok 79:
  
  
== 3. Aproximácia funkcie ==
+
=== 3. Aproximácia funkcie ===
  
  
Riadok 79: Riadok 92:
  
  
'''Odovzdať:'''  
+
== Úlohy ==
 +
 
 +
'''Úlohy, ktoré treba odovzdať:'''  
  
 
* Chyby podľa EN 60 770
 
* Chyby podľa EN 60 770
Riadok 91: Riadok 106:
 
* Program pre mikroprocesor
 
* Program pre mikroprocesor
  
[[Súbor:Example2-1.png|500px]]
+
[[Súbor:Example1-1.png|500px]]
 +
 
 +
Hodnotenie: 3 body
 +
 
 +
Deadline: <FONT COlor="red">'''27. 2. 2018 '''</font>
  
  

Verzia zo dňa a času 16:26, 15. február 2018

Potenciometrické snímače

1. Zmerajte prevodovú charakteristiku odporového senzora polohy pomocou ohmmetra.

2. Senzor pripojte k A/D prevodníku mikropočítača a pomocou programu nižšie zmerajte prevodovú charakteristiku celého meracieho člena.

3. Prevodovú charakteristiku zlinearizujte a doložte úspešnosť porovnaním metrologických parametrov.


Schéma zapojenia


#define positionSensor 5       // define your pin here

int adcValue;
float outputValue;

void setup()
{
 Serial.begin(9600);           // typical values are 9600 or 115200
 mDelay = 1000/SampFrequency;  // calculate delay for proper sampling rate
}
 
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

}



Linearizácia prevodovej charakteristiky

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


Úlohy

Úlohy, ktoré treba 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

Example1-1.png

Hodnotenie: 3 body

Deadline: 27. 2. 2018


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