Dragica Stoiljkovic / Mbed 2 deprecated BMS_LV_VERZIJA_TESTIRANJE

Dependencies:   mbed

Committer:
dragica
Date:
Sun Apr 11 09:08:16 2021 +0000
Revision:
5:38b2b8790b40
SW napisan za testiranje nedelja 11 april 2021.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dragica 5:38b2b8790b40 1 #include "mbed.h"
dragica 5:38b2b8790b40 2 const int n = 71;
dragica 5:38b2b8790b40 3
dragica 5:38b2b8790b40 4 int arrayTemp[n];
dragica 5:38b2b8790b40 5 volatile double Vin = 5;
dragica 5:38b2b8790b40 6 volatile double Rref = 13000;
dragica 5:38b2b8790b40 7
dragica 5:38b2b8790b40 8 void arrayInit()
dragica 5:38b2b8790b40 9 {
dragica 5:38b2b8790b40 10 arrayTemp[0] = 32650;
dragica 5:38b2b8790b40 11
dragica 5:38b2b8790b40 12 arrayTemp[1] = 31029;
dragica 5:38b2b8790b40 13
dragica 5:38b2b8790b40 14 arrayTemp[2] = 29498;
dragica 5:38b2b8790b40 15
dragica 5:38b2b8790b40 16 arrayTemp[3] = 28052;
dragica 5:38b2b8790b40 17
dragica 5:38b2b8790b40 18 arrayTemp[4] = 26685;
dragica 5:38b2b8790b40 19
dragica 5:38b2b8790b40 20 arrayTemp[5] = 25392;
dragica 5:38b2b8790b40 21
dragica 5:38b2b8790b40 22 arrayTemp[6] = 24170;
dragica 5:38b2b8790b40 23
dragica 5:38b2b8790b40 24 arrayTemp[7] = 23013;
dragica 5:38b2b8790b40 25
dragica 5:38b2b8790b40 26 arrayTemp[8] = 21918;
dragica 5:38b2b8790b40 27
dragica 5:38b2b8790b40 28 arrayTemp[9] = 20882;
dragica 5:38b2b8790b40 29
dragica 5:38b2b8790b40 30 arrayTemp[10] = 19901;
dragica 5:38b2b8790b40 31
dragica 5:38b2b8790b40 32 arrayTemp[11] = 18971;
dragica 5:38b2b8790b40 33
dragica 5:38b2b8790b40 34 arrayTemp[12] = 18090;
dragica 5:38b2b8790b40 35
dragica 5:38b2b8790b40 36 arrayTemp[13] = 17255;
dragica 5:38b2b8790b40 37
dragica 5:38b2b8790b40 38 arrayTemp[14] = 16463;
dragica 5:38b2b8790b40 39
dragica 5:38b2b8790b40 40 arrayTemp[15] = 15712;
dragica 5:38b2b8790b40 41
dragica 5:38b2b8790b40 42 arrayTemp[16] = 14999;
dragica 5:38b2b8790b40 43
dragica 5:38b2b8790b40 44 arrayTemp[17] = 14323;
dragica 5:38b2b8790b40 45
dragica 5:38b2b8790b40 46 arrayTemp[18] = 13681;
dragica 5:38b2b8790b40 47
dragica 5:38b2b8790b40 48 arrayTemp[19] = 13072;
dragica 5:38b2b8790b40 49
dragica 5:38b2b8790b40 50 arrayTemp[20] = 12493;
dragica 5:38b2b8790b40 51
dragica 5:38b2b8790b40 52 arrayTemp[21] = 11942;
dragica 5:38b2b8790b40 53
dragica 5:38b2b8790b40 54 arrayTemp[22] = 11419;
dragica 5:38b2b8790b40 55
dragica 5:38b2b8790b40 56 arrayTemp[23] = 10922;
dragica 5:38b2b8790b40 57
dragica 5:38b2b8790b40 58 arrayTemp[24] = 10450;
dragica 5:38b2b8790b40 59
dragica 5:38b2b8790b40 60 arrayTemp[25] = 10000;
dragica 5:38b2b8790b40 61
dragica 5:38b2b8790b40 62 arrayTemp[26] = 9572;
dragica 5:38b2b8790b40 63
dragica 5:38b2b8790b40 64 arrayTemp[27] = 9165;
dragica 5:38b2b8790b40 65
dragica 5:38b2b8790b40 66 arrayTemp[28] = 8777;
dragica 5:38b2b8790b40 67
dragica 5:38b2b8790b40 68 arrayTemp[29] = 8408;
dragica 5:38b2b8790b40 69
dragica 5:38b2b8790b40 70 arrayTemp[30] = 8057;
dragica 5:38b2b8790b40 71
dragica 5:38b2b8790b40 72 arrayTemp[31] = 7722;
dragica 5:38b2b8790b40 73
dragica 5:38b2b8790b40 74 arrayTemp[32] = 7402;
dragica 5:38b2b8790b40 75
dragica 5:38b2b8790b40 76 arrayTemp[33] = 7098;
dragica 5:38b2b8790b40 77
dragica 5:38b2b8790b40 78 arrayTemp[34] = 6808;
dragica 5:38b2b8790b40 79
dragica 5:38b2b8790b40 80 arrayTemp[35] = 6531;
dragica 5:38b2b8790b40 81
dragica 5:38b2b8790b40 82 arrayTemp[36] = 6267;
dragica 5:38b2b8790b40 83
dragica 5:38b2b8790b40 84 arrayTemp[37] = 6015;
dragica 5:38b2b8790b40 85
dragica 5:38b2b8790b40 86 arrayTemp[38] = 5775;
dragica 5:38b2b8790b40 87
dragica 5:38b2b8790b40 88 arrayTemp[39] = 5545;
dragica 5:38b2b8790b40 89
dragica 5:38b2b8790b40 90 arrayTemp[40] = 5326;
dragica 5:38b2b8790b40 91
dragica 5:38b2b8790b40 92 arrayTemp[41] = 5117;
dragica 5:38b2b8790b40 93
dragica 5:38b2b8790b40 94 arrayTemp[42] = 4917;
dragica 5:38b2b8790b40 95
dragica 5:38b2b8790b40 96 arrayTemp[43] = 4725;
dragica 5:38b2b8790b40 97
dragica 5:38b2b8790b40 98 arrayTemp[44] = 4543;
dragica 5:38b2b8790b40 99
dragica 5:38b2b8790b40 100 arrayTemp[45] = 4368;
dragica 5:38b2b8790b40 101
dragica 5:38b2b8790b40 102 arrayTemp[46] = 4201;
dragica 5:38b2b8790b40 103
dragica 5:38b2b8790b40 104 arrayTemp[47] = 4041;
dragica 5:38b2b8790b40 105
dragica 5:38b2b8790b40 106 arrayTemp[48] = 3888;
dragica 5:38b2b8790b40 107
dragica 5:38b2b8790b40 108 arrayTemp[49] = 3742;
dragica 5:38b2b8790b40 109
dragica 5:38b2b8790b40 110 arrayTemp[50] = 3602;
dragica 5:38b2b8790b40 111
dragica 5:38b2b8790b40 112 arrayTemp[51] = 3468;
dragica 5:38b2b8790b40 113
dragica 5:38b2b8790b40 114 arrayTemp[52] = 3340;
dragica 5:38b2b8790b40 115
dragica 5:38b2b8790b40 116 arrayTemp[53] = 3217;
dragica 5:38b2b8790b40 117
dragica 5:38b2b8790b40 118 arrayTemp[54] = 3099;
dragica 5:38b2b8790b40 119
dragica 5:38b2b8790b40 120 arrayTemp[55] = 2986;
dragica 5:38b2b8790b40 121
dragica 5:38b2b8790b40 122 arrayTemp[56] = 2878;
dragica 5:38b2b8790b40 123
dragica 5:38b2b8790b40 124 arrayTemp[57] = 2774;
dragica 5:38b2b8790b40 125
dragica 5:38b2b8790b40 126 arrayTemp[58] = 2675;
dragica 5:38b2b8790b40 127
dragica 5:38b2b8790b40 128 arrayTemp[59] = 2579;
dragica 5:38b2b8790b40 129
dragica 5:38b2b8790b40 130 arrayTemp[60] = 2488;
dragica 5:38b2b8790b40 131
dragica 5:38b2b8790b40 132 arrayTemp[61] = 2400;
dragica 5:38b2b8790b40 133
dragica 5:38b2b8790b40 134 arrayTemp[62] = 2316;
dragica 5:38b2b8790b40 135
dragica 5:38b2b8790b40 136 arrayTemp[63] = 2235;
dragica 5:38b2b8790b40 137
dragica 5:38b2b8790b40 138 arrayTemp[64] = 2157;
dragica 5:38b2b8790b40 139
dragica 5:38b2b8790b40 140 arrayTemp[65] = 2083;
dragica 5:38b2b8790b40 141
dragica 5:38b2b8790b40 142 arrayTemp[66] = 2011;
dragica 5:38b2b8790b40 143
dragica 5:38b2b8790b40 144 arrayTemp[67] = 1942;
dragica 5:38b2b8790b40 145
dragica 5:38b2b8790b40 146 arrayTemp[68] = 1876;
dragica 5:38b2b8790b40 147
dragica 5:38b2b8790b40 148 arrayTemp[69] = 1813;
dragica 5:38b2b8790b40 149
dragica 5:38b2b8790b40 150 arrayTemp[70] = 1752;
dragica 5:38b2b8790b40 151 }
dragica 5:38b2b8790b40 152
dragica 5:38b2b8790b40 153 double temp_funkcija_prenosa(double x)
dragica 5:38b2b8790b40 154 {
dragica 5:38b2b8790b40 155 double mres1 = 1+((x*1000000000)/3.225804);
dragica 5:38b2b8790b40 156 double mres2 = pow(mres1, 0.1409242);
dragica 5:38b2b8790b40 157 double res = -139.9343 + (9663.0153/mres2);
dragica 5:38b2b8790b40 158 return res;
dragica 5:38b2b8790b40 159 }
dragica 5:38b2b8790b40 160
dragica 5:38b2b8790b40 161 double binarySearch(double resistance)
dragica 5:38b2b8790b40 162 {
dragica 5:38b2b8790b40 163 if (resistance >= 1752 && resistance <= 32650)
dragica 5:38b2b8790b40 164 {
dragica 5:38b2b8790b40 165 int front;
dragica 5:38b2b8790b40 166 int rear;
dragica 5:38b2b8790b40 167 int mid;
dragica 5:38b2b8790b40 168 front = 0;
dragica 5:38b2b8790b40 169 rear = 71 - 1;
dragica 5:38b2b8790b40 170 while(front <= rear)
dragica 5:38b2b8790b40 171 {
dragica 5:38b2b8790b40 172 mid = (front + rear)/2;
dragica 5:38b2b8790b40 173 if (arrayTemp[mid] > resistance && arrayTemp[mid + 1] < resistance )
dragica 5:38b2b8790b40 174 {
dragica 5:38b2b8790b40 175 return (mid + mid + 1) / 2;
dragica 5:38b2b8790b40 176 }
dragica 5:38b2b8790b40 177 else if (arrayTemp[mid] < resistance && arrayTemp[mid-1] > resistance)
dragica 5:38b2b8790b40 178 {
dragica 5:38b2b8790b40 179 return (mid + mid - 1) / 2;
dragica 5:38b2b8790b40 180 }
dragica 5:38b2b8790b40 181 else if (arrayTemp[mid] > resistance )
dragica 5:38b2b8790b40 182 {
dragica 5:38b2b8790b40 183 front = mid;
dragica 5:38b2b8790b40 184 }
dragica 5:38b2b8790b40 185 else
dragica 5:38b2b8790b40 186 {
dragica 5:38b2b8790b40 187 rear = mid;
dragica 5:38b2b8790b40 188 }
dragica 5:38b2b8790b40 189 }
dragica 5:38b2b8790b40 190 }
dragica 5:38b2b8790b40 191
dragica 5:38b2b8790b40 192 return temp_funkcija_prenosa(resistance);
dragica 5:38b2b8790b40 193
dragica 5:38b2b8790b40 194 }
dragica 5:38b2b8790b40 195 int naponskiRazdelnik(double Vout)
dragica 5:38b2b8790b40 196 {
dragica 5:38b2b8790b40 197 double Rterm = Rref * (Vin/Vout - 1);
dragica 5:38b2b8790b40 198 pc1.printf("Otpornost NTC-a = %6.2f OHM\n", Rterm);
dragica 5:38b2b8790b40 199 double temperature = binarySearch(Rterm);
dragica 5:38b2b8790b40 200 pc1.printf("Temperature of GPIO1 = %6.2f C\n", temperature);
dragica 5:38b2b8790b40 201 return temperature;
dragica 5:38b2b8790b40 202 }