Operácie

Projekt: Inkrementálny snímač otáčok

Z SensorWiki

Verzia z 09:23, 18. december 2012, ktorú vytvoril StudentDVPS (diskusia | príspevky)

Zadanie


  1. Vytvorte program, ktorý bude schopný regulovať otáčky motora pomocou PWM modulácie signálu
  2. Pomocou inkrementálneho snímača merajte otáčky motora, zobrazujte ich na LCD displej

Riešenie


Reguláciu otáčok motora sme zabezpečili pomocou PWM modulácie, pričom sme menili hodnotu striedy. Zabezpečili sme tak zmenu strednej hodnoty napätia privádzaného na motor.

Súbor-PWM duty cycle with label.gif

PWM moduláciu sme realizovali pomocou časovača. Vybrali sme si časovač Timer2, ktorý dokázal pracovať v 8-bitovom režime. Pri frekvencii 16 MHz sme tým pádom vytvorili periódu opakovania PWM 61 Hz. Keď by sme zvolili vyššiu periódu opakovania, motor mal vplyvom induktancie pri riadení silne nelineárnu prevodovú charakteristiku.

Hodnotu striedy sme menili pomocou tlačítok integrovaných na LCD displeji. Veľkosť zmeny kroku sme zvolili: malý ±1% a veľký ±10%.

Pomocou inkrementálneho snímača otáčok sme merali hodnotu otáčok motora za sekundu. Prepočet sme realizovali pomocou časovača Timer1. Na základe zmeny hodnoty v Input Caprute registri sme generovali prerušenie, ktoré následne vypočítalo aktuálnu hodnotu otáčok motora. Pomocou príslušných funkcií v knižnici lcd.c sme túho hodnotu vzpísali na LCD displej. Pri pretečení počítadla časovača sme generovali prerušenie, ktoré detekovalo kedy motor stojí. Na LCD displej sme vtedy vypísali reťazec: stop.

Motor sme zapojili podľa schémy priloženej k zadaniu. Schému zapojenia motora a halovho inkrementálneho snímača nájdete tu: [1]

Po úspešnej realizácii projektu sme namerali prevodovú charakteristiku motora v závislosti od zmeny striedy. Meranie sme realizovali pri akcelerácii aj decelerácii motora. Krok striedy sme menili po 5%. Charakteristika je zobrazená na nasledujúcom obrázku.

Prevovoda charakteristika.png