IGGE Power board

Dependencies:   mbed ADS1015 USBDevice MCP4725

Committer:
jamesdem1123
Date:
Tue Apr 01 14:47:21 2014 +0000
Revision:
3:a01ea06ca9ab
Parent:
2:321c8783ea30
Child:
4:d29a7b77b1c6
revison d

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jamesdem1123 1:dd6f8dc1e54e 1
jamesdem1123 0:54d5ccfcb14c 2 #include "mbed.h"
jamesdem1123 1:dd6f8dc1e54e 3 #include "Adafruit_ADS1015.h"
jamesdem1123 1:dd6f8dc1e54e 4 #include "USBSerial.h"
jamesdem1123 1:dd6f8dc1e54e 5
jamesdem1123 1:dd6f8dc1e54e 6 #define SERIAL_BAUD_RATE 9600
jamesdem1123 1:dd6f8dc1e54e 7
jamesdem1123 1:dd6f8dc1e54e 8 //library function setup
jamesdem1123 1:dd6f8dc1e54e 9 I2C i2c(p28, p27);
jamesdem1123 1:dd6f8dc1e54e 10 Adafruit_ADS1015 ads(&i2c);
jamesdem1123 1:dd6f8dc1e54e 11 USBSerial pc; // USB CDC serial port
jamesdem1123 1:dd6f8dc1e54e 12 CAN cantbus(p30, p29);
jamesdem1123 2:321c8783ea30 13 Ticker graph;
jamesdem1123 1:dd6f8dc1e54e 14
jamesdem1123 1:dd6f8dc1e54e 15 //leds
jamesdem1123 1:dd6f8dc1e54e 16 DigitalOut led0(LED1);
jamesdem1123 1:dd6f8dc1e54e 17 DigitalOut led1(LED2);
jamesdem1123 1:dd6f8dc1e54e 18 DigitalOut led2(LED3);
jamesdem1123 1:dd6f8dc1e54e 19 DigitalOut led3(LED4);
jamesdem1123 0:54d5ccfcb14c 20
jamesdem1123 1:dd6f8dc1e54e 21 //current readings
jamesdem1123 1:dd6f8dc1e54e 22 AnalogIn iBat(p15); //75a
jamesdem1123 1:dd6f8dc1e54e 23 AnalogIn iTwelve(p17); //31a
jamesdem1123 1:dd6f8dc1e54e 24 AnalogIn iFive(p18);//31a
jamesdem1123 1:dd6f8dc1e54e 25 AnalogIn iMot(p16);//75a
jamesdem1123 1:dd6f8dc1e54e 26 AnalogIn iCpu(p20);//31a
jamesdem1123 1:dd6f8dc1e54e 27 AnalogIn iPeri(p19);//31a
jamesdem1123 1:dd6f8dc1e54e 28
jamesdem1123 1:dd6f8dc1e54e 29 //voltage scalers
jamesdem1123 1:dd6f8dc1e54e 30 #define batScal 12.2
jamesdem1123 1:dd6f8dc1e54e 31 #define motScal 12.2
jamesdem1123 1:dd6f8dc1e54e 32 #define twelveScal 12.2
jamesdem1123 1:dd6f8dc1e54e 33 #define fiveScal 12.2
jamesdem1123 1:dd6f8dc1e54e 34
jamesdem1123 1:dd6f8dc1e54e 35 //Relays
jamesdem1123 1:dd6f8dc1e54e 36 DigitalOut relSens(p21);
jamesdem1123 1:dd6f8dc1e54e 37 DigitalOut relUsr(p22);
jamesdem1123 1:dd6f8dc1e54e 38 DigitalOut relNet(p23);
jamesdem1123 3:a01ea06ca9ab 39 DigitalOut relCpuRst(p24);
jamesdem1123 1:dd6f8dc1e54e 40 DigitalOut relCpuPower(p25);
jamesdem1123 1:dd6f8dc1e54e 41
jamesdem1123 0:54d5ccfcb14c 42
jamesdem1123 1:dd6f8dc1e54e 43 //30 minute graph arrays
jamesdem1123 2:321c8783ea30 44 uint16_t iBatArr [180];
jamesdem1123 2:321c8783ea30 45 uint16_t vBatArr [180];
jamesdem1123 2:321c8783ea30 46 uint16_t iTwelveArr [180];
jamesdem1123 2:321c8783ea30 47 uint16_t vTwelveArr [180];
jamesdem1123 2:321c8783ea30 48 uint16_t iFiveArr [180];
jamesdem1123 2:321c8783ea30 49 uint16_t vFiveArr [180];
jamesdem1123 2:321c8783ea30 50 uint16_t iMotArr [180];
jamesdem1123 2:321c8783ea30 51 uint16_t vMotArr [180];
jamesdem1123 2:321c8783ea30 52 uint16_t iCpuArr [180];
jamesdem1123 2:321c8783ea30 53 uint16_t iPeriArr [180];
jamesdem1123 1:dd6f8dc1e54e 54
jamesdem1123 1:dd6f8dc1e54e 55
jamesdem1123 1:dd6f8dc1e54e 56 //volt
jamesdem1123 1:dd6f8dc1e54e 57 uint16_t vBat, vTwelve,vFive,vMot ;
jamesdem1123 1:dd6f8dc1e54e 58
jamesdem1123 2:321c8783ea30 59
jamesdem1123 2:321c8783ea30 60 void updateArray (void)
jamesdem1123 2:321c8783ea30 61 {
jamesdem1123 2:321c8783ea30 62 vBat = ads.readADC_SingleEnded(0); // read channel 0
jamesdem1123 2:321c8783ea30 63 vTwelve = ads.readADC_SingleEnded(1); // read channel 0
jamesdem1123 2:321c8783ea30 64 vFive = ads.readADC_SingleEnded(2); // read channel 0
jamesdem1123 2:321c8783ea30 65 vMot = ads.readADC_SingleEnded(3); // read channel 0
jamesdem1123 2:321c8783ea30 66
jamesdem1123 2:321c8783ea30 67
jamesdem1123 2:321c8783ea30 68 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 69 iBatArr[i] =iBatArr[i-1];
jamesdem1123 2:321c8783ea30 70 }
jamesdem1123 2:321c8783ea30 71 iBatArr[0]= iBat.read_u16();
jamesdem1123 2:321c8783ea30 72
jamesdem1123 2:321c8783ea30 73 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 74 vBatArr[i] =vBatArr[i-1];
jamesdem1123 2:321c8783ea30 75 }
jamesdem1123 2:321c8783ea30 76 vBatArr[0]= vBat;
jamesdem1123 2:321c8783ea30 77
jamesdem1123 2:321c8783ea30 78 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 79 iTwelveArr[i] =iTwelveArr[i-1];
jamesdem1123 2:321c8783ea30 80 }
jamesdem1123 2:321c8783ea30 81 iTwelveArr[0]= iTwelve.read_u16();
jamesdem1123 2:321c8783ea30 82
jamesdem1123 2:321c8783ea30 83 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 84 vTwelveArr[i] =vTwelveArr[i-1];
jamesdem1123 2:321c8783ea30 85 }
jamesdem1123 2:321c8783ea30 86 vTwelveArr[0]= vTwelve;
jamesdem1123 2:321c8783ea30 87
jamesdem1123 2:321c8783ea30 88 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 89 iFiveArr[i] =iFiveArr[i-1];
jamesdem1123 2:321c8783ea30 90 }
jamesdem1123 2:321c8783ea30 91 iFiveArr[0]= iFive.read_u16();
jamesdem1123 2:321c8783ea30 92
jamesdem1123 2:321c8783ea30 93 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 94 vFiveArr[i] =vFiveArr[i-1];
jamesdem1123 2:321c8783ea30 95 }
jamesdem1123 2:321c8783ea30 96 vFiveArr[0]= vFive;
jamesdem1123 2:321c8783ea30 97
jamesdem1123 2:321c8783ea30 98 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 99 iMotArr[i] =iMotArr[i-1];
jamesdem1123 2:321c8783ea30 100 }
jamesdem1123 2:321c8783ea30 101 iMotArr[0]= iMot.read_u16();
jamesdem1123 2:321c8783ea30 102
jamesdem1123 2:321c8783ea30 103 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 104 vMotArr[i] =vMotArr[i-1];
jamesdem1123 2:321c8783ea30 105 }
jamesdem1123 2:321c8783ea30 106 vMotArr[0]= vMot;
jamesdem1123 2:321c8783ea30 107
jamesdem1123 2:321c8783ea30 108 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 109 iCpuArr[i] =iCpuArr[i-1];
jamesdem1123 2:321c8783ea30 110 }
jamesdem1123 2:321c8783ea30 111 iCpuArr[0]= iCpu.read_u16();
jamesdem1123 2:321c8783ea30 112
jamesdem1123 2:321c8783ea30 113 for(int i =179; i >0; i--) {
jamesdem1123 2:321c8783ea30 114 iPeriArr[i] =iPeriArr[i-1];
jamesdem1123 2:321c8783ea30 115 }
jamesdem1123 2:321c8783ea30 116 iPeriArr[0]= iPeri.read_u16();
jamesdem1123 3:a01ea06ca9ab 117 led0= !led0;
jamesdem1123 2:321c8783ea30 118
jamesdem1123 2:321c8783ea30 119 }
jamesdem1123 2:321c8783ea30 120
jamesdem1123 1:dd6f8dc1e54e 121 void setup(void)
jamesdem1123 1:dd6f8dc1e54e 122 {
jamesdem1123 2:321c8783ea30 123 graph.attach(&updateArray, 10); //update array every 10 seconds
jamesdem1123 3:a01ea06ca9ab 124 cantbus.frequency(500000);
jamesdem1123 3:a01ea06ca9ab 125 CANMessage can_MsgRx;
jamesdem1123 3:a01ea06ca9ab 126
jamesdem1123 1:dd6f8dc1e54e 127 //initialize relays
jamesdem1123 1:dd6f8dc1e54e 128 relSens= 0;
jamesdem1123 1:dd6f8dc1e54e 129 relNet =0;
jamesdem1123 1:dd6f8dc1e54e 130 relCpuPower=0;
jamesdem1123 1:dd6f8dc1e54e 131 relCpuRst =0;
jamesdem1123 1:dd6f8dc1e54e 132 relUsr=0;
jamesdem1123 1:dd6f8dc1e54e 133
jamesdem1123 1:dd6f8dc1e54e 134 }
jamesdem1123 1:dd6f8dc1e54e 135
jamesdem1123 1:dd6f8dc1e54e 136
jamesdem1123 2:321c8783ea30 137
jamesdem1123 1:dd6f8dc1e54e 138 int main()
jamesdem1123 1:dd6f8dc1e54e 139 {
jamesdem1123 1:dd6f8dc1e54e 140 setup();
jamesdem1123 3:a01ea06ca9ab 141
jamesdem1123 3:a01ea06ca9ab 142 graph.attach(updateArray, 1); //update array every 10 seconds
jamesdem1123 3:a01ea06ca9ab 143 cantbus.frequency(500000);
jamesdem1123 3:a01ea06ca9ab 144 CANMessage can_MsgRx;
jamesdem1123 3:a01ea06ca9ab 145
jamesdem1123 3:a01ea06ca9ab 146 //initialize relays
jamesdem1123 3:a01ea06ca9ab 147 relSens= 0;
jamesdem1123 3:a01ea06ca9ab 148 relNet =0;
jamesdem1123 3:a01ea06ca9ab 149 relCpuPower=0;
jamesdem1123 3:a01ea06ca9ab 150 relCpuRst =0;
jamesdem1123 3:a01ea06ca9ab 151 relUsr=0;
jamesdem1123 1:dd6f8dc1e54e 152 while (1) {
jamesdem1123 2:321c8783ea30 153
jamesdem1123 1:dd6f8dc1e54e 154
jamesdem1123 1:dd6f8dc1e54e 155 pc.printf("reading: %d\r\n", vBat); // print reading
jamesdem1123 1:dd6f8dc1e54e 156 pc.printf("reading: %d\r\n", vTwelve); // print reading
jamesdem1123 1:dd6f8dc1e54e 157 pc.printf("reading: %d\r\n", vFive); // print reading
jamesdem1123 1:dd6f8dc1e54e 158 pc.printf("reading: %d\r\n", vMot); // print reading
jamesdem1123 1:dd6f8dc1e54e 159
jamesdem1123 3:a01ea06ca9ab 160 wait(2);
jamesdem1123 0:54d5ccfcb14c 161 }
jamesdem1123 0:54d5ccfcb14c 162 }
jamesdem1123 1:dd6f8dc1e54e 163
jamesdem1123 1:dd6f8dc1e54e 164
jamesdem1123 1:dd6f8dc1e54e 165
jamesdem1123 1:dd6f8dc1e54e 166
jamesdem1123 1:dd6f8dc1e54e 167
jamesdem1123 1:dd6f8dc1e54e 168
jamesdem1123 1:dd6f8dc1e54e 169
jamesdem1123 1:dd6f8dc1e54e 170
jamesdem1123 1:dd6f8dc1e54e 171
jamesdem1123 1:dd6f8dc1e54e 172
jamesdem1123 1:dd6f8dc1e54e 173
jamesdem1123 1:dd6f8dc1e54e 174
jamesdem1123 1:dd6f8dc1e54e 175