This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:examples:sensor:accelerometer [2014/10/10 07:28] – raivo.sell | et:examples:sensor:accelerometer [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~PB~~ | ||
====== Kiirendusandur ====== | ====== Kiirendusandur ====== | ||
- | //Vajalikud teadmised: [HW] [[et: | + | //Vajalikud teadmised: |
+ | [HW] [[et: | ||
+ | [AVR] [[et: | ||
+ | [LIB] [[et: | ||
===== Teooria ===== | ===== Teooria ===== | ||
- | [{{ : | + | [{{ : |
Kiirendusandurit kasutatakse peamiselt kiiruste muutuste mõõtmiseks. Samuti saab kiirendusanduriga mõõta anduri nurka maapinna suhtes. Kiirendusandurid on konstrueeritud ja valmistatud mikroelektromehaanika tehnoloogial (inglise keeles // | Kiirendusandurit kasutatakse peamiselt kiiruste muutuste mõõtmiseks. Samuti saab kiirendusanduriga mõõta anduri nurka maapinna suhtes. Kiirendusandurid on konstrueeritud ja valmistatud mikroelektromehaanika tehnoloogial (inglise keeles // | ||
- | [{{ : | + | Tüüpiline kiirendusandur koosneb mikrofreesitud mahtuvuslikust andurelemendist (g-rakk) ja mõõte- ning andmetöötluselektroonikast. Mõõteelement koos elektroonikaga on suletud vee ja õhukindlalt anduri korpusesse. G-rakk on mikrokiipi söövitatud polüsilikooni kiht, mis koos kahe fikseeritud mahtuvusliku plaadiga moodustab kaks kondensaatorit. Kui andurile rakendada mingi kiirendus, siis g-raku keskmine kiht liigub vastavalt ühe või teise fikseeritud plaadi poole ning kondensaatorite mahtuvus muutub proportsionaalselt kiirendusele. Andurisse sisse ehitatud elektroonika tegeleb g-rakkude mõõtmisega ning analüüsimisega. Elementidest tulev informatsioon võimendatakse, |
- | Tüüpiline kiirendusandur koosneb mikrofreesitud mahtuvuslikust andurelemendist (g-rakk) ja mõõte- ning andmetöötluselektroonikast. Mõõteelement koos elektroonikaga on suletud vee ja õhukindlalt anduri korpusesse. G-rakk on mikrokiipi söövitatud polüsilikooni kiht, mis koos kahe fikseeritud mahtuvusliku plaadiga moodustab kaks kondensaatorit. Kui andurile rakendada mingi kiirendus, siis g-raku keskmine kiht liigub vastavalt ühe või teise fikseeritud plaadi poole ning kondensaatorite mahtuvus muutub proportsionaalselt kiirendusele. | + | |
- | + | ||
- | Andurisse sisse ehitatud elektroonika tegeleb g-rakkude mõõtmisega ning analüüsimisega. Elementidest tulev informatsioon võimendatakse, | + | |
===== Praktika ===== | ===== Praktika ===== | ||
- | Kodulabori lisakomplektiga on kaasas lihtne 3-teljeline kiirendusandur. Kiirendusandur võimaldab valida kahe erineva mõõtepiirkonna vahel, milleks on ±1.5g ja ±6g. Anduril on sisseehitatud temperatuuri kompensatsioon, | + | Kodulabori lisakomplektiga on kaasas lihtne 3-teljeline |
+ | |||
+ | [{{ : | ||
- | The sensor | + | ^ Tähis plaadil ^ Signaali tüüp ^ Kirjeldus ^ |
- | requires | + | | 0GD | Digitaalväljund | 0G tuvastamise \\ signaal | |
- | a very low amount of power and has a g | + | | X | Analoogväljund | X-telje väljundsignaal | |
- | - | + | | Y | Analoogväljund | Y-telje väljundsignaal | |
- | select input which switches the accelerometer | + | | Z | Analoogväljund | Z-telje väljundsignaal | |
- | between ±1.5g and ±6g measurement ranges. Other features include a sleep mode, signal | + | | G | Toide | Maa | |
- | conditioning, | + | | + | Toide | Toide 3.0-3.6 V | |
- | - | + | | G | Toide | Maa | |
- | pole low pass filter, temperature compensation, | + | | SLEEP | Digitaalsisend | Puhkerežiim, \\ madal olek: aktiivne | |
- | - | + | | GS| Digitaalsisend | Režiimi valik | |
- | detect which | + | | ST| Digitaalsisend | Enesetesti funktsioon | |
- | detects linear freefall. Zero | + | |
- | - | + | |
- | g offset and sensitivity are factory set and require no external | + | |
- | devices. | + | |
- | Kiirendusanduri lugemiseks on vaja kasutada kontrolleril kolme ADC sisendit (1 iga telje jaoks). Näitekood näitab kanalitest mõõdetud ADC väärtust ning joonistab kiirendusanduri lugemid ka punktidena LCD-le. | + | Kiirendusanduri lugemiseks on vaja kasutada kontrolleril kolme ADC sisendit (1 iga telje jaoks). Teiste anduri funktsioonide jaoks saab kasutada digitaalsignaale. Näitekood näitab kanalitest mõõdetud ADC väärtust ning joonistab kiirendusanduri lugemid ka punktidena LCD-le. |
<code c> | <code c> | ||
- | // Kiirendusanduri näiteprogramm | + | // Kodulabori kiirendusanduri näidisprogramm |
+ | // Loetakse kiirendusanduri kolme telje väärtused ja kuvatakse need ekraanil | ||
+ | // X ja Y telje näidud | ||
#include < | #include < | ||
#include < | #include < | ||
#include < | #include < | ||
- | // | + | // Väärtuste teisendusfunktsioon |
long map(long x, long in_min, long in_max, long out_min, long out_max) | long map(long x, long in_min, long in_max, long out_min, long out_max) | ||
{ | { | ||
Line 57: | Line 56: | ||
// Lõputu tsükkel | // Lõputu tsükkel | ||
- | while (true) | + | while (1) |
{ | { | ||
char buffer[60]; | char buffer[60]; | ||
Line 66: | Line 65: | ||
uint16_t z = adc_get_value(3); | uint16_t z = adc_get_value(3); | ||
- | // | + | // Kiirendusanduri telgede lugemite teisendamine ekraani |
+ | // mõõtkavasse, | ||
uint16_t x_map = map(x, | uint16_t x_map = map(x, | ||
uint16_t y_map = map(y, | uint16_t y_map = map(y, |