Welcome Anonymous
Fledgling
Fledgling
It is currently Mon Jun 26, 2017 6:14 am

All times are



Post new topic Reply to topic  [ Array ] 
Author Message
 Post subject: DXG 125 with AIO code?
PostPosted: Sun May 06, 2012 8:51 am 
Offline
Fledgling
Fledgling

Joined: Mon Feb 01, 2010 2:38 pm
Posts: 56
Can anyone help me with the timing on my ir exchanger in the code for the dxg 125. I have the electronics123 exchanger and im using tcscou's code. Thanks Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun May 06, 2012 1:26 pm 
Offline
King
King
User avatar

Joined: Tue Feb 16, 2010 3:20 pm
Posts: 482
This was a code I used that had the 5v exchanger I think. It used a remote array so that wouldnt fit your build but you might be able to see if it runs your exchanger.


Code:

'=========================
'DXG 125 Video Cam w/ Remote 940nm IR Arrays using the driveway alert for the transmitter/receiver,
'5v exchanger runs off of a sister board, and sound amp.
'Amps + wire connects to C+ on the AIO
'Amps - wire connects to SP on the AIO.
'Transmitter + wire connects to  S+ on the AIO
'Transmitter - wire connects to S- on the AIO
'Signal wire from exchanger connects to C.2 (phototransistor's collector)
'125V's shuter/shutter common connect to PW and CM
'125V's power/power common connect to F+ and F- (single channel opto needed in place of the MOC3023 was with appropriate jumpers)
'Record times and delays can be changed under "time variables"
'=========================

' Walktest length is 30 seconds
' led will flash rapidly when motion is sensed during walktest
' led will flash 4 times indication walktest is over

'Last change on 04_06_11

'*************************************************************





#picaxe20x2               
#no_data
#no_table
disablebod

'=====================================================
' Map Ports
'=====================================================
Symbol PT_IN = B.0            ' Photo Transistor input
Symbol CDS_Out = C.5          ' Output to LDR voltage Divider
Symbol Shutter_Out = B.3      ' slave flash opto
Symbol Array_Out = C.3        ' Slave Mosfet
Symbol Exchanger_Out = C.2    ' Photo Transistor output
Symbol Sound_Out = C.1        ' Spare Mosfet
Symbol Battery_Monitor = B.6  ' ADC Input for battery monitor
Symbol LDR_IN = B.5           ' LDR ADC Input
Symbol Exch_Power = B.7       ' Exchanger power on to sister board
Symbol Power_Out = C.4        ' Power Mosfet
Symbol LED_Out = B.2          ' LED
Symbol PIR_In = B.1           ' Input from PIR Circuit
Symbol BkGrnd_Timer = B1
Symbol Byte_Var = B2
Symbol ValidPIR = B3
Symbol PIR_Event = B4
Symbol WlkTestFlag = B5      ' Walk test status flag
Symbol WlkTestTime = B6      ' Number of 15 sec periods for walk test
Symbol Activity_Flag = B7
Symbol Normal_OP = B8
Symbol CamRefresh = B9
Symbol Activity_Count = B10
Symbol Event_Delay = B11
Symbol CamEvent_Flag = B12
Symbol Cam_Mode = B13
Symbol Flash_Flag = b14    ' Flag to count the # of flashes seen
Symbol TO_Counter = W1     ' Timeout counter
Symbol First_Flash = b15
Symbol Wait_Loop = W2
Symbol CDS_Value = b16
Symbol Night_Flag = b17
Symbol Day = b18
Symbol Night = b19
Symbol SlaveRefresh = b20
Symbol FlashCharge = b21
Symbol RECTime = W14
Symbol PIRDelay = W15
Symbol Exchanger_Position = b22

'=====================================================
' Set Port Directions
'=====================================================

Output PT_IN
Output CDS_Out
Output Power_Out
Output Array_Out
'Input  Power_Mon
Output Sound_Out
Output Battery_Monitor
Input LDR_IN
Output Exchanger_Out
Output Power_Out
Output LED_Out
Input PIR_In
Output B.4
Input C.0
Input C.7   
Output B.7
Output A.0
Output Exch_Power

'=====================================================
'Pullups
'=====================================================
'Disable all PUs
pullup %00000000

'=====================================================
' Configure ADC
'=====================================================
adcsetup = %010000000000           'make adc 10 a input
'============================================================================
'===
'  STARTUP
'============================================================================
'===
; Allow board to stabilize for 20 sec
   High LED_Out
   pause 5000
   'High LED_Out
   Gosub CamInit
   pause 5000
   Low LED_Out
 
'****************************************************   
'Check Dip Switches to get Record Time and Delay Time
'****************************************************

Gosub Get_Time_Variables


Powerup:
WlkTestTime = 2     ' set walk test timer to last for 30 seconds
WlkTestFlag = 1    ' Turn on walk test mode
CamRefresh = 0
Event_Delay = 2    ' # of 15sec periods to wait before another cam event occurs
CamEvent_Flag = 0  ' Set flag to off
Cam_Mode = 1
Activity_Flag = 0
Activity_Count = 0
Normal_OP = 1       ' board is operating in normal mode if 0.  Activity mode or walktest if 1
Night = 128             ; lux level 7 = 100k(R16)  2v @ 4v   2 X 256 / 4 =  128
Day =  117             
Night_Flag = 0
SlaveRefresh = 0
Exchanger_Position = 0

' Do initial board setup for light & battery levels
GoSub CdsChk
'=====================================================
'Configure Interrupts
hintsetup %01000100             'set HINT2(PIR) & HINT1(FLASH) to trigger Interrupt at rising edge
'Setintflags %00001000,%00001000      'enable interrupt flags
Setintflags %00000100,%00000100      'enable interrupt flags


'=====================================================
Main:    ' Main loop that checks for a PIR event,  charges slave, turns off the cam if in trail mode and increments counters & timers, then sleeps for 15 secs and does it all over again:
'=====================================================

If PIR_Event = 1 Then GoSub PIR_INTService



' Turn off walk test if time is up
If WlkTestFlag = 1 And WlkTestTime = 0 Then
   WlkTestFlag = 0          'turn off walk test If Time is up
    Byte_Var = 0     ' Flash LED to indicate walk test over
    For Byte_Var = 0 To 7
       pause 400
       Toggle LED_Out
    Next
  EndIf



' Increment counters & timers
    Inc BkGrnd_Timer
    If WlkTestFlag = 1 And WlkTestTime <> 0 Then Dec WlkTestTime : EndIf
    'If WLKTestFlag = 0 Then Inc CamRefresh : EndIf
    If Activity_Flag = 1 And Activity_Count >= 0 Then Dec Activity_Count : EndIf
    GoSub CdsChk
    'If Night_Flag = 1 Then Inc SlaveRefresh :EndIf

Sleep 7
GoTo Main


Interrupt:
'sertxd ("Interrupt ",10,13)
If hint1flag = 1 Then  ' Flash has been detected
    'sertxd ("Flash Interrupt ",10,13)
    First_Flash = 1
    Inc Flash_Flag
    hint1flag = 0
   
    'Setintflags %00000010,%00000010      'enable interrupt flags FOR FLASH ONLY!
EndIf
If hint2flag = 1 Then    'Check to see if INT2 has been triggered
    PIR_Event = 1     'Set the PIR event flag
    hint2flag = 0    'reset hint2flag to 0
EndIf

hintflag = 0

Return


PIR_INTService:   
 
  PIR_Event = 0                                           
  ValidPIR = 0
; +++++++ Now See how long the port is high ++++++++++++++
    Byte_Var = 0                                       'clear the counter
    Do  While Pinb.1= 1                            'While the PIR is high (motion detected)
        Inc Byte_Var                                   'Inc our counter
        'Pause 1                                            'un-comment for a longer period
        If Byte_Var >= 2 Then             
            ValidPIR = 1                                   'flag the motion detected as valid
         Exit
        EndIf                                           
    Loop                                               



If ValidPIR = 1 Then                                  'If valid motion then
    ValidPIR = 0           
     
' WalkTest
    If WlkTestFlag = 1 Then               'if walktest then turn on led to indicate PIR event
               WlkTestTime = 2                           'reset walktest timer back to original count again
          Byte_Var = 0
            For Byte_Var = 0 To 19
             Toggle LED_Out
              Pause 20
            Next
             Pause 4000                         ; wait a few secs to settle PIR
            GoTo PIR_INTService_Exit
    EndIf

'***********************************************************************************   
'Motion was detected so this section controls camera, array, etc...

   
    If Activity_Flag = 0 And WlkTestFlag = 0 Then 
        If Night_Flag = 1 Then
               GoSub ArrayOn                     'Turn on array
                 EndIf
             GoSub CamPWR                      ' Power up cam
               'Gosub ArrayOff
             High Sound_Out                    ' Turn on Sound PreAmp
             GoSub Check_Exchanger
             Gosub ArrayOff
               pause 100
             GoSub Shutter                     ' Record
               Pause RECTime                     ' record for 30 seconds
             Gosub Shutter
               'Gosub ArrayOff
               Low Sound_Out
                 Pause 4000                        ' pause before powering off
               Gosub CamPwr
                 Low Exch_Power
               Gosub ArrayOn
                 pause 1500
               Gosub ArrayOff
      EndIF             


EndIF   

Pause PIRDelay    ' Pause before allowing another PIR interrupt

'************************************************************************************


PIR_INTService_Exit:
Setintflags %00000100,%00000100
Return

LED_Blink:
Byte_Var = 0
    For Byte_Var = 0 To 19
        Toggle LED_Out
        Pause 40
       
    Next
Return


Get_Time_Variables:
If PinC.7 = 0 Then
RecTime = 15000     '*****
Else
RecTime = 30000     '*****
Endif

If PinC.0 = 0 Then
PIRDelay = 5000     '*****
Else
PIRDelay = 60000    '*****
Endif
Return


CamPWR:
High Power_Out
pause 300
Low Power_Out
Return

Shutter:
High Shutter_Out
pause 500
Low Shutter_Out
Return

ArrayOn:
High Array_Out
Return

ArrayOff:
Low Array_Out
Return

ExchangerNight:
High Exchanger_Out
Return

ExchangerDay:
Low Exchanger_Out
Return

CamInit:
    ' DelayMS 2
    GoSub CamPWR
    GoSub ArrayOn
    pause 1000
    Gosub ArrayOff
    High Exch_Power
    pause 1400
    Gosub ExchangerNight
    Exchanger_Position = 1
    pause 3000
    Gosub ExchangerDay
    Exchanger_Position = 0
    pause 3000
    Gosub ExchangerNight
    Exchanger_Position = 1
    pause 3000
    Gosub ExchangerDay
    Exchanger_Position = 0
    Pause 5000
    Gosub ArrayOn
    pause 1000
    Gosub ArrayOff
    pause 1000
    GoSub CamPWR
    'GoSub ArrayOff
    Low Exch_Power
    Return
   
   
   
Check_Exchanger:

High Exch_Power
Pause 1400
    If Night_Flag = 1 and Exchanger_Position = 1 Then
    EndIf
   
    If Night_Flag = 0 and Exchanger_Position = 1 Then
    Gosub ExchangerDay
    Exchanger_Position = 0
    EndIf
   
    If Night_Flag = 1 and Exchanger_Position = 0 Then
    Gosub ExchangerNight
    Exchanger_Position = 1
    EndIf
   
    If Night_Flag = 0 and Exchanger_Position = 0 Then
    EndIf
   
    Return
   





CdsChk:
    High CDS_Out                     'Turn on pin to supply voltage to cds voltage divider
    readadc 10 , CDS_Value           ' Read light value
    Low CDS_Out                      'Turn off voltage divider
    If Night_Flag = 1 And CDS_Value >= Day Then
        GoTo CdsChk_Exit             'already set and Still dark so we exit
    Else
        Night_Flag = 0               ' already set and Daylight so clear flag
    EndIf
    If Night_Flag = 0 And CDS_Value >= Night Then
        Night_Flag = 1               ' Its dark so set flag   
    Else
        Night_Flag = 0               ' Daylight so clear flag
    EndIf

CdsChk_Exit:

Return


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ Array ] 

All times are


Who is online


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group