University of Texas Solar Vehicles Team / Mbed 2 deprecated RTD_Array_Controller

Dependencies:   mbed

Committer:
KardTwei
Date:
Sat Feb 15 22:25:18 2020 +0000
Revision:
0:138f9a31cd1b
Initial commit, should be complete

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KardTwei 0:138f9a31cd1b 1 #include "mbed.h"
KardTwei 0:138f9a31cd1b 2 #include "canIds.h"
KardTwei 0:138f9a31cd1b 3 #include "CAN.h"
KardTwei 0:138f9a31cd1b 4 #include <stdlib.h>
KardTwei 0:138f9a31cd1b 5 #include <stdint.h>
KardTwei 0:138f9a31cd1b 6 #include <stdio.h>
KardTwei 0:138f9a31cd1b 7
KardTwei 0:138f9a31cd1b 8 //Pin definitions
KardTwei 0:138f9a31cd1b 9 AnalogIn RTD0(A0); //Analog lines from RTD sensors
KardTwei 0:138f9a31cd1b 10 AnalogIn RTD1(A1);
KardTwei 0:138f9a31cd1b 11 AnalogIn RTD2(A2);
KardTwei 0:138f9a31cd1b 12 AnalogIn RTD3(A3);
KardTwei 0:138f9a31cd1b 13 AnalogIn RTD4(A4);
KardTwei 0:138f9a31cd1b 14 AnalogIn RTD5(A5);
KardTwei 0:138f9a31cd1b 15 AnalogIn RTD6(A6);
KardTwei 0:138f9a31cd1b 16 AnalogIn RTD7(A7);
KardTwei 0:138f9a31cd1b 17
KardTwei 0:138f9a31cd1b 18 CAN can(D10, D2); //D10 is Rx, D2 is Tx
KardTwei 0:138f9a31cd1b 19 Serial pc(USBTX, USBRX);
KardTwei 0:138f9a31cd1b 20 int maxTemp;
KardTwei 0:138f9a31cd1b 21
KardTwei 0:138f9a31cd1b 22 int convertADC(AnalogIn RTD){
KardTwei 0:138f9a31cd1b 23 float temperature;
KardTwei 0:138f9a31cd1b 24 float floatRTD = (float)RTD;
KardTwei 0:138f9a31cd1b 25 float maxTemp = 200; //Temporary for now, Matthew will ask Hallock about later
KardTwei 0:138f9a31cd1b 26 temperature = (floatRTD*maxTemp)/4096;
KardTwei 0:138f9a31cd1b 27
KardTwei 0:138f9a31cd1b 28 return temperature;
KardTwei 0:138f9a31cd1b 29 }
KardTwei 0:138f9a31cd1b 30
KardTwei 0:138f9a31cd1b 31 int main() {
KardTwei 0:138f9a31cd1b 32
KardTwei 0:138f9a31cd1b 33 const int RTD_ID = 0x620;
KardTwei 0:138f9a31cd1b 34
KardTwei 0:138f9a31cd1b 35 float RTD0temp;
KardTwei 0:138f9a31cd1b 36 float RTD1temp;
KardTwei 0:138f9a31cd1b 37 float RTD2temp;
KardTwei 0:138f9a31cd1b 38 float RTD3temp;
KardTwei 0:138f9a31cd1b 39 float RTD4temp;
KardTwei 0:138f9a31cd1b 40 float RTD5temp;
KardTwei 0:138f9a31cd1b 41 float RTD6temp;
KardTwei 0:138f9a31cd1b 42 float RTD7temp;
KardTwei 0:138f9a31cd1b 43
KardTwei 0:138f9a31cd1b 44 while(1){
KardTwei 0:138f9a31cd1b 45
KardTwei 0:138f9a31cd1b 46 RTD0temp = convertADC(RTD0);
KardTwei 0:138f9a31cd1b 47 RTD1temp = convertADC(RTD1);
KardTwei 0:138f9a31cd1b 48 RTD2temp = convertADC(RTD2);
KardTwei 0:138f9a31cd1b 49 RTD3temp = convertADC(RTD3);
KardTwei 0:138f9a31cd1b 50 RTD4temp = convertADC(RTD4);
KardTwei 0:138f9a31cd1b 51 RTD5temp = convertADC(RTD5);
KardTwei 0:138f9a31cd1b 52 RTD6temp = convertADC(RTD6);
KardTwei 0:138f9a31cd1b 53 RTD7temp = convertADC(RTD7);
KardTwei 0:138f9a31cd1b 54
KardTwei 0:138f9a31cd1b 55 can.write(CANMessage(RTD_ID, (char*)(&RTD0temp),12));
KardTwei 0:138f9a31cd1b 56 can.write(CANMessage(RTD_ID, (char*)(&RTD1temp),12));
KardTwei 0:138f9a31cd1b 57 can.write(CANMessage(RTD_ID, (char*)(&RTD2temp),12));
KardTwei 0:138f9a31cd1b 58 can.write(CANMessage(RTD_ID, (char*)(&RTD3temp),12));
KardTwei 0:138f9a31cd1b 59 can.write(CANMessage(RTD_ID, (char*)(&RTD4temp),12));
KardTwei 0:138f9a31cd1b 60 can.write(CANMessage(RTD_ID, (char*)(&RTD5temp),12));
KardTwei 0:138f9a31cd1b 61 can.write(CANMessage(RTD_ID, (char*)(&RTD6temp),12));
KardTwei 0:138f9a31cd1b 62 can.write(CANMessage(RTD_ID, (char*)(&RTD7temp),12));
KardTwei 0:138f9a31cd1b 63
KardTwei 0:138f9a31cd1b 64 pc.printf("RTD0: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 65 pc.printf("RTD1: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 66 pc.printf("RTD2: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 67 pc.printf("RTD3: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 68 pc.printf("RTD4: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 69 pc.printf("RTD5: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 70 pc.printf("RTD6: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 71 pc.printf("RTD7: %f\n", RTD0temp);
KardTwei 0:138f9a31cd1b 72
KardTwei 0:138f9a31cd1b 73 wait(.5);
KardTwei 0:138f9a31cd1b 74
KardTwei 0:138f9a31cd1b 75 //A7-A0 = RTD
KardTwei 0:138f9a31cd1b 76 //Send message of 7 every half second
KardTwei 0:138f9a31cd1b 77 //can.write should send message w/o having to worry
KardTwei 0:138f9a31cd1b 78 //Message ID, data (char buffer), length of char buffer
KardTwei 0:138f9a31cd1b 79 //ID for Can Bus, (8 byte index of RTD)(rest of data floating point), length of char buffer
KardTwei 0:138f9a31cd1b 80
KardTwei 0:138f9a31cd1b 81 //can.write(CANMessage(msgId, data, len))
KardTwei 0:138f9a31cd1b 82 //Max 5 V tolerance, 0-3.3 V read
KardTwei 0:138f9a31cd1b 83 }
KardTwei 0:138f9a31cd1b 84 }
KardTwei 0:138f9a31cd1b 85