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 07:59] – 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 9: | Line 13: | ||
Potentsiomeeter on kolme kontaktiga muuttakisti, | Potentsiomeeter on kolme kontaktiga muuttakisti, | ||
- | |||
- | [{{ : | ||
Tüüpiline potentsiomeeter koosneb voolu juhtiva pinnaga takistist ja sellel liuglevast liikuvast kontaktist ehk liugurist. Mida lähemal on liugur takisti servale, seda väiksem on liuguri ja selle serva vaheline takistus ning vastupidi. Takisti rolli võib täita kas suure eritakistusega materjal või takistustraadist keritud mähis. Potentsiomeetreid on olemas nii lineaarse kui ka logaritmilise takistuse ja positsiooni suhtega. Suurem osa potentsiomeetritest on pööratavad (näide kõrvaloleval pildil), kuid eksisteerib ka liugtakisteid. Potentsiomeetrite eriliik on digitaalsed potentsiomeetrid, | Tüüpiline potentsiomeeter koosneb voolu juhtiva pinnaga takistist ja sellel liuglevast liikuvast kontaktist ehk liugurist. Mida lähemal on liugur takisti servale, seda väiksem on liuguri ja selle serva vaheline takistus ning vastupidi. Takisti rolli võib täita kas suure eritakistusega materjal või takistustraadist keritud mähis. Potentsiomeetreid on olemas nii lineaarse kui ka logaritmilise takistuse ja positsiooni suhtega. Suurem osa potentsiomeetritest on pööratavad (näide kõrvaloleval pildil), kuid eksisteerib ka liugtakisteid. Potentsiomeetrite eriliik on digitaalsed potentsiomeetrid, | ||
===== 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 24: | Line 26: | ||
Funktsioon // | Funktsioon // | ||
+ | |||
+ | Järgnevad teegifunktsioonide näited on toodud ATmega2561 ADC muunduri kohta. | ||
<code c> | <code c> | ||
- | // ATmega2561 teegifunktsioonid | ||
// ADC käivitamine | // ADC käivitamine | ||
void adc_init(adc_reference reference, adc_prescale prescale) | void adc_init(adc_reference reference, adc_prescale prescale) | ||
Line 50: | Line 53: | ||
{ | { | ||
asm volatile (" | asm volatile (" | ||
- | } | + | } |
// Tulemuse tagastamine | // Tulemuse tagastamine | ||
Line 68: | Line 71: | ||
// Robootika Kodulabor II | // Robootika Kodulabor II | ||
- | // #define ADC_CHANNEL 3 | + | //#define ADC_CHANNEL 3 |
// Robootika Kodulabor III | // Robootika Kodulabor III | ||
Line 78: | 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 91: | 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); | ||
} | } | ||
} | } | ||
</ | </ |