BOOST, Allegro ACS713 current monitor, FET and a Picaxe 20X2. The charger board is by Sparkfun.
#no_table
#picaxe 20x2
HIGH C.5
LET adcsetup = 00000000011111
POKESFR $22,4
SYMBOL R = B0
SYMBOL G = B1
SYMBOL COLOR = W1
SYMBOL COLOR2 = W2
SYMBOL V =W3
SYMBOL VOLTS =W4
SYMBOL MA = W5
SYMBOL MAMPS =W6
SYMBOL VPOINTER = B14
SYMBOL MPOINTER = B15
SYMBOL POS = B16
SYMBOL POS2 = B17
SYMBOL POS3 = B18
SYMBOL VOLD = W13
SYMBOL VPOLD =B19
SYMBOL MOLD = W14
SYMBOL MPOLD = B20
SYMBOL U = B21
SYMBOL W = B22
SYMBOL X = B23
SYMBOL Y = B24
SYMBOL Z = B25
HIGH C.0
PAUSE 1000
HSERSETUP B38400_8, 0
HSEROUT 0, ($55)
HSERIN 0,1
HSEROUT 0, ($45)
HSERIN 0,1
R = 31
G = 0
HSEROUT 0, ($4F, $01)
HSERIN 0,1
POS = 30
HSEROUT 0, ($53, 8,0,2,0,31,1,1,"V",$00)
HSERIN 0,1
HSEROUT 0, ($53, 4,36,2,0,31,1,1,"mA",$00)
HSERIN 0,1
BARS:
W1 = B0*2048
W2 = B1*32
W1 = W1 + W2
HSEROUT 0, ($4C, POS, 0, POS, 11, B3,B2)
HSERIN 0,1
HSEROUT 0, ($4C, POS, 36, POS, 47, B3,B2)
HSERIN 0,1
INC POS
HSEROUT 0, ($4C, POS, 0, POS, 11, B3,B2)
HSERIN 0,1
HSEROUT 0, ($4C, POS, 36, POS, 47, B3,B2)
HSERIN 0,1
IF R > 0 THEN
R = R - 1
G = G + 2
POS = POS + 1
GOTO BARS
ENDIF
VOLD = 320
VPOLD =30
X = 3
Y = 2
Z = 0
MOLD = 1
MPOLD = 30
TMR3SETUP %10110001
POINTERS:
READADC10 4,V
VOLTS = V *4/10
V=V-800*100/223
V = V * 63/100 +30
VPOINTER = V
IF VOLTS < 320 THEN
VPOINTER = 29
ENDIF
IF VOLTS <> VOLD THEN
POS2 = VPOLD - 4
POS3 = VPOLD + 4
R = VPOLD - 12
IF R > 70 THEN
R =70
ENDIF
BINTOASCII VOLD,U,W,X,Y,Z
HSEROUT 0, ($47, VPOLD,13,POS2,17,POS3,17,0,0)
HSERIN 0,1
HSEROUT 0, ($53, R,19,16,0,0,1,1,X,".",Y,Z,$00)
HSERIN 0,1
ENDIF
IF VOLTS <> VOLD THEN
POS2 = VPOINTER - 4
POS3 = VPOINTER + 4
R = VPOINTER - 12
IF R > 70 THEN
R =70
ENDIF
BINTOASCII VOLTS,U,W,X,Y,Z
HSEROUT 0, ($47, VPOINTER,13,POS2,17,POS3,17,123,224)
HSERIN 0,1
HSEROUT 0, ($53, R,19,16,0,31,1,1,X,".",Y,Z,$00)
HSERIN 0,1
PAUSE 50
ENDIF
VOLD = VOLTS
VPOLD = VPOINTER
READADC10 2,MA
IF MA < 121 THEN
MA = 119
ENDIF
IF MA > 145 THEN
MA = MA*105/100
ENDIF
MAMPS = MA -119*216/10
MA=MA-119*100/46
MA = MA * 63/100 +30
MPOINTER = MA
IF MAMPS < 1 THEN
MPOINTER = 29
ENDIF
IF MAMPS <> MOLD THEN
POS2 = MPOLD - 4
POS3 = MPOLD + 4
R = MPOLD - 12
IF R > 70 THEN
R =70
ENDIF
HSEROUT 0, ($47, MPOLD,49,POS2,53,POS3,53,0,0)
HSERIN 0,1
HSEROUT 0, ($53, R,55,16,0,0,1,1,#MOLD,$00)
HSERIN 0,1
ENDIF
IF MAMPS <> MOLD THEN
POS2 = MPOINTER - 4
POS3 = MPOINTER + 4
R = MPOINTER - 12
IF R > 70 THEN
R =70
ENDIF
HSEROUT 0, ($47, MPOINTER,49,POS2,53,POS3,53,123,224)
HSERIN 0,1
HSEROUT 0, ($53, R,55,16,0,31,1,1,#MAMPS,$00)
HSERIN 0,1
ENDIF
PAUSE 5000
MOLD = MAMPS
MPOLD = MPOINTER
IF MAMPS >0 THEN
TIMER3 =0
ELSE
IF TIMER3 >240 THEN
LOW C.5
ENDIF
ENDIF
GOTO POINTERS
#picaxe 20x2
HIGH C.5
LET adcsetup = 00000000011111
POKESFR $22,4
SYMBOL R = B0
SYMBOL G = B1
SYMBOL COLOR = W1
SYMBOL COLOR2 = W2
SYMBOL V =W3
SYMBOL VOLTS =W4
SYMBOL MA = W5
SYMBOL MAMPS =W6
SYMBOL VPOINTER = B14
SYMBOL MPOINTER = B15
SYMBOL POS = B16
SYMBOL POS2 = B17
SYMBOL POS3 = B18
SYMBOL VOLD = W13
SYMBOL VPOLD =B19
SYMBOL MOLD = W14
SYMBOL MPOLD = B20
SYMBOL U = B21
SYMBOL W = B22
SYMBOL X = B23
SYMBOL Y = B24
SYMBOL Z = B25
HIGH C.0
PAUSE 1000
HSERSETUP B38400_8, 0
HSEROUT 0, ($55)
HSERIN 0,1
HSEROUT 0, ($45)
HSERIN 0,1
R = 31
G = 0
HSEROUT 0, ($4F, $01)
HSERIN 0,1
POS = 30
HSEROUT 0, ($53, 8,0,2,0,31,1,1,"V",$00)
HSERIN 0,1
HSEROUT 0, ($53, 4,36,2,0,31,1,1,"mA",$00)
HSERIN 0,1
BARS:
W1 = B0*2048
W2 = B1*32
W1 = W1 + W2
HSEROUT 0, ($4C, POS, 0, POS, 11, B3,B2)
HSERIN 0,1
HSEROUT 0, ($4C, POS, 36, POS, 47, B3,B2)
HSERIN 0,1
INC POS
HSEROUT 0, ($4C, POS, 0, POS, 11, B3,B2)
HSERIN 0,1
HSEROUT 0, ($4C, POS, 36, POS, 47, B3,B2)
HSERIN 0,1
IF R > 0 THEN
R = R - 1
G = G + 2
POS = POS + 1
GOTO BARS
ENDIF
VOLD = 320
VPOLD =30
X = 3
Y = 2
Z = 0
MOLD = 1
MPOLD = 30
TMR3SETUP %10110001
POINTERS:
READADC10 4,V
VOLTS = V *4/10
V=V-800*100/223
V = V * 63/100 +30
VPOINTER = V
IF VOLTS < 320 THEN
VPOINTER = 29
ENDIF
IF VOLTS <> VOLD THEN
POS2 = VPOLD - 4
POS3 = VPOLD + 4
R = VPOLD - 12
IF R > 70 THEN
R =70
ENDIF
BINTOASCII VOLD,U,W,X,Y,Z
HSEROUT 0, ($47, VPOLD,13,POS2,17,POS3,17,0,0)
HSERIN 0,1
HSEROUT 0, ($53, R,19,16,0,0,1,1,X,".",Y,Z,$00)
HSERIN 0,1
ENDIF
IF VOLTS <> VOLD THEN
POS2 = VPOINTER - 4
POS3 = VPOINTER + 4
R = VPOINTER - 12
IF R > 70 THEN
R =70
ENDIF
BINTOASCII VOLTS,U,W,X,Y,Z
HSEROUT 0, ($47, VPOINTER,13,POS2,17,POS3,17,123,224)
HSERIN 0,1
HSEROUT 0, ($53, R,19,16,0,31,1,1,X,".",Y,Z,$00)
HSERIN 0,1
PAUSE 50
ENDIF
VOLD = VOLTS
VPOLD = VPOINTER
READADC10 2,MA
IF MA < 121 THEN
MA = 119
ENDIF
IF MA > 145 THEN
MA = MA*105/100
ENDIF
MAMPS = MA -119*216/10
MA=MA-119*100/46
MA = MA * 63/100 +30
MPOINTER = MA
IF MAMPS < 1 THEN
MPOINTER = 29
ENDIF
IF MAMPS <> MOLD THEN
POS2 = MPOLD - 4
POS3 = MPOLD + 4
R = MPOLD - 12
IF R > 70 THEN
R =70
ENDIF
HSEROUT 0, ($47, MPOLD,49,POS2,53,POS3,53,0,0)
HSERIN 0,1
HSEROUT 0, ($53, R,55,16,0,0,1,1,#MOLD,$00)
HSERIN 0,1
ENDIF
IF MAMPS <> MOLD THEN
POS2 = MPOINTER - 4
POS3 = MPOINTER + 4
R = MPOINTER - 12
IF R > 70 THEN
R =70
ENDIF
HSEROUT 0, ($47, MPOINTER,49,POS2,53,POS3,53,123,224)
HSERIN 0,1
HSEROUT 0, ($53, R,55,16,0,31,1,1,#MAMPS,$00)
HSERIN 0,1
ENDIF
PAUSE 5000
MOLD = MAMPS
MPOLD = MPOINTER
IF MAMPS >0 THEN
TIMER3 =0
ELSE
IF TIMER3 >240 THEN
LOW C.5
ENDIF
ENDIF
GOTO POINTERS
No comments:
Post a Comment