;---------------------------------------------------------------------------- ; PÍSK spínač s potvrzením (1min). Měření kmitočtu a střídy H/L. Piezo-signalizace. ; Opakování-Restart času 1min při piezo-signalizaci na konci cyklu. ; 1) Rožnuti/zhasnutí LED (ON-OFF) při písk ; 2) Časově omezené svícení LED, resp. sepnutí tyristoru.(TIME 60=1min). ;---------------------------------------------------------------------------- #PICAXE 08M2 ;Po startu vždy C0=OUT, C3=IN (ostatni IN) ;input C.4 ;ON fotočidlo low C.4 ;OFF fotočidlo wait 3 ;pauza ;high 1 wait 1 low 1 ;indikace žárovkou (indikace připojení 230V) gosub PIP2 pause 500 gosub PIP2 ;indikace pípnutím (piezo) DACSETUP %10100000 ;inic. převodníku DAC (při DEBUG vypnout) DACLEVEL 12 ;nstavení Ub/T2(1bit=0,094V při UN=3V, rozsah 0-31) low 1 ;(tyristor) ;---------------------------------------------------------------------------- START: IF TIME>=60 AND pin1=1 then let pin1=0 w2=0 endif ;ZHASNUTÍ po čase Time (sec) IF TIME>=50 AND b4=2 then goto konec ;indikace piezo-píp před zhasnutím Test: FOR b10=1 TO 10 ;POČET opakování VZORKŮ (10x4ms+10ms=0,05sec) COUNT C.3,4,W1 ;VZOREK 4ms, počet pulzů do w1 IF w1<4 then START ;zpět je-li ve vzorku MÉNĚ jak 4 pulzů (1kHz) IF w1>9 then START ;zpět je-li ve vzorku VÍCE jak 9 pulzů (2,25kHz) PULSIN C.3,1,w3 ;načtení délky pulzu (1=10us, 100=1ms/1kHz) IF w3>100 OR w3<40 then START ;zpět bude-li puls DELŠÍ jak 1ms nebo KRATŠÍ jak 0,4ms NEXT inc b4 ;+1 (příznak) IF b4=1 then let pin1=1 gosub PIP1 wait 1 let TIME=57 goto START endif ;písk 1 rožne, nastaví 3sec IF b4=2 then let TIME=0 gosub PIP2 wait 2 goto START endif ;písk 2, potvrzení=reset Time IF b4=3 AND TIME>50 then let b4=2 b5=0 TIME=0 gosub PIP3 wait 2 goto START endif ;restart IF b4=3 then let pin1=0 gosub PIP2 wait 2 TIME=0 w2=0 goto START endif ;písk 3 zhasne konec: IF time=50 and b5=0 then let b5=1 gosub PIP1 endif IF time=52 and b5=1 then let b5=2 gosub PIP1 endif IF time=54 and b5=2 then let b5=3 gosub PIP1 endif IF time=56 and b5=3 then let b5=4 gosub PIP1 endif IF time=58 and b5=4 then let b5=0 gosub PIP1 endif goto Test ;kontrola není-li písk ;---------------------------------------------------------------------------- PIP1: sound 2,(110,5) ;1x piezo-píp return PIP2: sound 2,(110,5,0,5,110,5) ;2x piezo-píp return PIP3: sound 2,(110,5,0,5,110,5,0,5,110,5) ;3x piezo-píp return END ;---------------------------------------------------------------------------- #rem FUNKCE programu: První písk rožne Ž1, pruhým písknutím se "povrdí" čas (1min) - jinak Ž po 3sec zhasne. Rožnutá Ž1 se po nastaveném čase, nebo písknutím, vypne. 10sec před zhasnutím Ž1 piezo pípá 1x2sec - v této době lze písknutím čas svícení "restartovat". Lze nastavit/změnit: 1) kmitočet písk (pásmová propust) 2) měření doby H/L (střída pulzů) 3) čas svícení Ž1 (omezení při nechtěném sepnutí zvukem z RP, TV, vrznutí pantů apod) 4) pullup k RF1 (zde je ale RF vyřazen) 5) zrušit "potvrzení", změnit čas. #endrem