This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:sensor:potentiometer [2014/10/09 08:27] – raivo.sell | et:examples:sensor:potentiometer [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Potentsiomeeter ====== | ====== Potentsiomeeter ====== | ||
| - | //Vajalikud teadmised: [HW] [[et: | + | //Vajalikud teadmised: |
| + | [HW] [[et: | ||
| + | [ELC] [[et: | ||
| + | [AVR] [[et: | ||
| + | [LIB] [[et: | ||
| ===== Teooria ===== | ===== Teooria ===== | ||
| Line 13: | Line 17: | ||
| ===== Praktika ===== | ===== Praktika ===== | ||
| - | [{{ : | + | [{{ : |
| - | Kodulabori moodulil asub pööratav 10 kΩ potentsiomeeter. Potentsiomeeter on ühendatud maa ja mikrokontrolleri toite potentsiaalide vahele ning liugur ühendub mikrokontrolleri analoog-digitaalmuunduriga (inglise keeles //analog digital converter | + | Kodulabori moodulil asub pööratav 10 kΩ potentsiomeeter. Potentsiomeeter on ühendatud maa ja mikrokontrolleri toite potentsiaalide vahele ning liugur ühendub mikrokontrolleri analoog-digitaalmuunduriga (inglise keeles //analog digital converter//, lühend ADC). Selliselt ühendatuna saab potentsiomeetri väljundpinget reguleerida vahemikus 0 V kuni toitepinge. Kui ka AVR-i analoog-digitaalmuunduri võrdluspinge võtta AVCC viigult, saab potentsiomeetri väljundpinge digitaalse väärtuse kogu selle reguleerimispiirkonna ulatuses. Kodulabor III puhul on maksimaalseks pingeks AVCC viigul 2,7 V kuid sisenditesse võib lasta kuni 3,3 V pinget. AVR ADC kasutamiseks on Kodulabori teegis kirjutatud järgmised funktsioonid: |
| * void adc_init(reference, | * void adc_init(reference, | ||
| Line 23: | Line 27: | ||
| Funktsioon // | Funktsioon // | ||
| - | Järgnevad teegifunktsioonide näited on toodu ATmega2561 ADC muunduri kohta. | + | Järgnevad teegifunktsioonide näited on toodud |
| <code c> | <code c> | ||
| Line 49: | Line 53: | ||
| { | { | ||
| asm volatile (" | asm volatile (" | ||
| - | } | + | } |
| // Tulemuse tagastamine | // Tulemuse tagastamine | ||
| Line 67: | Line 71: | ||
| // Robootika Kodulabor II | // Robootika Kodulabor II | ||
| - | // #define ADC_CHANNEL 3 | + | //#define ADC_CHANNEL 3 |
| // Robootika Kodulabor III | // Robootika Kodulabor III | ||
| Line 77: | Line 81: | ||
| int value; | int value; | ||
| - | // 7-segmendilise | + | // 7-segmendilise |
| segment_display_init(); | segment_display_init(); | ||
| // ADC muunduri seadistamine | // ADC muunduri seadistamine | ||
| - | adc_init(ADC_REF_AVCC, | + | adc_init(ADC_REF_AVCC, |
| // Lõputu tsükkel | // Lõputu tsükkel | ||
| - | while (true) | + | while (1) |
| { | { | ||
| // Kanali 4-kordselt ümardatud väärtuse lugemine | // Kanali 4-kordselt ümardatud väärtuse lugemine | ||
| Line 90: | Line 94: | ||
| // Näidu sajandike näitamine | // Näidu sajandike näitamine | ||
| - | // | + | // Kodulabor II |
| // | // | ||
| - | // | + | // Kodulabor III |
| segment_display_write(value * 10 / 2048); | segment_display_write(value * 10 / 2048); | ||
| } | } | ||
| } | } | ||
| </ | </ | ||