This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:sensor:accelerometer [2014/09/29 11:31] – 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: | ||
| + | [AVR] [[et: | ||
| + | [LIB] [[et: | ||
| ===== Teooria ===== | ===== Teooria ===== | ||
| - | [{{ : | + | [{{ : |
| - | Kiirendusandurit | + | Kiirendusandurit |
| - | Elektroonikas kasutatakse kiirenduse mõõtmiseks tihti MEMS (// | + | Tüüpiline kiirendusandur koosneb mikrofreesitud mahtuvuslikust andurelemendist |
| - | [{{ : | + | ===== Praktika ===== |
| - | Andur koosneb mikrofreesitud mahtuvuslikust andurelemendist (g-rakk) ja mõõte ning töötluselektroonikast. Mõõteelement koos elektroonikaga | + | Kodulabori lisakomplektiga on kaasas lihtne 3-teljeline MMA7361L kiibil põhinev kiirendusandur. Kiirendusandur võimaldab valida kahe erineva mõõtepiirkonna vahel, milleks |
| - | Andurisse sisse ehitatud elektroonika tegeleb g-rakkude mõõtmisega ning analüüsimisega. Elementidest tulev informatsioon võimendatakse, | + | [{{ : |
| - | ===== Praktika ===== | + | ^ Tähis plaadil ^ Signaali tüüp ^ Kirjeldus ^ |
| + | | 0GD | Digitaalväljund | 0G tuvastamise \\ signaal | | ||
| + | | X | Analoogväljund | X-telje väljundsignaal | | ||
| + | | Y | Analoogväljund | Y-telje väljundsignaal | | ||
| + | | Z | Analoogväljund | Z-telje väljundsignaal | | ||
| + | | G | Toide | Maa | | ||
| + | | + | Toide | Toide 3.0-3.6 V | | ||
| + | | G | Toide | Maa | | ||
| + | | SLEEP | Digitaalsisend | Puhkerežiim, | ||
| + | | GS| Digitaalsisend | Režiimi valik | | ||
| + | | ST| Digitaalsisend | Enesetesti funktsioon | | ||
| - | MMA7361L 3-teljelise kiirendusanduri | + | Kiirendusanduri |
| <code c> | <code c> | ||
| - | // | + | // Kodulabori kiirendusanduri näidisprogramm |
| - | // Kiirendus anduri testkood | + | // Loetakse kiirendusanduri kolme telje väärtused ja kuvatakse need ekraanil |
| - | // Kiirendusanduri kanalid on ühendatud ADC1-3 portidesse | + | // X ja Y telje näidud |
| - | // | + | |
| #include < | #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 33: | Line 45: | ||
| } | } | ||
| - | // | ||
| // Põhiprogramm | // Põhiprogramm | ||
| - | // | ||
| int main(void) | int main(void) | ||
| { | { | ||
| - | //Käivitame | + | // LCD ekraani algseadistamine |
| lcd_gfx_init(); | lcd_gfx_init(); | ||
| - | lcd_gfx_write_string(" | + | lcd_gfx_write_string(" |
| + | |||
| + | // ADC muunduri algseadistamine | ||
| + | adc_init(ADC_REF_AVCC, | ||
| - | adc_init(ADC_REF_AREF, | ||
| // Lõputu tsükkel | // Lõputu tsükkel | ||
| - | while (true) | + | while (1) |
| { | { | ||
| char buffer[60]; | char buffer[60]; | ||
| + | |||
| + | // x, y, z telgede analoogväärtuse lugemine | ||
| uint16_t x = adc_get_value(1); | uint16_t x = adc_get_value(1); | ||
| uint16_t y = adc_get_value(2); | uint16_t y = adc_get_value(2); | ||
| 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, | ||
| + | // Lugemite teisendamine tekstiks ja LCD ekraanile kuvamine | ||
| sprintf(buffer," | sprintf(buffer," | ||
| lcd_gfx_goto_char_xy(0, | lcd_gfx_goto_char_xy(0, | ||
| lcd_gfx_write_string(buffer); | lcd_gfx_write_string(buffer); | ||
| + | // Punktide joonistamine | ||
| lcd_gfx_drawPixel(x_map, | lcd_gfx_drawPixel(x_map, | ||
| - | _delay_ms(10); | + | sw_delay_ms(10); |
| } | } | ||
| } | } | ||
| </ | </ | ||