IGGE Power board

Dependencies:   mbed ADS1015 USBDevice MCP4725

Committer:
jamesdem1123
Date:
Wed Mar 26 03:36:02 2014 +0000
Revision:
2:321c8783ea30
Parent:
1:dd6f8dc1e54e
Child:
3:a01ea06ca9ab
Nightly 25 Mar v2

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 1:dd6f8dc1e54e 39 DigitalOut relCpuPower(p25);
jamesdem1123 1:dd6f8dc1e54e 40 DigitalOut relCpuRst(p24);
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 2:321c8783ea30 117
jamesdem1123 2:321c8783ea30 118 }
jamesdem1123 2:321c8783ea30 119
jamesdem1123 1:dd6f8dc1e54e 120 void setup(void)
jamesdem1123 1:dd6f8dc1e54e 121 {
jamesdem1123 2:321c8783ea30 122 graph.attach(&updateArray, 10); //update array every 10 seconds
jamesdem1123 2:321c8783ea30 123
jamesdem1123 1:dd6f8dc1e54e 124 //initialize relays
jamesdem1123 1:dd6f8dc1e54e 125 relSens= 0;
jamesdem1123 1:dd6f8dc1e54e 126 relNet =0;
jamesdem1123 1:dd6f8dc1e54e 127 relCpuPower=0;
jamesdem1123 1:dd6f8dc1e54e 128 relCpuRst =0;
jamesdem1123 1:dd6f8dc1e54e 129 relUsr=0;
jamesdem1123 1:dd6f8dc1e54e 130
jamesdem1123 1:dd6f8dc1e54e 131 }
jamesdem1123 1:dd6f8dc1e54e 132
jamesdem1123 1:dd6f8dc1e54e 133
jamesdem1123 2:321c8783ea30 134
jamesdem1123 1:dd6f8dc1e54e 135 int main()
jamesdem1123 1:dd6f8dc1e54e 136 {
jamesdem1123 1:dd6f8dc1e54e 137 setup();
jamesdem1123 1:dd6f8dc1e54e 138 while (1) {
jamesdem1123 2:321c8783ea30 139
jamesdem1123 1:dd6f8dc1e54e 140
jamesdem1123 1:dd6f8dc1e54e 141 pc.printf("reading: %d\r\n", vBat); // print reading
jamesdem1123 1:dd6f8dc1e54e 142 pc.printf("reading: %d\r\n", vTwelve); // print reading
jamesdem1123 1:dd6f8dc1e54e 143 pc.printf("reading: %d\r\n", vFive); // print reading
jamesdem1123 1:dd6f8dc1e54e 144 pc.printf("reading: %d\r\n", vMot); // print reading
jamesdem1123 1:dd6f8dc1e54e 145
jamesdem1123 1:dd6f8dc1e54e 146 wait(2); // loop 2 sek
jamesdem1123 1:dd6f8dc1e54e 147 led0 = 1;
jamesdem1123 0:54d5ccfcb14c 148 wait(0.2);
jamesdem1123 1:dd6f8dc1e54e 149 led0 = 0;
jamesdem1123 0:54d5ccfcb14c 150 wait(0.2);
jamesdem1123 0:54d5ccfcb14c 151 }
jamesdem1123 0:54d5ccfcb14c 152 }
jamesdem1123 1:dd6f8dc1e54e 153
jamesdem1123 1:dd6f8dc1e54e 154
jamesdem1123 1:dd6f8dc1e54e 155
jamesdem1123 1:dd6f8dc1e54e 156
jamesdem1123 1:dd6f8dc1e54e 157
jamesdem1123 1:dd6f8dc1e54e 158
jamesdem1123 1:dd6f8dc1e54e 159
jamesdem1123 1:dd6f8dc1e54e 160
jamesdem1123 1:dd6f8dc1e54e 161
jamesdem1123 1:dd6f8dc1e54e 162
jamesdem1123 1:dd6f8dc1e54e 163
jamesdem1123 1:dd6f8dc1e54e 164
jamesdem1123 1:dd6f8dc1e54e 165