What about power failure?
Ioannis
Geeze... a problem summarised in one short paragraph. The last one that landed on my desk was 27 pages deep...
So, you have a 1 Button Remote, to control a 2 Button application.
Press the Button momentarilly and the Gate goes UP. This means that for safety in an emergency it goes UP if you hit it.
If the Gate is already in motion (in any direction) when it receives a Button press, it STOPS.
Press the Button and HOLD it for at least 3 Seconds before releasing and the Gate goes DOWN.
If it's a Prison Gate, just reverse the priority...
30 seconds, done and dusted... and the next problem...
I have a question/problem.
Is there an effective way to deal with a person who doesn't know what they don't know?
Been driving me crazy for years.
-Steve
Melrso here is a program I did for a door controller sometime back
I spent about 15 mins. modifing *** it to do what I think you asking
(I left all the extras that I needed)
I have not tested the mod. only compiled. it's a lot of code to do so little
but you get what you pay for and this is free. after 3 years I'm still a newbie
as we say down south maybe this will prime your pump
chow
grounded
'************************************************* ***************
'* Name : GATE.BAS *
'* Author : GROUNDED *
'* Notice : Copyright (c) 2007 HAVING FUN PROGRAMMING *
'* : All Rights Reserved *
'* Date : 1/11/2006 /10-12-07 *
'* Version : 1.0 ***MOD. FOR GATE CLOSER *
'* Notes : DRIVE THOUGH DOOR WITH PHOTO EYE, REVERSING EDGE *
'* & AJAR SAFETY SWITCHS . ONE PUSH BUTTON FOR OPEN/CLOSE *
'WITH FAULT CODE (FLASHING LED) *
'PHOTO EYE FAULT CODE LED 4 SEC. ON 4 SEC. OFF *
'REVERSING EDGE FAULT CODE LED ON 1 SEC OFF 1 SEC ON 1 SEC. OFF 4 SE
'AJAR FAULT CODE LED ON 1/4 SEC. OFF 1/4 SEC. ON 1/4 SEC. OFF 4 SEC.
'FAULT DOES NOT RESET WITH POWER RECYCLE MUST PUSH RESET BUTTON
'COMPILED @ 389 WORDS
'** ADDED FOR GATE CONTROLLER REVERSE OPERATION ON PB PUSH *
'************************************************* ***************
pic16f630
'FUSES SET IN INC. FILE
'INTRC_OSC_NOCLKOUT, WDT_ON, MCLR_OFF,
'CPD_OFF, BOD_OFF, PWRT_ON,PROTECT_OFF
DEFINE OSC 4
Pause 7000 'DELAY TO LET STABILIZE AFTER POWER UP
CMCON = 7 'COMPARATOR OFF
VRCON = 0 'VOLTAGE REF. DISABLE
TRISA = %00011111 'MAKE ALL BUT A.5 INPUTS
TRISC = %00110000 'MAKE PORTC .4,.5 INPUT REST OUTPUTS
OPTION_REG=%01000000 'ENABLE WEEK PULLUPS (CLEAR RAPU)& RISIING EDGE
WPUA = %00010011 'WEAK PULLUPS ON PORTA..0,.1,.4,
SYMBOL OL = PORTA.0 'OPEN LIMIT SW.IN 3
SYMBOL CL = PORTA.1 'CLOSED LIMIT SW.IN 4
SYMBOL PB = PORTA.2 'OPEN/CLOSE PB IN 1
SYMBOL RS = PORTA.3 'FAULT RESET IN 2 RESET
SYMBOL PE = PORTA.4 'PHOTO EYE IN 5
SYMBOL LED = PORTA.5 'POWER UP & FAULT LED OUT 3
SYMBOL CDC = PORTC.0 'CLOSE DOOR CONTACTOR OUT 1
SYMBOL ODC = PORTC.1 'OPEN DOOR CONTACTOR OUT 2
SYMBOL NA = PORTC.2 'N/A
SYMBOL NAA = PORTC.3 'N/A
SYMBOL RE = PORTC.4 'REVERSING EDGE IN 6
SYMBOL AJ = PORTC.5 'AJAR SWITCH IN 7
FR VAR BYTE 'FAULT VAR
PEC VAR BYTE 'PHOTO EYE FAULT CODE
REC VAR BYTE 'REVERSING EDGE FAULT CODE
AJC VAR BYTE 'AJAR FAULT CODE
OL=0:CL=0:PB=0:RS=0:PE=0:LED=0:CDC=0:ODC=0:NA=0:NA A=0:RE=0:AJ=0
LED=1 :PAUSE 2000 :LED=0 'POWER UP LED
MAIN:
IF fr=1 then goto fault 'CHECK FOR FAULT AFTER POWER UP
'LOOP UNTIL OPEN /CLOSED PUSH BUTTON IS PUSHED
IF PB=1 THEN PAUSE 10000 : GOTO CHECKIT'***10 SEC. TO RELEASE PB
PAUSE 250
GOTO MAIN
CHECKIT:
IF (OL=0) AND (CL=0) THEN GOTO OPENUP 'IF NO LIMIT SW. MADE THEN OPEN (COULD USE CLOSE)
IF (OL=0) AND (CL=1) THEN GOTO OPENUP 'IF CLOSE LIMIT SW. MADE THEN OPEN
IF (OL=1) AND (CL=0) THEN GOTO CLOSE 'IF OPEN LIMIT SW. MADE THEN CLOSE
RELO: '*******
PAUSE 100
IF PB=0 THEN GOTO EOPEN '** PB MUST BE RELEASED BEFORE DOOR WILL START OPENING
GOTO RELO
EOPEN:
IF PB=1 THEN GOTO OPENUP'***LOOP UNTIL PB IS PUSHED THEN OPEN
GOTO EOPEN
OPENUP:
IF (FR=0) AND (OL=0) THEN ODC=1 'IF NO FAULT & OPEN LIMIT NOT MADE OPEN
IF PB =1 THEN ODC=0:PAUSE 3000: GOTO RELC '***IF PB PUSHED STOP AND THEN CLOSE
IF OL=1 THEN ODC=0 : GOTO MAIN 'WHEN DOOR FULLY OPENS GOTO MAIN
GOTO OPENUP 'LOOP UNTIL OPEN LIMIT IS MADE
RELC:
PAUSE 100
IF PB=0 THEN GOTO ECLOSE '***PB MUST BE RELEASED BEFORE START CLOSING
GOTO RELC
ECLOSE:
IF PB=1 THEN GOTO CLOSE '**** LOOP UNTIL PB IS PUSHED THEN START CLOSING
GOTO ECLOSE
CLOSE:
CDC=1 'CLOSE DOOR CONTACT
'IF PHOTO EYE OR REVERSING EDGE IS TRIPP WHEN DOOR IS CLOSING STOP AND THEN OPEN
IF PB=1 THEN CDC=0 :PAUSE 3000 :GOTO RELO '**IF PB PUSHED STOP AND THEN OPEN
IF CL=1 THEN CDC=0 :GOTO MAIN 'LOOP UNTIL CLOSE LIMIT IS MADE
IF PE=1 THEN PEC=2: CDC=0 :PAUSE 4000 :GOTO FO 'PHOTO EYE FAULT
IF RE=1 THEN REC=2: CDC=0 :PAUSE 4000 :GOTO FO 'REVERSING EDGE FAULT
IF AJ=1 THEN AJC=2: CDC=0 :PAUSE 1000 :GOTO FAULT 'AJAR FAULT
GOTO CLOSE 'LOOP AND CHECK FOR FAULT
FO: 'IF YOU HAVE A PE OR RE FAULT OPEN DOOR AND
'THEN SHOW FAULT
IF OL =0 THEN ODC=1
IF OL=1 THEN GOTO FAULT
GOTO FO
FAULT:
FR=1
IF PEC=>2 THEN LED=1:PAUSE 4000 :LED=0 :PAUSE 4000
IF REC=>2 THEN LED=1:PAUSE 1000:LED=0:PAUSE 1000:LED=1:PAUSE 1000:LED=0:PAUSE 4000
IF AJC=>2 THEN LED=1:PAUSE 250:LED=0:PAUSE 250:LED=1:PAUSE 250:LED=0:PAUSE 4000
IF RS=1 THEN PEC=0: REC=0 :AJC=0 : FR=0 :GOTO MAIN
GOTO FAULT
Bookmarks