Trochu větší lineární servopohon (2)

Vrátíme se k tématu trochu většího servopohonu z minulého článku a jeho ovládání například mikrokontrolérem PICAXE, tentokrát ve verzi, která využívá dvě relé a dovoluje mít napájecí ohruh serva galvanicky oddělený od řídících obvodů.

IMGP1374b

Servopohon LACT12P-12V-20

Servopohon je stejný, k ovládání použijeme jeden modul AXEBoard08 a dva moduly s relé. Nejprve budeme polohu serva ovládat ručně potenciometrem.

Releový modul ná tři vstupní piny: zem, napájecí napětí +5V a řídící signál. Relé sepne, když je řídící signál ve stavu L, odpadne ve stavu H, vinutí relé je spínáno přes tranzistor. Spotřeba jednoho modulu v sepnutém stavu je 60 – 70 mA. Napájení modulu indikuje červená LED, sepnutí zelená LED. Relé obsahuje jeden přepínací paket kontaktů dimenzovaných na zatížení proudem 10 A. Zapojení vývodů je popsáno na spodní straně desky modulu.

IMGP1575b

Modul s relé

servo4

Propojení modulů pro ovládání potenciometrem

Program pro PICAXE 08M2 je následující:

rem maxiservo se dvema rele
rem c.0 a C.4 rele aktivni v L (!)
rem c.2 ADC ovladaci potenciometr
rem c.1 ADC zpetnovazebni potenciometr
#picaxe 08M2
#no_data
do                   ;smycka programu
  readadc c.2,b0     ;cteni ovladaciho potenciometru
  readadc c.1,b1     ;cteni polohy serva
  if b0>b1 then      ;pro jeden smer
    b2=b0-b1           ;zjisti odchylku
    if b2>1 then       ;kdyz je vetsi nez 1 (pasmo necitlivosti)
      high c.0            ;zapni motor v jednom smeru  
      low c.4
      else                ;kdyz ne
      high c.0,c.4        ;vypni motor  
      endif
    endif
  if b0<b1 then      ;pro druhy smer pohybu
    b2=b1-b0            ;zjisti odchylku
    if b2>1 then        ;kdyz je vetsi nez 1 (pasmo necitlivosti)
      low c.0              ;zapni motor v duhem smeru
      high c.4 
      else                 ;kdyz ne
      high c.0,c.4         ;vypni motor
      endif
    endif
    pause 50         ;prodleva aby rele nekmitala 
  loop               ;konec smycky

Bude-li napájení ovládání a motoru serva skutečně oddělené, bude servo fungovat správně. Můžeme pochopitelně obojí napájet i z jednoho zdroje, ale potom velmi záleží na tom, aby by l zdroj dostatečně tvrdý. I když motor serva odebírá při ustáleném pohybu jen asi 0,5 A naprázdno a nejvýš 2 A při zatížení, při rozběhu je to jinak a projde proudový pulz několikanásobně většího odběru. Je-li zdroj měkký, může klesnout napětí do té míry, že PICAXE vypadne a resetuje se, to se může cyklicky opakovat. V takovém případě se servo trhaně rozjede v jednom směru a relé kmitají.

IMGP1573b

Sestava modulů pro ovládání serva potenciometrem

Pokud napájíme servo (i řízení) třeba z kvalitního olověného akumulátoru, problémy nehrozí, stejně tak při použití tříčlánku Li-pol. Jestliže k napájení použijeme síťový zdroj, pak tento zdroj musíme dimenzovat ne na 2 A, ale nejméně na 10 A, případně můžeme jeho výstup posílit elektrolytickými kondenzátory s kapacitou v řádu desítek až stovek mF, což je lepší. Při vypnutí relé indukčnost vodičů a motoru vygeneruje přepěťový pulz, který bez kondenzátoru může síťový zdroj ohrozit a může i „projít“ k mikrokontroléru a způsobit jeho „zakousnutí“.


Druhé zapojení používá k řízení standardní signál pro modelářská serva. Zapojení je obdobné, program také, vyhodnocuje se šířka pulzu.

servo5

Propojení modulů pro ovládání servopulzy

rem maxiservo rizene servopulzy
rem c.0 a C.4 rele aktivni v L (!)
rem c.2 vstup servopulzu
rem c.1 ADC zpetnovazebni potenciometr
#picaxe 08M2
#no_data
do                                ;smycka programu
  pulsin c.2,1,b0                 ;cteni servopulzu
  if b0<100 then let b0=100 endif ;nekorektni pulzy
  if b0>200 then let b0=200 endif ;nekorektni pulzy
  b0=b0-90*2                      ;konverze na interval 10-210
  readadc c.1,b1                  ;cteni polohy serva
  if b0>b1 then                   ;pro jeden smer
    b2=b0-b1                      ;zjisti odchylku
    if b2>2 then                  ;kdyz je vetsi nez 2 (pasmo necitlivosti)
      high c.0                    ;zapni motor v jednom smeru
      low c.4
      else                        ;kdyz ne
      high c.0,c.4                ;vypni motor
      endif
    endif
  if b0<b1 then                   ;pro druhy smer pohybu
    b2=b1-b0                      ;zjisti odchylku
    if b2>2 then                  ;kdyz je vetsi nez 2 (pasmo necitlivosti)
      low c.0                     ;zapni motor v druhem smeru
      high c.4
      else                        ;kdyz ne
      high c.0,c.4                ;vypni motor
      endif
    endif
  pause 100                       ;prodleva aby rele tolik nekmitala
  loop                            ;konec smycky

Toto řízení je funkční, nicméně se zjednodušeným výpočtem na ukázku, nevyužívá celou mechanickou dráhu serva. Relé musí být kvalitní aby se jejich kontakty příliš neopalovaly a nezůstávaly „viset“.