Wall Unit Receiver Picaxe Basic Program

Declarations and Data

#rem

Wall Unit.bas This has three separate switched outlets in 2 duplex receptacles

one of the 4 is not switched

It is housed in their NEMA box

John Saunders  7/25/2013

#endrem


#PICAXE 14M2


'Input Port

symbol Rcvr_In  = C.3

symbol Rcvr_Int = pinC.0


'Output Ports - clockwise from live socket

symbol RL1Port  = B.1        'Use for Icycle Lights

symbol RL2Port  = B.2        'Use for Shelf Lights

symbol RL3Port  = B.3        'Use for Floor lamp

symbol Exp1Port = B.4

symbol Exp2Port = B.5 

symbol Exp3Port = C.1 

symbol Exp4Port = C.2 


'Variables

symbol Int_Val  = bit0

symbol Rcvr_Val  = b1

symbol Iter      = b2

symbol Dummy1    = b3

symbol Dummy2    = b4

symbol CountUp   = w6

Init and  Main

init:

LOW RL1Port

LOW RL2Port

LOW RL3Port

LOW Exp1Port

LOW Exp2Port

LOW Exp3Port 

LOW Exp4Port


 

SETINT %00000001, %00000001


main:

FOR Iter = 0 TO 100

    INC CountUp    

    IF CountUp = 100 THEN

        SETINT %00000001, %00000001

    ENDIF    

NEXT Iter

GOTO main

Interrupt

interrupt:

SETFREQ m16    'Interrupt is triggered by a 20 ms burst which exceeds intergator threshold

PAUSE 40

SERIN [300,Invalid_Burst],Rcvr_In,N2400_16,("14L1776"),Rcvr_Val,Dummy1,Dummy2

SETFREQ m8                'To get SERTXD at 9600 baud

IF Rcvr_Val < "0" OR Rcvr_Val > "z" THEN Invalid_Burst

SELECT Rcvr_Val

    CASE "K"

        HIGH RL1Port    'Red + Green on Pentagon,Pineapple on

    CASE "8"

        LOW RL1Port        'Yellow + Green on Pentagon,{ineapple off

    CASE "E"

        HIGH RL2Port    'Black + Red + Yellow on Pentagon,Shelf on

    CASE "F"

        LOW RL2Port        'White + Red + Yellow on Pentagon,Shelf off

    CASE "b"

        HIGH RL3Port    'Red + Blue on Pentagon,Floor on

    CASE "f"

        LOW RL3Port        'Yellow + Blue on Pentagon,Floor off

    ELSE SERTXD ("Received:",Rcvr_Val,13,10)

ENDSELECT

Invalid_Burst:

PAUSE 300

SETFREQ m8                'To get SERTXD at 9600 baud

LET Rcvr_Val = "z"

LET CountUp  =0

RETURN