;pro PICAXE 08M symbol servozavora = 1 ;Výstup na servo závory ;symbol tlacitko = input1 ;tlačítkové ovládání (nakonec není potřeba) symbol LED = 2 ;PWMOUT pracuje na Pin2 symbol pred = Input3 ;infračidlo na vjezdu symbol za = Input4 ;infračidlo na dvoře symbol doraz_o=10800 ;konstanta pro otevřenou polohu symbol doraz_z=19000 ;konstanta pro zavřenou polohu symbol rychlost_n= 120 ;parametr rychlosti pohybu brany - otvírání symbol rychlost_d= 37 ;parametr rychlosti pohybu brany- zavírání symbol doba=100 ;parametr čekání při otevřené bráně setfreq m4 ;frekvence 4Mhz pause 2000 ;na začátku je dobré počkat 2s pro uklidnění let w0=doraz_z ;nastavení konstant let w1=doraz_z let w2=doraz_z/100 high LED ;rozsvítíme obě LED do ;Hlavní smyčka programu ;Testování čidel na přítomnost auta ;pwmout 2, 25, 1 ;Výstup 38kHz s činitelem plnění 1% - MINIMÁLNÍ HODNOTA ČINITELE PLNĚNÍ PRO ÚČELY TESTOVÁNÍ pwmout 2, 25, 53 ;Výstup 38kHz s činitelem plnění 50% pause 1 ;Počkáme 1 ms (s oscilátorem 4MHz) if pred=1 or za=1 or tlacitko=1 then let w0= doraz_o let w3=doba endif ;Když něco stojí před závorou zadáme otevřenou polohu a nastavíme plný čas do zavření ;if pred=0 and za=0 then let w0= doraz_z endif ;jinak zavři (POUZE PRO ÚČELY TESTOVÁNÍ - RYCHLEJŠÍ ODEZVA) let w3=w3-1 ;odečteme jeden čas if w3=0 then let w0=doraz_z endif ;pokud čas vypršel, zadáme zavřenou polohu pwmout 2, OFF ;Vypneme generování PWM signálu 38kHz pulsout servozavora,w2 ;průžné pulzy pro servo pause 15 ;Počkáme 15 ms ;Řízení závory if w1>w0 then let w1=w1-rychlost_n min doraz_o endif ;pokud je závora výš než je požadováno, tak se od polohy kousek odečte if w1