Dragica Stoiljkovic / Mbed 2 deprecated BMS_LV_VERZIJA_TESTIRANJE

Dependencies:   mbed

Revision:
5:38b2b8790b40
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ntc.h	Sun Apr 11 09:08:16 2021 +0000
@@ -0,0 +1,202 @@
+#include "mbed.h"
+const int n = 71;
+
+int arrayTemp[n];
+volatile double Vin = 5;
+volatile double Rref = 13000;
+
+void arrayInit()
+{
+    arrayTemp[0] = 32650;
+    
+    arrayTemp[1] = 31029;
+    
+    arrayTemp[2] = 29498;
+    
+    arrayTemp[3] = 28052;
+    
+    arrayTemp[4] = 26685;
+    
+    arrayTemp[5] = 25392;
+    
+    arrayTemp[6] = 24170;
+    
+    arrayTemp[7] = 23013;
+    
+    arrayTemp[8] = 21918;
+    
+    arrayTemp[9] = 20882;
+    
+    arrayTemp[10] = 19901;
+    
+    arrayTemp[11] = 18971;
+    
+    arrayTemp[12] = 18090;
+    
+    arrayTemp[13] = 17255;
+    
+    arrayTemp[14] = 16463;
+    
+    arrayTemp[15] = 15712;
+    
+    arrayTemp[16] = 14999;
+    
+    arrayTemp[17] = 14323;
+    
+    arrayTemp[18] = 13681;
+    
+    arrayTemp[19] = 13072;
+    
+    arrayTemp[20] = 12493;
+    
+    arrayTemp[21] = 11942;
+    
+    arrayTemp[22] = 11419;
+    
+    arrayTemp[23] = 10922;
+    
+    arrayTemp[24] = 10450;
+    
+    arrayTemp[25] = 10000;
+    
+    arrayTemp[26] = 9572;
+    
+    arrayTemp[27] = 9165;
+    
+    arrayTemp[28] = 8777;
+    
+    arrayTemp[29] = 8408;
+    
+    arrayTemp[30] = 8057;
+    
+    arrayTemp[31] = 7722;
+    
+    arrayTemp[32] = 7402;
+    
+    arrayTemp[33] = 7098;
+    
+    arrayTemp[34] = 6808;
+    
+    arrayTemp[35] = 6531;
+    
+    arrayTemp[36] = 6267;
+    
+    arrayTemp[37] = 6015;
+    
+    arrayTemp[38] = 5775;
+    
+    arrayTemp[39] = 5545;
+    
+    arrayTemp[40] = 5326;
+    
+    arrayTemp[41] = 5117;
+    
+    arrayTemp[42] = 4917;
+    
+    arrayTemp[43] = 4725;
+    
+    arrayTemp[44] = 4543;
+    
+    arrayTemp[45] = 4368;
+    
+    arrayTemp[46] = 4201;
+    
+    arrayTemp[47] = 4041;
+    
+    arrayTemp[48] = 3888;
+    
+    arrayTemp[49] = 3742;
+    
+    arrayTemp[50] = 3602;
+    
+    arrayTemp[51] = 3468;
+    
+    arrayTemp[52] = 3340;
+    
+    arrayTemp[53] = 3217;
+    
+    arrayTemp[54] = 3099;
+    
+    arrayTemp[55] = 2986;
+    
+    arrayTemp[56] = 2878;
+    
+    arrayTemp[57] = 2774;
+    
+    arrayTemp[58] = 2675;
+    
+    arrayTemp[59] = 2579;
+    
+    arrayTemp[60] = 2488;
+    
+    arrayTemp[61] = 2400;
+    
+    arrayTemp[62] = 2316;
+    
+    arrayTemp[63] = 2235;
+    
+    arrayTemp[64] = 2157;
+    
+    arrayTemp[65] = 2083;
+    
+    arrayTemp[66] = 2011;
+    
+    arrayTemp[67] = 1942;
+    
+    arrayTemp[68] = 1876;
+    
+    arrayTemp[69] = 1813;
+    
+    arrayTemp[70] = 1752;
+}
+
+double temp_funkcija_prenosa(double x)
+{
+    double mres1 = 1+((x*1000000000)/3.225804);
+    double mres2 = pow(mres1, 0.1409242);
+    double res = -139.9343 + (9663.0153/mres2);
+    return res;
+}
+
+double binarySearch(double resistance)
+{
+    if (resistance >= 1752 && resistance <= 32650)
+    { 
+        int front;
+        int rear;
+        int mid;
+        front = 0;
+        rear = 71 - 1;
+        while(front <= rear)
+        {
+            mid = (front + rear)/2; 
+            if (arrayTemp[mid] > resistance && arrayTemp[mid + 1] < resistance )
+            {
+                return (mid + mid + 1) / 2;
+            }
+            else if (arrayTemp[mid] < resistance && arrayTemp[mid-1] > resistance)
+            {
+               return (mid + mid - 1) / 2;
+            }
+            else if (arrayTemp[mid] > resistance )
+            {
+                front = mid;
+            }
+            else
+            {
+                rear = mid;
+            }
+        }    
+    }
+    
+    return temp_funkcija_prenosa(resistance); 
+    
+} 
+int naponskiRazdelnik(double Vout)
+{
+    double Rterm = Rref * (Vin/Vout - 1);
+    pc1.printf("Otpornost NTC-a  = %6.2f OHM\n", Rterm);
+    double temperature = binarySearch(Rterm);
+    pc1.printf("Temperature of GPIO1  = %6.2f C\n", temperature);
+    return temperature;
+}
\ No newline at end of file