Operácie

MEMS cvičenie 2: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Balogh (diskusia | príspevky)
Riadok 36: Riadok 36:


<source lang="cpp">
<source lang="cpp">
 
#define mySensor 0           // 0: potenciometer
#define positionSensor 0       // define your pin here 0
                              // 3: senzor sily
                              // 5: senzor ohybu


int adcValue;
int adcValue;
Riadok 43: Riadok 44:


void setup()
void setup()
{
{                             // monitor sa otvara dole vpravo
  Serial.begin(9600);          // typical values are 9600 or 115200
  Serial.begin(9600);          // typicke rychlosti su 9600 alebo 115200
}
}
   
   
void loop()
void loop()
{
{
adcValue = analogRead(positionSensor); // read ADC value
  adcValue = analogRead(mySensor); // read ADC value
 
 
/*  =======  replace this section with your code ===== */
  outputValue = adcValue;
 
 
outputValue = adcValue;      
  Serial.println(adcValue);       // prints value over serial
 
/*  ================================================== */
 
Serial.println( outputValue ); // prints value over serial


  delay(100);                     // delay in milliseconds
  delay(100);                       // delay in milliseconds


}
}

Verzia z 11:12, 18. február 2022


Na tomto cvičení je cieľom pripojiť odporový senzor k Arduinu a zobraziť jeho zlinearizovanú hodnotu na nejakom miestnom displeji (LED, LCD a pod.) prípadne ju odoslať po sériovej linke do PC (v simulátore TinkerCAD).


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


Na pridanie do TinkerCAD triedy (classroom) použite tento link. Ak od vás program pýta vstupný kód, je to B5ZT5MYJJNZP


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


#define mySensor 0            // 0: potenciometer
                              // 3: senzor sily
                              // 5: senzor ohybu

int adcValue;
float outputValue;

void setup()
{                              // monitor sa otvara dole vpravo 
 Serial.begin(9600);           // typicke rychlosti su 9600 alebo 115200
}
 
void loop()
{
  adcValue = analogRead(mySensor); // read ADC value
  
  outputValue = adcValue;
  
  Serial.println(adcValue);        // 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. Z tejto časti vám nevyplýva žiadna úloha, len si pozrite príklady aby ste ich vedeli prípadne implementovať na svojom vlastnom reálnom Arduine s nejakým displejom.


Sedemsegmentový zobrazovač


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


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í...