Hi Group. I have a program set up via relays to change (2) 12-volt batteries wired in parallel to be wired in series. It involves several relays which connect or disconnect the parallel connections and then tie one battery's positive terminal to the other's negative terminal. This temporary connection is needed to run a 24 volt bow thruster. The program works perfectly with an approximate 20 minute time span for automatically turning it off and reconnecting the batteries in parallel.
My goal was/is to have the program watch for a 5 volt input to drop to 0 volts which should then automatically turn off the thruster. This is line 48 in the code. When I turn on a switch, 5 volts is sent to this one Pin.
The 20 minute program works perfectly. But for some reason, if I apply 5 volts to Pin C.5 (18M2 chip), the program does not work. It works in simulation but not in actual practice. I have a 10K pulldown resistor to hold the pin to ground so if the 5 volts are cut off, the pin will be considered "low". I've attached the program and a copy of the PCB. There are several extracurriculars involved to control LED's, a board-mounted Relay and options to connect other inputs.
Any help would be appreciated on why the PINC.5 is a no-go. Thanks!
'PICAXE 18M2+ FOR THRUSTER CONTROL - 13 TO 26 VOLTS VIA 3 RELAYS
'INCLUDES LED CONTROL FOR A DISPLAY MODULE CONNECTED VIA CAT5 WIRE
'SET FOR 20 MINUTES ON AND AUTO OFF AFTER TIME EXPIRES OR C.5 GOES LOW
INIT:
PAUSE 1000
DISCONNECT
SYMBOL BACKUPPWR = C.2
SYMBOL RELAYDISCONNECT = C.0 'RELAY 1 - LOW = ON, HIGH = OFF
SYMBOL RELAYCONNECT = C.1 'RELAY 1 - LOW = ON, HIGH = OFF
SYMBOL RELAYTHRUSTER = C.3 'RELAY 2 - HIGH FOR 24 VOLT CONNECTION FROM MAIN BOARD
SYMBOL BATTSOKAY = C.6 'LED INDICATOR
SYMBOL TWORELAYS = B.7 'LED INDICATOR
SYMBOL TWENTYFOURVOLTS = B.6 'LED INDICATOR
SYMBOL THRUSTERON = B.5 'LED INCIATOR
SYMBOL ERRORLIGHT = B.4 'LED INDICATOR
LET DIRSB = %11110000 'SET B0 - B3 AS INPUTS AND B4 - B7 AS OUTPUTS ("1" = OUTPUT, "0" = INPUT)
LET DIRSC = %01001111 'SET C0 - C3, C6 AS OUTPUTS, C4 & C5, C7 AS INPUTS
HIGH RELAYDISCONNECT
HIGH RELAYCONNECT
HIGH BATTSOKAY, TWORELAYS, TWENTYFOURVOLTS, THRUSTERON, ERRORLIGHT 'TEST DISPLAY LIGHTING - TURN ON
PAUSE 3000
LOW BATTSOKAY, TWORELAYS, TWENTYFOURVOLTS, THRUSTERON, ERRORLIGHT 'TURN OFF ALL DISPLAY LIGHTING
PAUSE 50
HIGH BACKUPPWR 'TURN ON NPN TRANSISTOR TO RELAY 3 FOR TEMP PWR TO PICAXE IF SWITCH OFF
PAUSE 2000
HIGH BATTSOKAY '"BATTS OKAY" - MEANING > 12.5
PAUSE 1000
MAIN:
PAUSE 1000
LOW RELAYDISCONNECT 'DISCONNECTS BOTH RELAYS WHICH HOLD BATTERIES IN PARALLEL
PAUSE 1500 'MAY REQUIRE LONGER PAUSE TO FIND VOLTAGE DIFFERENCE
HIGH RELAYDISCONNECT 'RELAY SHOULD NOW BE UNLATCHED IN CORRECT DISCONNECT "OPEN" POSTION
LET DIRSC = %01001110 'TEMPORARILY SET C.0 AS INPUT TO MAKE SURE IT DOESN'T START UP
PAUSE 2000
HIGH TWORELAYS 'RELAYS 1 - 2 OKAY
HIGH RELAYTHRUSTER 'CONNECT BATERIES IN SERIES FOR 24 VOLTS
PAUSE 2000 'MAY REQUIRE LONGER PAUSE TO FIND VOLTAGE DIFFERENCE
HIGH TWENTYFOURVOLTS 'TURN ON 4TH GREEN LED - "24 VOLTS"
PAUSE 1000
HIGH THRUSTERON 'TURN ON 4TH LED FOR "THRUSTER ON"
THRUSTRUN: '30 SECOND RUN AND THEN TURN STUFF OFF
PAUSE 500
FOR B1 = 1 TO 40
IF PINC.5 = 0 THEN
GOTO THRUSTOFF
ENDIF
PAUSE 30000
NEXT B1
THRUSTOFF:
PAUSE 5000
LOW RELAYTHRUSTER 'TURN OFF RELAY #2 (DISCONNECT 24 VOLT CONNECTION)
PAUSE 2000
LOW THRUSTERON 'B.5
PAUSE 2000
LOW TWENTYFOURVOLTS 'B.6
LOW RELAYCONNECT 'C.0 SWITCH RELAY #2 TO RECONNECT BATT 1 TO BATT 2 TERMINALS
PAUSE 1500
HIGH RELAYCONNECT
PAUSE 500
LOW TWORELAYS 'B.7
PAUSE 2000
LOW BATTSOKAY 'C.6
LET DIRSC = %01001100 'TEMPORARILY SET C.1 AS INPUT TO MAKE SURE IT DOESN'T START UP
PAUSE 2000
LOW BACKUPPWR 'TURN OFF NPN TRANSISTOR TO RELAY WHICH POWERS PICAXE AFTER SWITCH OFF
LET DIRSC = %01001000 'TEMPORARILY SET C.2 AS INPUT TO MAKE SURE IT DOESN'T START UP
PAUSE 2000
STOP
My goal was/is to have the program watch for a 5 volt input to drop to 0 volts which should then automatically turn off the thruster. This is line 48 in the code. When I turn on a switch, 5 volts is sent to this one Pin.
The 20 minute program works perfectly. But for some reason, if I apply 5 volts to Pin C.5 (18M2 chip), the program does not work. It works in simulation but not in actual practice. I have a 10K pulldown resistor to hold the pin to ground so if the 5 volts are cut off, the pin will be considered "low". I've attached the program and a copy of the PCB. There are several extracurriculars involved to control LED's, a board-mounted Relay and options to connect other inputs.
Any help would be appreciated on why the PINC.5 is a no-go. Thanks!
'PICAXE 18M2+ FOR THRUSTER CONTROL - 13 TO 26 VOLTS VIA 3 RELAYS
'INCLUDES LED CONTROL FOR A DISPLAY MODULE CONNECTED VIA CAT5 WIRE
'SET FOR 20 MINUTES ON AND AUTO OFF AFTER TIME EXPIRES OR C.5 GOES LOW
INIT:
PAUSE 1000
DISCONNECT
SYMBOL BACKUPPWR = C.2
SYMBOL RELAYDISCONNECT = C.0 'RELAY 1 - LOW = ON, HIGH = OFF
SYMBOL RELAYCONNECT = C.1 'RELAY 1 - LOW = ON, HIGH = OFF
SYMBOL RELAYTHRUSTER = C.3 'RELAY 2 - HIGH FOR 24 VOLT CONNECTION FROM MAIN BOARD
SYMBOL BATTSOKAY = C.6 'LED INDICATOR
SYMBOL TWORELAYS = B.7 'LED INDICATOR
SYMBOL TWENTYFOURVOLTS = B.6 'LED INDICATOR
SYMBOL THRUSTERON = B.5 'LED INCIATOR
SYMBOL ERRORLIGHT = B.4 'LED INDICATOR
LET DIRSB = %11110000 'SET B0 - B3 AS INPUTS AND B4 - B7 AS OUTPUTS ("1" = OUTPUT, "0" = INPUT)
LET DIRSC = %01001111 'SET C0 - C3, C6 AS OUTPUTS, C4 & C5, C7 AS INPUTS
HIGH RELAYDISCONNECT
HIGH RELAYCONNECT
HIGH BATTSOKAY, TWORELAYS, TWENTYFOURVOLTS, THRUSTERON, ERRORLIGHT 'TEST DISPLAY LIGHTING - TURN ON
PAUSE 3000
LOW BATTSOKAY, TWORELAYS, TWENTYFOURVOLTS, THRUSTERON, ERRORLIGHT 'TURN OFF ALL DISPLAY LIGHTING
PAUSE 50
HIGH BACKUPPWR 'TURN ON NPN TRANSISTOR TO RELAY 3 FOR TEMP PWR TO PICAXE IF SWITCH OFF
PAUSE 2000
HIGH BATTSOKAY '"BATTS OKAY" - MEANING > 12.5
PAUSE 1000
MAIN:
PAUSE 1000
LOW RELAYDISCONNECT 'DISCONNECTS BOTH RELAYS WHICH HOLD BATTERIES IN PARALLEL
PAUSE 1500 'MAY REQUIRE LONGER PAUSE TO FIND VOLTAGE DIFFERENCE
HIGH RELAYDISCONNECT 'RELAY SHOULD NOW BE UNLATCHED IN CORRECT DISCONNECT "OPEN" POSTION
LET DIRSC = %01001110 'TEMPORARILY SET C.0 AS INPUT TO MAKE SURE IT DOESN'T START UP
PAUSE 2000
HIGH TWORELAYS 'RELAYS 1 - 2 OKAY
HIGH RELAYTHRUSTER 'CONNECT BATERIES IN SERIES FOR 24 VOLTS
PAUSE 2000 'MAY REQUIRE LONGER PAUSE TO FIND VOLTAGE DIFFERENCE
HIGH TWENTYFOURVOLTS 'TURN ON 4TH GREEN LED - "24 VOLTS"
PAUSE 1000
HIGH THRUSTERON 'TURN ON 4TH LED FOR "THRUSTER ON"
THRUSTRUN: '30 SECOND RUN AND THEN TURN STUFF OFF
PAUSE 500
FOR B1 = 1 TO 40
IF PINC.5 = 0 THEN
GOTO THRUSTOFF
ENDIF
PAUSE 30000
NEXT B1
THRUSTOFF:
PAUSE 5000
LOW RELAYTHRUSTER 'TURN OFF RELAY #2 (DISCONNECT 24 VOLT CONNECTION)
PAUSE 2000
LOW THRUSTERON 'B.5
PAUSE 2000
LOW TWENTYFOURVOLTS 'B.6
LOW RELAYCONNECT 'C.0 SWITCH RELAY #2 TO RECONNECT BATT 1 TO BATT 2 TERMINALS
PAUSE 1500
HIGH RELAYCONNECT
PAUSE 500
LOW TWORELAYS 'B.7
PAUSE 2000
LOW BATTSOKAY 'C.6
LET DIRSC = %01001100 'TEMPORARILY SET C.1 AS INPUT TO MAKE SURE IT DOESN'T START UP
PAUSE 2000
LOW BACKUPPWR 'TURN OFF NPN TRANSISTOR TO RELAY WHICH POWERS PICAXE AFTER SWITCH OFF
LET DIRSC = %01001000 'TEMPORARILY SET C.2 AS INPUT TO MAKE SURE IT DOESN'T START UP
PAUSE 2000
STOP
Attachments
Last edited: