Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: ntc.h
- Revision:
- 5:38b2b8790b40
diff -r 28919318b141 -r 38b2b8790b40 ntc.h
--- /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