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
--- /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